Synology en monitoring 12 min. leestijd

Uptime Kuma installeren op Synology en uw diensten bewaken

Implementeer Uptime Kuma met Container Manager, configureer de firewall en de reverse proxy van DSM, en maak vervolgens de eerste monitors en meldingen aan.

Uptime Kuma transformeert een Synology NAS in een autonome bewakingspost. Zolang de NAS en zijn netwerk functioneren, controleert het continu de websites, servers, databases en andere diensten die u hem toevertrouwt, bewaart hun geschiedenis en waarschuwt u snel wanneer een controle mislukt.

Waarom Uptime Kuma gebruiken

Uptime Kuma is een open source applicatie voor beschikbaarheidsbewaking. Het speelt de rol van een persoonlijk alarm: het controleert of een website, server of netwerkdienst nog steeds antwoordt en activeert een notificatie zodra de status verandert.

Detail van een DNS-monitor in Uptime Kuma met beschikbaarheid en latentiegrafiek
Elke monitor bundelt zijn laatste resultaat, beschikbaarheid, latentie en de geschiedenis van de controles.
Uptime Kuma geschiedenis die de beschikbare en onbeschikbare statussen van een DNS-controle afwisselt
De geschiedenis maakt het mogelijk om storingen en herstel precies te dateren.

De behoefte is eenvoudig: weten wanneer een site niet meer antwoordt, de kwaliteit van een internetverbinding bewaken of de beschikbaarheid van een toestel bij een operator meten. In plaats van de storing bij toeval te ontdekken, ontvangt u onmiddellijk een waarschuwing via berichtgeving, e-mail of een van de vele compatibele diensten.

Uptime Kuma bundelt onder meer de volgende functies:

  • controle van HTTP- en HTTPS-domeinen, met optionele zoekopdracht naar een trefwoord op de pagina;
  • bewaking van DNS-records, Docker-containers en databases zoals MySQL, MariaDB of Microsoft SQL Server;
  • responsieve, heldere en snel te doorlopen interface;
  • handmatige donkere modus of gesynchroniseerd met het systeemthema;
  • latentiegrafieken en beschikbaarheidsstatistieken in de loop der tijd;
  • alerts naar talloze diensten, bijvoorbeeld Telegram, Slack, Discord, Microsoft Teams, Signal, Gotify, Ntfy, Opsgenie of PagerDuty;
  • ondersteuning van een proxy voor controles die via een tussenpersoon naar buiten moeten;
  • controle-interval tot 20 seconden wanneer het monitortype dit toelaat;
  • interface vertaald in talloze talen, waaronder het Frans;
  • openbare statuspagina's om gebruikers te informeren of onderhoud aan te kondigen;
  • opvolging van de vervaldatum van TLS-certificaten en bescherming van het account door middel van twee-factor-authenticatie.

Ik zocht al lang naar een oplossing van dit type. De gehoste diensten waren ofwel betalend, ofwel te beperkt voor mijn gebruik. Hier hangt het aantal monitoren vooral af van de middelen van de NAS en de gekozen frequentie, terwijl de controle- en notificatiemodi de meeste behoeften van een klein netwerk of een thuislaboratorium dekken.

Persistente mappen voorbereiden

Maak in de gedeelde map docker een map uptime-kuma aan, en vervolgens een submap data. De database, de instellingen, de opgevolgde certificaten en de configuratie van de instantie worden daar buiten de container bewaard.

Mappen uptime-kuma en data aangemaakt in File Station op een Synology NAS
De map data bewaart de database, instellingen en andere persistente gegevens van de applicatie.

Het project aanmaken in Container Manager

Open Container Manager → Project → Aanmaken. Geef het project de naam kuma, selecteer het pad /docker/uptime-kuma, kies voor het aanmaken van een docker-compose.yml-bestand, en voer vervolgens de volgende configuratie in:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    restart: unless-stopped
    volumes:
      - ./data:/app/data
    ports:
      # <NAS-poort>:<containerpoort>
      - "3005:3001"
    environment:
      TZ: Europe/Brussels

De major tag :2 volgt de stabiele tak van Uptime Kuma 2. Op het moment van deze controle is de gepubliceerde stabiele versie 2.5.3. Als u elke update liever handmatig valideert, vervang de major tag dan door een specifieke versie, en keer terug naar de tag :2 wanneer uw testprocedure klaar is.

