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.

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

Installation und Paketerstellung:

  • 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:

23 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
    • Hi,

      du kannst es auf deiner DS216j nicht nutzen. Liegt an der Hardware.
      Das Paket unterstützt nur die x86 Architektur, keine Marvell CPUs.

      Antworten

Schreibe einen Kommentar