Synology

Zabbix installeren op Synology met Docker

Zabbix op Synology met DockerOm je netwerk te monitoren zijn er diverse pakketten beschikbaar. Één hiervan is Zabbix. Dit is een veelzijdig Open Source pakket, vallend onder een GPL2 licentie.

Dit artikel legt, in het kort, uit hoe Zabbix is te installeren op een Synology NAS met behulp van Docker.

Opmerking: Dit artikel is alleen bedoeld om Zabbix te installeren. Het configureren van Zabbix wordt niet beschreven. Er zijn veel beschrijvingen op het internet te vinden, waaronder de uitgebreide documentatie dat te vinden is op de Zabbix website.

Docker is het best te omschrijven als een virtuele container die een compleet voorgeïnstalleerd systeem bevat die nodig is om een pakket te laten werken. In dit artikel gebruiken we de Synology Docker software, die simpel te installeren is, via de DSM pakketmanager.

We hebben onderstaande getest op een Synology DS417+ DSM 5.2-5644 update 5, Synology Docker-pakket versie 1.6.2-0036 en de Docker image zabbix/zabbix-3.0 en database image zabbix/zabbix-db-mariadb.

1 - Installatie van de Docker pakket in Synology's Pakket Manager
Als eerste moeten we in de Synology Webmanager inloggen en in de DSM pakket manager het Docker-pakket installeren. Deze staat in de Utilities sectie en is door Synology zelf uitgebracht.
2 - Voorbereidingen voor de installatie van de Zabbix Docker <em>containers</em>
Voordat we Docker containers installeren gaan we voorbereidingen treffen. Als het Docker pakket is geïnstalleerd wordt er op de opslagvolume een nieuwe map aangemaakt genaamd docker. In deze hoofdmap kunnen bestanden  en mappen worden gezet die door Docker benaderbaar zijn.

Hier moeten we een nieuwe submap maken genaamd Zabbix. In deze map komen straks de database bestanden te staan die door Zabbix gebruikt gaan worden. De reden om ze hier op te slaan is dat deze makkelijk benaderbaar en te back-uppen zijn. Zo blijven ook de databasebestanden intact wanneer de Docker containers worden verwijder of vastlopen. Je weet maar nooit…

3 - Downloaden van de Zabbix <em>Images</em>
De installatie van Zabbix bestaat uit het installeren van drie containers gemaakt door twee images. Zoek in de Docker app (Registry-sectie) op Zabbix. In de lijst komen de twee images naar voren die we gaan gebruiken, namelijk de al eerder genoemde zabbix/zabbix-3.0:latest en zabbix/zabbix-db-mariadb:latest. Download deze beide. Indien ze gedownload zijn dan worden ze zichtbaar in de Image-sectie.

Opmerking: Het installeren van een container met de juiste instellingen kan nogal lastig zijn. Daarom hebben we de juiste instellingen in Docker Run commando’s verpakt. Plak dit commando bij het installeren van een image onder knop Launch (pulldown menu) –> Launch with Docker Run .

4 - Installeren van zabbix-db-storage <em>container</em>
We beginnen met de aanmaak van een container (niet opstarten!) die maar éénmalig nodig is. Deze is bedoeld om de database voor te bereiden van de database container. Deze koppelen we aan de Zabbix-map die we aangemaakt hebben op de Synology in stap 2.

Selecteer de zabbix/zabbix-db-mariadb:latest in de Image-sectie en installeer de container met de volgende Docker Run commando:
docker run -d -v /var/lib/mysql --name zabbix-db-storage busybox:latest

Vervolgens ga naar de Container-sectie, selecteer de nieuw aangemaakte zabbix-db-storage, klik op de Edit-knop, ga naar de Volume-tab en klik op de knop Add Folder.

Selecteer de /docker/Zabbix map, aangemaakt in stap 2, en vul als Mount path in:
/var/lib/mysql
Verwijder het vinkje bij Read-Only en klik op de OK-knop.

5 - Installeren van zabbix-db <em>container</em>
De volgende container die aangemaakt moet worden zorgt voor de database die door Zabbix gebruikt gaat worden (ook niet opstarten!). De installatie gaat bijna hetzelfde als de installatie in stap 4. Ook deze moet gekoppeld worden aan de /docker/Zabbix-map. Verander UW-DB-WACHTWOORD in de Docker Run commando met een eigen  verzonnen wachtwoord. De poort 63306 is gekozen omdat, indien u al een database heeft draaien op uw Synology, hiermee in conflict komt. Eventueel kunt u die ook naar uw eigen wensen instellen.

Selecteer de zabbix/zabbix-db-mariadb:latest in de Image-sectie en installeer de container met de volgende Docker Run commando:
docker run -d --name zabbix-db -p 63306:3306 --env="MARIADB_USER=zabbix" --env="MARIADB_PASS=UW-DB-WACHTWOORD" --env="DB_innodb_buffer_pool_size=768M" zabbix/zabbix-db-mariadb

