Aktionen

Zabbix: Template Linux SNMP Process Monitoring with Discovery: Unterschied zwischen den Versionen

Aus znilwiki

(Die Seite wurde neu angelegt: „'''<u>Changelog:</u>'''<br> * 18.10.2022 erste öffentliche Version ---- ==Vorwort== Bei einem Kunden wurde Zabbix neu eingeführt. Unter anderem musste ich au…“)
 
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 21: Zeile 21:
In der Regel nehme ich dort Prozesse auf die "irgendetwas machen" und auf irgendeinen Port lauschen. Die lassen sich leicht per
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
  netstat -tulpn | grep LISTEN
oder
ss -tulwpn | grep LISTEN
ermitteln:
ermitteln:
  tcp        0      0 0.0.0.0:8081            0.0.0.0:*              LISTEN      5333/java
  tcp        0      0 0.0.0.0:8081            0.0.0.0:*              LISTEN      5333/java
Zeile 27: Zeile 29:
  tcp        0      0 127.0.0.1:32000        0.0.0.0:*              LISTEN      5333/java
  tcp        0      0 127.0.0.1:32000        0.0.0.0:*              LISTEN      5333/java
aber jeder andere Prozessname geht natürlich auch.<br>
aber jeder andere Prozessname geht natürlich auch.<br>
Die laufenden Dienste bekommt Ihr mit
systemctl --type=service
nachdem Ihr die Prozesse eingetragen habt müsst Ihr den Dienst neu starten:
nachdem Ihr die Prozesse eingetragen habt müsst Ihr den Dienst neu starten:
  service snmpd restart
  service snmpd restart
Zeile 32: Zeile 37:
je nach System.<br>
je nach System.<br>
----
----
==Template importieren==
==Template importieren==
Für Zabbix 6.0: <big>[[Datei:Znil_Template_Linux_SNMP_Process_Monitoring_with_Discovery.zip|Znil_Template_Linux_SNMP_Process_Monitoring_with_Discovery.zip]]</big><br>
Für Zabbix 6.0: <big>[[Datei:Znil_Template_Linux_SNMP_Process_Monitoring_with_Discovery.zip|Znil_Template_Linux_SNMP_Process_Monitoring_with_Discovery.zip]]</big><br>
Zeile 48: Zeile 54:
Trigger:<br>
Trigger:<br>
:[[Datei:ClipCapIt-221018-100825.PNG]]<br>
:[[Datei:ClipCapIt-221018-100825.PNG]]<br>
----
==Wie funktioniert das?==
Sobald man einen <code>proc xxx</code> Eintrag in die <code>/etc/snmp/snmpd.conf</code> setzt, generiert der '''SNMPD''' Dienst für jeden dieser Prozesse diverse Counter unter der OID<br>
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).<br>
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.<br>
----
----
==Kommentare==
==Kommentare==
<comments />
<comments />

Aktuelle Version vom 19. Oktober 2022, 09:50 Uhr

Changelog:

  • 18.10.2022 erste öffentliche Version

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.


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.


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.


Screenshots

Latest Data:

ClipCapIt-221018-100710.PNG

Items:

ClipCapIt-221018-100825.PNG

Trigger:

ClipCapIt-221018-100825.PNG

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.


Kommentare

Loading comments...