Synology DSM 6 Check_MK-Agent Paket


Meinen Check_MK-Agent mit veraltetem IPKG und xinetd hab ich jetzt auf das aktuellere OPKG umgestellt.
Dann kam mir die Idee mal alles was benötigt wird in ein SPK zu packen um die Installation und deinstallation ein wenig zu vereinfachen.

08.03.2021 - Checkmk Agent Fork von Christopher Younger (https://github.com/ceyounger/checkmk-agent-synology)
21.02.2021 - Checkmk Agent 1.6.0p21 fĂŒr DSM 6.2
19.12.2020 - Checkmk Agent 1.6.0p19 fĂŒr DSM 6.2
19.07.2020 - Anleitung aktualisiert
11.05.2020 - Checkmk Agent 1.6.0p11 fĂŒr DSM 6.2
26.01.2020 - Anleitung aktualisiert
25.01.2020 - Checkmk Agent 1.6.0p8 fĂŒr DSM 6.2
29.01.2019 - Checkmk Agent 1.5.0p11 fĂŒr DSM 6.1 und 6.2
20.01.2018 - Checkmk Agent 1.4.0p22 fĂŒr DSM 6.1

Der Agent lÀuft nur auf einer Synology mit x86_64 CPU! (Welche CPU hat mein Synology NAS?)

so hab ich das Paket erstellt:

  • Entware-ng auf einer Synology x86-64 NAS installieren
  • Das check_mk_agent.linux script vom Checkmk Server kopieren und drei Pfade anpassen.
  • Plugins mk_logwatch und mk_inventory vom Checkmk Server kopieren.
  • Was nicht fĂŒr Checkmk benötigt wird entfernen um das Paket möglichst klein zu halten.
  • Aus der jetzt funktionierenden Installation (Dateistruktur) ein SPK Paket erstellen.
  • Als Paketvorlage irgendein kleines SPK Paket oder MODS nehmen.
  • Getestet wurde es zuerst in einer virtuellen DSM Installation.

sonstiges:

  • Das preinst script prĂŒft ob die Verzeichnisse /opt/{bin,etc,lib,sbin,usr,var} existieren. Wenn ja, wird die Installation abgebrochen.
  • Hilfreiche Meldungen findet man im Logfile /var/log/packages/CheckmkAgent.log
  • Alle Dateien befinden sich als symlink unter /opt. (/volume1/@appstore/CheckmkAgent/opt)
  • Die SPK Pakete können mit 7-Zip geöffnet und bearbeitet werden.
  • Das Paket ist eine BETA Version. (Hier kann noch einiges angepasst und verbessert werden.)
  • Bei einer Deinstallation werden auch eigene Anpassungen unter /opt mit entfernt, also vorher sichern!

meine erstellten Agent Versionen:

Installation des Agents im DSM:

Der Host in Checkmk:

Das Checkmk Agent Paket lÀuft aktuell ohne Probleme unter DSM 6.2.2-24922 auf einer DS713+ und XPEnology VM.

Bug:
Nach einem update von 6.2.2 auf 6.2.3 mit anschließendem Neustart sind die symlinks in /opt nicht mehr vorhanden und der Agent lĂ€uft nicht!
Erstellt man den symlinks manuell, lÀufts wieder.

root@nas01:~# find /volume1/\@appstore/CheckmkAgent/opt -maxdepth 1 -type d -exec ln -sf {} /opt \;     # ab checkmk-agent-1.6.0p11.spk
root@nas01:~# ln -sf /volume1/\@appstore/CheckmkAgent/opt /opt

Checkmk Agent SPK Paket updaten

Es mĂŒssen lediglich immer nur das aktuelle check_mk_agent Script und die Plugins erneuert werden. Das GrĂŒndgerĂŒst bleibt unverĂ€ndert.
Alle Änderungen können direkt in 7-Zip mit der geöffneten SPK Datei durchgefĂŒhrt werden, es muß nichts entpackt werden.

#
# Dateien vom CMK Server im SPK Paket aktualisieren.
#

# check_mk_agent (der Agent)
CMK /opt/omd/versions/1.6.0pX.cre/share/check_mk/agents/check_mk_agent.linux
SPK checkmk-agent-1.6.0.pX.spk\package.tgz\package.tar\opt\bin\check_mk_agent
- Pfade im script nach /opt Àndern
  export MK_LIBDIR=${MK_LIBDIR:-/opt/usr/lib/check_mk_agent}
  export MK_CONFDIR=${MK_CONFDIR:-/opt/etc/check_mk}
  export MK_VARDIR=${MK_VARDIR:-/opt/var/lib/check_mk_agent}

# plugin: logwatch (logfiles)
CMK /opt/omd/versions/1.6.0pX.cre/share/check_mk/agents/plugins/mk_logwatch
SPK checkmk-agent-1.6.0.pX.spk\package.tgz\package.tar\opt\usr\lib\check_mk_agent\plugins\mk_logwatch
CMK /opt/omd/versions/1.6.0pX.cre/share/check_mk/agents/cfg_examples/logwatch
SPK checkmk-agent-1.6.0.pX.spk\package.tgz\package.tar\opt\etc\check_mk\logwatch.cfg
- Pfad anpassen
  /var/log/auth.log

# plugin: inventory (Hard- und Software Inventory)
CMK /opt/omd/versions/1.6.0pX.cre/share/check_mk/agents/plugins/mk_inventory.linux
SPK checkmk-agent-1.6.0.pX.spk\package.tgz\package.tar\opt\usr\lib\check_mk_agent\plugins\mk_inventory
CMK /opt/omd/versions/1.6.0pX.cre/share/check_mk/agents/cfg_examples/mk_inventory.cfg
SPK checkmk-agent-1.6.0.pX.spk\package.tgz\package.tar\opt\etc\check_mk\mk_inventory.cfg
  
# INFO Datei im SPK Paket anpassen
SPK checkmk-agent-1.6.0.pX.spk\INFO
- die Version des Agents anpassen
  version="1.6.0pX"

Das SPK Paket in 7-Zip:

Fork

Christopher Younger veröffentlicht jetzt auch aktuelle Releases des Agents auf GitHub. Sollte man im Auge behalten! (thanks to Chris)

65 Gedanken zu „Synology DSM 6 Check_MK-Agent Paket“

  1. Hallo

    Tolles Paket, schnelle Installation!

    Bei mir ist es aber so, das ich ĂŒber SNMP fast mehr Infos von der Synology bekomme als mit dem check_mk Agent. MĂŒsste dieser nicht mehr Infos bringen? Vorallem habe ich Docker-Container am Laufen und deshalb ging ich davon aus das ich diese mit dem Agent sehen mĂŒsste.
    Weisst du da mehr?

    Gruss

    Antworten
    • Mit snmp wirst du nicht weniger Daten als mit dem Agent bekommen. Der ist halt schnell installiert und lĂ€uft sofort.

      FĂŒr Docker Container gibt es eigene check plugins, die werden nicht mit dem Standard Agent abgefragt.
      Da hab ich bisher aber keine Erfahrung mit.

      Antworten
  2. Okay, kleiner Nachtrag. Beim Discovery erhalte ich folgende Fehlermeldung:

    Service discovery failed for this host: Got invalid data:
    invalid literal for int() with base 10: ‘Folder@’
    Retry discovery while ignoring this error (Result might be incomplete).

    Antworten
    • Der Fehler taucht bei mir nicht auf, habs mir gerade nochmal angeschaut.

      OMD[demo]:~$ cmk –check-discovery synology
      OK – no unmonitored services found, no vanished services found

      (Check_MK 1.5.0p14 / check-mk-agent-1.5.0p11 / DSM 6.2.2)
      Hast du vielleicht andere Versionen im Einsatz?

      Antworten
    • Hallo Christian, vielen Dank!

      Da haben wohl doch ein paar Leute das Paket im Einsatz. :-)
      Neues Agent Paket (1.6.0p8) ist online. Hab auch mal die Anleitung aktualisiert.

      Gruß, Michael

      Antworten
  3. Hi Michael,

    ich konnte dein Plugin erfolgreich auf der Synology installieren. Wir arbeiten allerdings mit der verschlĂŒsselten Übertragung.
    Wo kann ich dies einstellen? “Agent output is plaintext but encryption is enforced by configuration.”

    Viele GrĂŒĂŸe

    Tobias

    Antworten
    • Hallo Tobias,

      dazu muss auf der Synology folgende config Datei erstellt werden:
      /opt/etc/check_mk/encryption.cfg
      ENCRYPTED=yes
      PASSPHRASE='EUER-ENC-PASSWORT'

      Die Datei sollte auch noch vor Lesezugriffen anderer geschĂŒtzt werden.
      chmod 600 /opt/etc/check_mk/encryption.cfg

      Gruß, Michael …

      Antworten
  4. Super Paket, habe es auf einer virtuellen 918 probiert ohne Probleme, allerdings bei der reellen 918 bekomme ich beim Versuch das Paket zu installieren die Fehlermeldung “Paket konnte nicht installiert werden”

    Antworten
      • Hi,
        danke fĂŒr die Info, ja so ist es. Das Verzeichnis ist schon vorhanden. /opt/containerd/

        Gibt es die Möglichkeit die Komponenten anderweitig zu installieren. WÀre eine Möglichkeit den Inhalt der package.tar in das Verzeichnis zu kopieren und den link hÀndisch zu setzen?

        Antworten
        • HĂ€ndisch ginge das, ist dann aber wieder gefrickel. Soll ja einfach sein. ;)

          WĂŒrde gerne alles nach z.B. /opt/cmk-agent linken, geht aber nicht so einfach, da
          in der xinetd binary die Pfade teilweise nach /opt/lib und /opt/etc verweisen.

          Man könnte die Verzeichnisse alle einzeln nach /opt linken. (dann wirds aber wieder etwas unĂŒbersichtlich)
          Oder sich eine xinetd ohne feste Zuweisungen selbst kompilieren??

          Ich schau mal ob ich das Problem lösen kann … ;)

          Antworten
          • Hab das im aktuellen Paket (1.6.0p11) jetzt mal geĂ€ndert. Das /opt Verzeichnis darf existieren.
            Ich erstelle fĂŒr die einzelnen Verzeichnisse jetzt doch symlinks unter /opt.

  5. Die Geschichte mit dem containerd Folder im opt ist mir auch aufgefallen. Nach einem Reboot der NAS war der Agent nicht mehr funktioniell.
    Und da ich derzeit einen Großteil meiner VMs nach Docker auf der Syno portiere (inkl. check_mk), denke ich das die Syno den Folder benötigt. Im Moment monitore ich meine 918 ĂŒber ssh und den linux agent von check_mk. Werde hier aber weiter ein Auge auf die Weiterentwicklung werfen ;-)

    Antworten
  6. Hallo,
    ich habe heute versucht, dein aktuelles SPK Paket auf einer Synology Diskstation zu installieren (DS216j). Da erhalte ich eine Fehlermeldung, dass das Paket nicht installiert werden kann, entweder weil es mit der DSM Version (6.2.2) nicht kompatibel ist oder von der Disk Station nicht unterstĂŒtzt wird. Kann ich das Paket auf dieser NAS nicht nutzen?
    Danke vorab!

    Antworten
  7. Vielen Dank fĂŒr den Agent. Der Agent funktioniert einwandfrei.

    Jedoch haben wir einen Fehler festgestellt:
    Er zeigt den Service “MD Softraid md1” bzw. “MD Softraid md0” als kritisch an, wenn weniger Platten aktiv sind als FestplattenplĂ€tze.

    z.B. CRIT – Status: active, Spare: 0, Failed: 0, Active: 11, Status: 12/11, UUUUUUUUUUU_CRIT (11 Platten plus eine Hotspare im System)

    Das ist eigentlich kein richtiger Fehler, er mĂŒsste als Status “OK” anzeigen.

    Antworten
    • Das liegt wohl an der Art und Weise wie der md check des Agents die Arrays ĂŒberprĂŒft.

      Aus dem Handbuch:
      Checks the current state of a Linux MD raid array. The information is read by the agent from /proc/mdstat.
      The result is either OK, if all disks are active or critical in any other case.

      Antworten
  8. Servus,

    ich habe eine DSM 6.2.2-24922 auf einer VM. Das Check MK Paket ist auch schonmal gelaufen, leider funktioniert dies nicht mehr.
    Ich Setze CheckMK 1.6.0p11 Enterprise Server ein und bekomme den Agent nicht mehr zum laufen.
    Ein telnet nas01 6556 bringt auch kein Ergebnis.
    Ich vermute das der xinetd nicht mehr sauber lÀuft.

    Welches Version deines SPK soll ich denn nutzen?

    Viele GrĂŒĂŸe und Danke
    Tobi

    Antworten
    • Hallo Tobi,

      nimm das aktuelle 1.6.0p11. Ältere Versionen bitte vorher deinstallieren! Welche Version hast du installiert?
      Es kommt vor das nach einem Update die symlinks in /opt nicht mehr vorhanden sind.

      Antworten
      • Hallo,

        installiert ist auch die 1.6.0p11.
        unter /opt/ ist garkein Inhalt enthalten:

        root@nas01:/opt# ls -lart
        total 8
        drwxr-xr-x 2 root root 4096 Oct 26 14:06 .
        drwxr-xr-x 27 root root 4096 Nov 21 22:01 ..

        Was muss hierbei gemacht werden ?

        Antworten
  9. Hallo Michael,

    tolle Sache so einen Agent bereit zu stellen. Habe angefangen mich mit check_mk zu beschaffen. Wollte den Agent nach deiner Anleitung auf p19 bringen, allerings sagt unter meinem Windows beim hinzufĂŒgen der Daten 7-zip, dass die Operation fĂŒr diesen Ordner nicht zulĂ€ssig sein.

    Hast du einen Tipp fĂŒr mich?

    Vielen Dank und einen schönen 4ten Advent
    Carsten

    Antworten
    • Hallo Carsten,

      es könnte sein das du zu viele Änderungen in der SPK-Datei gleichzeitig machst. Mach das mal in mehreren Schritten.
      Die SPK mit 7-Zip öffnen, Änderung durchfĂŒhren, wieder zurĂŒck auf die SPK und die nĂ€chste Änderung.

      Gruß, Michael…

      Antworten
  10. Thank you for the package & the recent update. For some reason it failed on my Xpenology 6.2.3 update 3.
    Also I was confused by the instructions (most likely because it was translated and my German is very limited), which made me think I had to install entware-ng myself.
    After this, I discovered entware/xinetd was included and the checks prevent further installation.

    So I manually had to copy the required files from the package to the correct location.
    I’ll share the instructions in case someone else also has installed entware-ng and was not able to install the client succesfull.
    I like the modifications you did specifically for Synology, thank you for that.

    # install entware-ng on synology (follow online instructions)
    opkg install xinetd

    # unzip latest check_mk package (7z), then inside using tar: package.tgz
    7z e checkmk-agent-synology_1.6.0p19.spk
    tar -zxvf package.tgz

    mkdir -p /opt/var/lib/check_mk_agent/cache
    mkdir /opt/etc/check_mk/
    mkdir /opt/usr/lib/check_mk_agent/plugins

    cp -p ./opt/etc/xinetd.d/check-mk-agent /opt/etc/xinetd.d/check-mk-agent
    cp -p ./opt/usr/lib/check_mk_agent/plugins/* /opt/usr/lib/check_mk_agent/plugins/
    cp -p ./opt/bin/check_mk_agent /opt/bin/check_mk_agent
    cp -p ./opt/etc/check_mk/* /opt/etc/check_mk/

    /opt/etc/init.d/S10xinetd stop
    /opt/etc/init.d/S10xinetd start

    Antworten
      • I know.. But for some reason my initial installation failed (it did install but not start, something related to xinetd).
        Then I decided to install entware-ng myself, but that prevented futher installation (as explained on your website) as you have build in checks.

        I imagine people do have entware-ng installed for other reasons (or any other application in the same /opt/bin /opt/etc locations. The above instructions may help people in the same situation. Removing the installation entware-ng was probably more work. :)

        Anyway, thanks for creating this agent/SPK file, it will definitely help people out.

        Antworten
  11. Top und vielen Dank,
    habe mir mal schnell den Check_MK 2.0.0b7 mit Docker und AbhÀngigkeit Python3 basteln können.
    Selbst das pip install docker war kein Problem..

    in Scipts einfach in der postinst:
    wget https://bootstrap.pypa.io/get-pip.py
    python3 ./get-pip.py
    python3 -m pip install requests
    python3 -m pip install docker
    vor das “exit 0″ schreiben,

    In der INFO folgendes hinzufĂŒgen/Ă€ndern:
    version=”2.0.0b7″
    install_dep_packages=”py3k”

    Das neueste check_mk_linux nach package.tgz\package.tar\opt\bin\ (NatĂŒrlich die 3 Pfade anpassen)

    und die docker.cfg nach package.tgz\package.tar\opt\etc\check_mk\
    sowie die mk_docker.py package.tgz\package.tar\opt\usr\lib\check_mk_agent\plugins\

    Super einfach… Noch mal danke dafĂŒr… :)

    Antworten
  12. Ich glaub ich bin noch nicht fit fĂŒr Checkmk. Es ist jetzt auf dem NAS (Synology NAS ) installiert. Paketzentrum zeigt auch das es “lĂ€uft” und nu? Jetzt stehe ich auf dem Schlauch. Wo (vermutlich Browser) rufe ich das Programm auf und unter welchem Port (http://192.168.1.123:xxxx)? Im Hauptmenue hab ich kein eintag, Brauch ich Docker fĂŒr den “Spaß”? Ist auch installiert aber da hab ich keinen Container…fĂŒr Checkmk … oder weiss nicht wo der sein soll. Hab auch schon das Inet bemĂŒht – vermutlich greift Satz1. Kann ich hier eine rudimentĂ€re Schnellbesolung bekommen?

    Antworten
    • Voraussetzung ist ein laufender Checkmk Server! (https://checkmk.com/de)

      Der Agent hat kein eigenstÀndiges Programm, lÀuft als Service im Hintergrund.
      Er dient nur zur Kommunikation mit dem Monitoringserver, liefert ihm die Daten (Metriken) der NAS die er dann ĂŒberwacht, auswertet und darstellt.

      Antworten
  13. Moin, danke fĂŒr das klasse Plugin.

    hast du dir schon mal DSM7 angeschaut? leider startet das Paket nicht unter dem DSM7 RC
    starte ich ihn manuell mittels /opt/bin/check_mk_agent bekomme ich kurz Daten.

    Chris

    Antworten
  14. Moin,

    da mein installierter Checkmk Agent (1.6.0p11) seit dem Update auf DSM 7.0-41890 nicht mehr startet und ein deinstallieren via Paket-Zentrum meine Syno DS720+ zum totalen Crash bringt, wĂŒrde ich gerne den Checkmk Agent manuell via SSH deinstallieren. An welchen stellen mĂŒsste ich suchen um den Agent vom DSM restlos zu entfernen ? Geht das ĂŒberhaupt ? FĂŒr einen Hinweis wĂ€re ich echt dankbar.

    Tobi

    Antworten
  15. Kann mir mal jemand sagen, wie ich auf der Synology mit DSM7 das Plugin wieder los werde? Leider finden sich hier nur vereinzelt Hinweise aber keine wirkliche Anleitung wie ich das ganze wieder los werde. Das Verzeichnis unter /var/packages/CheckmkAgent habe ich gelöscht. Aber Symlinks unter /opt…. ich hab ja noch nicht mal /opt im Verzeichnisbaum. Auch findet sich nichts unter /volume1/@appstore/CheckmkAgent

    Antworten
    • Kann ich dir nicht sagen, es ist ja auch fĂŒr DSM6!
      Das Plugin unter DSM7 hab ich noch nie ausprobiert.

      FĂŒr DSM6 sind es diese Verzeichnisse.
      – die symlinks unter /opt (bin, etc, lib, sbin, usr, var)
      – /volume1/@appstore/CheckmkAgent
      – /var/packages/CheckmkAgent

      Wenn sich dort nichts mehr befindet, sollte es nicht mehr installiert sein.

      Antworten
  16. Hallo zusammen, nutze gerne CheckMK. Nun bin auf DSM7 umgestiegen. Gibt es hier bezĂŒglich des Updates Neuigkeiten? Oder Schwierigkeiten wobei man eventuell behilflich sein kann?

    Gruß Carsten

    Antworten
    • Hallo Carsten,

      ich weiß noch nicht genau was Synology beim installieren von SPK Paketen unter DSM 7 geĂ€ndert hat und jetzt erwartet.
      Berechtigungen, Installationsroutinen, etc. Ich bin da aber sporadisch dran. Werde mal in andere DSM 7 Pakete reinschauen.

      Wenn du dich mit dem erstellen von SPK Paketen auskennst, kannst du da gerne unterstĂŒtzen.

      Gruß, Michael…

      Antworten
  17. Hallo Michael,

    habe ich was falsches geschrieben?
    Ich habe doch nur gefragt, ob Du was neues zu dem Thema DSM 7 hast?!?!
    Oder warum sehe ich meine Frage nicht?

    Viele GrĂŒĂŸe

    Clemens

    Antworten
    • Hallo Clemens,

      alles in Ordnung!
      Deine Frage sieht man erst, wenn ich sie freigebe oder darauf antworte. (das mache ich aber nicht tÀglich)

      Zu meinem Paket gibt es noch nichts wirklich neues. Bin noch am grĂŒbeln…

      Man kann aber das Checkmk Agent Paket einfach mit apt dpkg unter DSM7 auf der Konsole installieren.
      Ob man das machen sollte, sei mal dahingestellt. ;)

      Gruß, Michael…

      Antworten
      • Hallo Michael,

        apt ist standard mĂ€ĂŸig ja nicht auf der DSM7.
        Ich finde auch kein Community Package mehr, was das apt hat und funktioniert.
        Vielleicht suche ich nicht richtig :)
        Sonst hÀtte ich das mal installiert zum testen versteht sich :p

        So warte ich mal, was Du da zauberst ;)

        Gruß
        Clemens

        Antworten

Schreibe einen Kommentar