Aktionen

Zabbix: Template Linux SNMP Process Monitoring with Discovery

Aus znilwiki

Changelog:

  • 18.10.2022 erste öffentliche Version

1 Vorwort

Bei einem Kunden wurde Zabbix neu eingeführt. Unter anderem musste ich auf diversen Linux-Systemen auch überwachen ob bestimmte Prozesse laufen / Dienste gestartet sind.
Darunter waren auch ein paar echt alte Systeme auf denen ich den Zabbix-Agenten nicht mehr nachinstallieren konnte weil es keine Quellen mehr gab (usw.).

Glücklicherweise hatte jemand überall SNMP mit installiert, in den meisten Fällen den Dienst sogar für den automatischen Start konfiguriert.
Also habe ich mich auf die Suche begeben wie man auch laufende Prozesse per SNMP überwachen kann.
Jeden Prozess den man so überwachen will muss man lokal in der snmpd.conf eintragen, dieses Template erkenn automatisch alle dort eingetragenen Prozesse und baut die entsprechenden Items und Trigger. Mehr als das Eintragen (und Neustarten des snmpd Dienstes) muss man also nicht machen.


2 Vorbereitung auf dem Host

Neben der Voraussetzung das der Zugriff per SNMP im allgemeinen funktionieren muss, müsst Ihr jeden gewünschten Prozess in die Datei

/etc/snmp/snmpd.conf

eintragen. Ich gehe immer ganz an das Ende und füge für jeden Prozess eine Zeile hinzu, zum Beispiel

proc httpd2-prefork
proc mysqld
proc java
proc mailman
proc master

In der Regel nehme ich dort Prozesse auf die "irgendetwas machen" und auf irgendeinen Port lauschen. Die lassen sich leicht per

netstat -tulpn | grep LISTEN

oder

ss -tulwpn | grep LISTEN

ermitteln:

tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      5333/java
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      4040/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      4164/master
tcp        0      0 127.0.0.1:32000         0.0.0.0:*               LISTEN      5333/java

aber jeder andere Prozessname geht natürlich auch.
Die laufenden Dienste bekommt Ihr mit

systemctl --type=service

nachdem Ihr die Prozesse eingetragen habt müsst Ihr den Dienst neu starten:

service snmpd restart
systemctl restart snmpd

je nach System.


3 Template importieren

Für Zabbix 6.0: Datei:Znil Template Linux SNMP Process Monitoring with Discovery.zip
Nachdem Importieren findet Ihr das Template in der Gruppe

Templates/znil.net

unter dem Namen

znil Template SNMP Process Monitoring with Discovery


Weist das Template nun einen Host mit konfigurierten SNMP-Interface zu und wartet ab. Die Erkennung startet alle 15 Minuten.


4 Screenshots

Latest Data:

ClipCapIt-221018-100710.PNG

Items:

ClipCapIt-221018-100825.PNG

Trigger:

ClipCapIt-221018-100825.PNG

5 Wie funktioniert das?

Sobald man einen proc xxx Eintrag in die /etc/snmp/snmpd.conf setzt, generiert der SNMPD Dienst für jeden dieser Prozesse diverse Counter unter der OID

1.3.6.1.4.1.2021.2.1.1

zum Beispiel:

UCD-SNMP-MIB::prIndex.7 = INTEGER: 7
UCD-SNMP-MIB::prNames.7 = STRING: httpd2-prefork
UCD-SNMP-MIB::prMin.7 = INTEGER: 0
UCD-SNMP-MIB::prMax.7 = INTEGER: 0
UCD-SNMP-MIB::prCount.7 = INTEGER: 11
UCD-SNMP-MIB::prErrorFlag.7 = INTEGER: noError(0)
UCD-SNMP-MIB::prErrMessage.7 = STRING:
UCD-SNMP-MIB::prErrFix.7 = INTEGER: noError(0)
UCD-SNMP-MIB::prErrFixCmd.7 = STRING:

Hier laufen also 11 Prozesse des Apache Webservers (auf einem Red Hat Enterprise Servers).
Das Template war die Gelegenheit das Discovery per SNMO zu erlernen - das Geheimnis liegt im Index den man dann in allen weiteren Abfragen / bei den Items weiterverwenden muss.


6 Kommentare

Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen. Bei einem Kommentar wird deine IP-Adresse zusammen mit dem Text, den angegebenen Namen bzw. der Email-Adresse in der Datenbank für die Kommentare dauerhaft gespeichert. Genaueres kannst du hier nachlesen: Datenschutzerklärung

______________________________________________________

Bitte beachte das der eingetragene Name oder die Email-Adresse für jeden sichtbar ist!