Aanmaken van het project kuma en invoeren van het Compose-bestand in Synology Container Manager
Het project gebruikt de map /docker/uptime-kuma en publiceert poort 3001 van de container op poort 3005 van de NAS.
Terminal van Container Manager die de aanmaak van de Uptime Kuma-container bevestigt met exit code 0
Exit Code: 0 bevestigt dat de image is uitgepakt en dat de container correct is opgestart.

Valideer het project. Container Manager downloadt de image, maakt het Docker-netwerk aan en start de dienst. Het bericht Exit Code: 0 betekent dat de aanmaak zonder fouten is voltooid. Controleer daarna of de container effectief in actieve status verschijnt.

De DSM-firewall configureren

Als de DSM-firewall is ingeschakeld, moet de container de te bewaken doelen kunnen bereiken. Ga naar Container Manager → Netwerk, vouw kuma_default uit en noteer het subnet. De opname toont 172.18.0.0/16; het masker /16 komt overeen met 255.255.0.0.

Docker-netwerk kuma_default en subnet 172.18.0.0/16 in Container Manager
In dit voorbeeld heeft Container Manager 172.18.0.0/16 toegewezen aan het project kuma; deze waarde kan verschillen op een andere NAS.

Voeg een DSM-regel toe die is afgestemd op dit subnet en de noodzakelijke bestemmingen, en plaats deze voor de weigeringsregels. Kopieer 172.18.0.0/16 niet blindelings: Docker kan een andere reeks kiezen als deze al in gebruik is. Vermijd ook om alle poorten naar het hele netwerk toe te staan wanneer Kuma slechts enkele interne diensten nodig heeft.

Kuma publiceren met de reverse proxy

Om Uptime Kuma via een domeinnaam te bereiken, open Configuratiescherm → Toegangsportal → Geavanceerd → Reverse proxy, en maak dan een regel aan. Het oorspronkelijke artikel vermeldde hier ten onrechte Joplin: de bestemming is wel degelijk de Uptime Kuma-server.

  • Bron: protocol HTTPS, hostnaam zoals kuma.exemple.be, poort 443.
  • Bestemming: protocol HTTP, hostnaam localhost, poort 3005.
  • Aangepaste header: kies Aanmaken → WebSocket om automatisch Upgrade en Connection toe te voegen.
DSM reverse proxy-regel die HTTPS doorstuurt naar localhost poort 3005 met WebSocket-headers
De reverse proxy ontvangt HTTPS op poort 443, stuurt door naar localhost:3005 en voegt de WebSocket-headers toe.

Maak vooraf het DNS-record van kuma.exemple.be aan en wijs aan de proxy een geldig TLS-certificaat toe voor dit subdomein. Uptime Kuma gebruikt WebSocket: zonder de twee headers die in de opname worden getoond, kan de interface laden terwijl het niet in staat is om met de server te verbinden. Gebruik een specifiek subdomein in plaats van een pad zoals /uptime-kuma, dat niet officieel wordt ondersteund.

De initiële configuratie uitvoeren

Open https://kuma.exemple.be. Zolang poort 3005 toegankelijk is vanuit uw beheersnetwerk, kunt u ook http://IP-DU-NAS:3005 gebruiken voor de eerste diagnose. De Joplin-URL in het bronartikel was een drukfout en is hier gecorrigeerd.

Kies bij de eerste opstart de Franse taal en dan de databasemotor. SQLite blijft de eenvoudigste keuze voor een kleine installatie en degene die in deze configuratie wordt gebruikt. Uptime Kuma 2 biedt ook ingebedde MariaDB of een externe MariaDB/MySQL-server aan. Maak de keuze vanaf het begin met de juiste kennis: de directe migratie van een bestaande SQLite-database naar MariaDB wordt niet officieel ondersteund.

Eerste opstart van Uptime Kuma met de keuze tussen ingebedde MariaDB, MariaDB of MySQL en SQLite
SQLite is de eenvoudige keuze voor een kleine installatie; Uptime Kuma 2 biedt ook ingebedde of externe MariaDB aan.
Uptime Kuma formulier in het Frans om het eerste beheerdersaccount aan te maken
Kies het Frans, en maak dan een beheerdersaccount aan met een uniek en robuust wachtwoord.

