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 zu Elvodia Antworten abbrechen