Vervolgens ga naar de Container-sectie, selecteer de nieuw aangemaakte zabbix-db, klik op de Edit-knop, ga naar de Volume-tab en klik op de knop Add Folder.

Selecteer de /docker/Zabbix map, aangemaakt in stap 2, en vul als Mount path in:
/var/lib/mysql
Verwijder het vinkje bij Read-Only en klik op de OK-knop.

6 - Opstarten van de <em>containers</em> <em>zabbix-db-storag</em>e en <em>zabbix-db</em>
Start eerst de  zabbix-db-storage container, wacht totdat deze is opgestart en start daaarna de zabbix-db container op.

Opstarten doet u door het grijze schuifje bij de betreffende container naar 1 te schuiven. De container-status wordt dan aangepast van Stopped naar Running.

Als het goed is zal er in de /docker/Zabbix-map op uw Synology een aantal bestanden en mappen verschijnen. Dit zijn de database bestanden/mappen. Mocht er iets niet goed gaan, bekijk dan de log van de desbetreffende container, door de container te selecteren en op de Details-knopje te klikken en het tabblad Log te kiezen.

De container zabbix-db-storage schakelt zich zelf, na enige tijd, vanzelf uit. Dit hoort zo!

7 - Installeren en opstarten van Zabbix <em>container</em>
De volgende container die aangemaakt moet worden is verantwoordelijk voor de complete Zabbix installatie van de eigen Zabbix webserver en agents die uw netwerk gaan afstruinen om gegevens te verzamelen en statistieken te tonen.

De poort van de webserver kunt u veranderen van poort 80 naar UW-WEB-POORT omdat poort 80 al gebruikt kan zijn op uw Synology NAS. We hebben een extra variabele (PHP_date_timezone=Europe/Amsterdam) in de Docker Run commando toegevoegd omdat de tijd getoond in webserver anders niet overeen komt met de actuele tijd. Mocht uw installatie in een andere tijdzone bevinden dan kunt u dit aanpassen. Zie HIER voor een compleet overzicht.

Selecteer de zabbix/zabbix-3.0:latest in de Image-sectie en installeer de container met de volgende Docker Run commando:
docker run -d --name zabbix -p UW-WEB-POORT:80 -p 10051:10051 --link zabbix-db:zabbix.db --env="PHP_date_timezone=Europe/Amsterdam" --env="ZS_DBHost=zabbix.db" --env="ZS_DBUser=zabbix" --env="ZS_DBPassword=UW-DB-WACHTWOORD" zabbix/zabbix-3.0:latest

Wanneer de Zabbix-container is geïnstalleerd kunt u het opstarten. Het kan enige tijd duren voordat uw de Zabbix systeem compleet is na installatie.

8 - Inloggen op uw Zabbix systeem
Als alles goed is gegaan kunt u nu Zabbix (gaan) gebruiken. De Zabbix webmanager is te benaderen op de SYNOLOGY-IP-ADRES van uw Synology:

http://SYNOLGY-IP-ADRES:UW-WEB-POORT

De standaard gebruikersnaam is Admin (let op de hoofdletter A!) en wachtwoord zabbix.

Veel plezier met uw Zabbix installatie!

6 Comments

  1. Een prachtige howto heb je hier neer geschreven maar spijtig genoeg krijg ik bij elke zabbix 3.0 versie een “operation failed” wanneer ik deze wil downloaden! heb jij hiervoor een oplossing ? Alvast bedankt.

    1. Hi Jean-Pierre,

      Ik heb geprobeerd jouw foutmelding te reproduceren, maar geeft het downloaden van de image zabbix/zabbix-3.0 geen problemen. Zul je altijd zien, natuurlijk 😉

      Ook een puntje van aandacht, de versie beschreven in dit artikel is verouderd en er wordt aangeraden een recentere te downloaden:

      Obsolete image, please use compatible https://hub.docker.com/r/monitoringartist/zabbix-3.0-xxl/

      Ook deze image kan ik, zonder problemen, downloaden.

      Begint het wel met downloaden? Wanneer krijg je de foutmelding te zien?

      1. Hallo Opperstruiner.
        Sorry voor het late bericht maar was op vakantie vertrokken.
        Nu is het gelukt om de installatie te voltooien omdat ik de commandos in een ssh terminal heb gedaan. Heb met meerdere docker containers voor dat ik deze niet kan downloaded via docker app. Doe het dan via terminal en dan lukt het wel.
        bedankt voor het antwoord en nogmaals excuses voor laat antwoord.

  2. In de nieuwere versie van Docker onder Synology DSM 6.0.1 is het commando Docker run niet meer beschikbaar. Connecteer via ssh naar je Nas en gebruik sudo voor elk docker run commando.

Een reactie plaatsen

Uw email adres wordt niet gepubliceerd.Verplichte velden zijn gemarkeerd met *