Maak vervolgens het eerste beheerdersaccount aan. Gebruik een niet-voor-de-hand-liggende gebruikersnaam, een uniek wachtwoord dat in een wachtwoordbeheerder is opgeslagen, en activeer dan twee-factor-authenticatie in de instellingen zodra de toegang is gevalideerd.

Leeg Uptime Kuma dashboard net na de installatie
De installatie is voltooid: het dashboard wacht nu op zijn eerste monitor.

Monitoren en notificaties toevoegen

Klik op Nieuwe monitor, kies het controltype en vul het doel in. Voor een website begint u met HTTP(s), geeft u de URL op, selecteert u een interval en behoudt u redelijke time-outs. De "trefwoord"-modus is nuttig wanneer een eenvoudige HTTP 200-code niet volstaat om te bewijzen dat de juiste pagina wordt weergegeven.

Lijst van monitortypes HTTP, DNS, Docker, MQTT, databases en andere in Uptime Kuma
Uptime Kuma 2 kan websites, poorten, DNS, containers en verschillende protocollen of databases controleren.

U kunt daarna controles aanmaken voor Ping, TCP, DNS, Docker, MQTT, gRPC, SNMP of databases, afhankelijk van uw behoeften. Organiseer ze met groepen en tags, geef ze duidelijke namen, en maak een aparte statuspagina aan als gebruikers de beschikbaarheid moeten kunnen raadplegen zonder toegang te hebben tot het beheerdersdashboard.

Voeg in Instellingen → Notificaties minstens één kanaal toe en stuur een testmelding. Telegram, Signal, Slack, Teams, Gotify, Ntfy, Pushover en talloze andere providers zijn beschikbaar. Koppel de notificatie vervolgens aan de betreffende monitoren; het aanmaken van de provider activeert deze niet automatisch overal.

Lijst van Uptime Kuma notificatieproviders met Telegram geselecteerd
Telegram is slechts één keuze uit talloze notificatiekanalen, waaronder Teams, Signal, Slack, Gotify, Ntfy en Pushover.

Test ten slotte een echte overgang: stop kort een niet-kritieke dienst, wacht op de waarschuwing over onbeschikbaarheid, herstart het en controleer de notificatie van herstel. Deze controle voorkomt dat u tijdens een echte storing ontdekt dat een token of een bestemmingsadres onjuist was.

Limieten en onderhoud

Deze installatie werkt al lang met enkele tientallen diensten en verbruikt weinig middelen. De laatste opname geeft ongeveer 180 MB geheugen en minder dan 1% CPU aan op dit moment; de behoeften variëren echter naargelang het aantal controles, hun frequentie, de notificaties en de bewaarduur.

Uptime Kuma project in uitvoering in Container Manager met 0,66 procent CPU en 180 MB RAM
Op de geobserveerde installatie draait de container met een lichte belasting: 0,66% CPU en ongeveer 180 MB RAM op het moment van de opname.

Maak een back-up van de map data voor elke update. Haal in Container Manager de nieuwe image op en maak het project opnieuw aan met hetzelfde volume. Raadpleeg de release notes, controleer het dashboard en activeer een testmelding na elke wijziging.

Conclusie

Uptime Kuma is nu geïnstalleerd op de Synology NAS, toegankelijk via HTTPS achter de reverse proxy en klaar om uw diensten te bewaken. Het resteert om de nuttige controles aan te maken, hun frequentie in te stellen, de alerts te koppelen en regelmatig te controleren of de back-ups en notificaties echt werken.

Referenties

Over de auteur

Jeremy Kraft beheert de infrastructuur en de zelfgehoste diensten van het IBCSC. Deze gidsen beschrijven configuraties die echt zijn uitgerold en voor publicatie opnieuw zijn nagekeken.

Discussie

Reacties

0

Nog geen reacties. U kunt de discussie openen met een vraag of uw eigen ervaring.

Hebt u een account? Aanmelden

Platte tekst, maximaal 2 000 tekens. Nieuwe reacties worden gemodereerd. Uw naam wordt bij de reactie getoond. Er wordt geen e-mailadres gevraagd; alleen een onomkeerbare vingerafdruk van uw IP-adres wordt bewaard tegen spam.