SNMP-Daemon einrichten

Es geht auch ohne Zabbix-Agenten

Es gibt viele denkbare Szenarien, in denen der Einsatz des Zabbix-Agenten auf einem „vollwertigen“ Betriebssystem nicht möglich ist. Vorgaben an Datensicherheit oder ein sehr restriktiv konfigurierter Satellite-Server des Red-Hat-Networks könnten einige Gründe sein.

Alle Linux-Betriebssysteme und Microsoft Windows in allen Varianten bringen einen SNMP-Agenten mit. Über diesen können Sie mit dem Zabbix-Server alle Performance-Daten des Systems überwachen.

SNMP-Agent einrichten

Der Dienst, welcher SNMP-Anfragen beantwortet, heißt SNMP-Agent. Dabei handelt es sich um einen Daemon, und die Pakete der Distributionen heißen „snmpd“.

Ubuntu und Debian

Installieren Sie den SNMP-Agenten über den Paketmanager:

apt-get install snmpd

Aktivieren Sie diesen in der Datei /etc/default/snmpd mit der Variablen SNMPDRUN=yes Per Standard lauscht der SNMPD nur auf Localhost. Das bringt leider nichts, wenn wir das System über das Netzwerk überwachen möchten. Öffnen Sie die Datei /etc/snmp/snmpd.conf und aktivieren Sie, dass der SNMPD auf allen verfügbaren Netzwerkschnittstellen Anfragen beantwortet, und starten Sie den SNMPD danach neu:

#  Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:0.0.0.0:161

Prüfen Sie, ob der SNMPD „läuft“ und Verbindungen aus allen Netzen annimmt:

# netstat -lpanu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address   Foreign Add   PID/Program
udp        0      0 0.0.0.0:161     0.0.0.0:*     14895/snmpd     
udp        0      0 0.0.0.0:50151   0.0.0.0:*     14895/snmpd

SNMPv2c konfigurieren

Wenn Sie nun Ihr System per snmpwalk über Community „public“ abfragen, erhalten Sie eine recht reduzierte Ausgabe. Legen Sie eine neue Community an, die für Anfragen aus dem lokalen Netz alle verfügbaren Daten preisgibt. Fügen Sie in der Datei /etc/snmpd/snmpd.conf im Block „ACCESS CONTROL“ folgende Zeile ein:

rocommunity myCommunity 192.168.0.0/16

Wenn Sie keine neue Community anlegen und stattdessen den Standard „public“ verwenden möchten, ändern Sie die Zeilen wie folgt:

#rocommunity public  default    -V systemonly
rocommunity public 0.0.0.0/0

SNMPv3 konfigurieren

Wenn Sie nur für authentifizierte Benutzer Information per SNMP freigeben möchten, sollten Sie SNMPv3 aktivieren. Der SNMPD ist in der Lage, Abfragen per SNMPv2c und SNMPv3 gleichzeitig zu bedienen. Wenn Sie nur sichere Abfragen per SNMPv3 zulassen möchten, müssen Sie in der Datei /etc/snmpd/snmpd.conf im Block „ACCESS CONTROL“ alle Zeilen auskommentieren, die mit rocommunity beginnen.

Stoppen Sie anschließend den SNMP. Danach können Sie mit dem nachfolgenden Kommando einen Benutzer anlegen und für diesen eine Passphrase setzen. Nach dem erneuten Start des SNMPD sollte eine Abfrage nur noch per SNMPv3 und mit den korrekten Zugangsdaten möglich sein. Die Passphrase muss mindestens acht Zeichen lang sein:

service snmpd stop
net-snmp-config --create-snmpv3-user -ro -A geheim123 zabbix
service snmpd start

Prüfen Sie die Konfiguration mit folgendem Kommando:

snmpwalk -l authPriv -v 3 -a MD5 -A geheim123 -u zabbix -x DES -X geheim123 127.0.0.1
Prüfen Sie mit netstat -lpanu, ob der SNMPD auf allen IP-Adressen oder nur auf localhost lauscht. Der Aufruf des Kommandos net-snmp-config hat möglicherweise Einstellungen überschrieben. Setzen Sie agentAddress udp:0.0.0.0:161. Siehe „SNMPv2c konfigurieren“.

CentOS und Red Hat Version 7

Installieren Sie den SNMP-Agenten über den Paketmanager:

yum install net-snmp net-snmp-utils

Die Beispieldatei /etc/snmp/snmpd.conf ist unübersichtlich aufgebaut und enthält viele Kommentare zu erweiterten Funktionen des SNMP-Agenten. Deaktivieren Sie im Bereich „Access Control“ die Zeile beginnend mit „com2sec“ durch ein Kommentarzeichen. Fügen Sie darunter die folgende Zeile ein und starten Sie den SNMP-Dienst neu:

#com2sec notConfigUser  default       public
rocommunity public 192.168.0.0/16
systemctl restart  snmpd

Nun sollte eine Abfrage per snmpwalk zahlreiche Daten zurückliefern. Beachten Sie, dass nur Abfragen aus dem lokalen Netz, nicht aber von „localhost“ beantwortet werden.

Windows Server 2012

Im Windows Server 2012 RC2 wählen Sie im Server-Manager „Rollen und Features hinzufügen“ aus. In der Auswahl der Features haken Sie „SNMP-Dienst“ an und klicken anschließend auf „Installieren“.

Installieren des SNMP-Agenten unter Windows Server 2012

Der neue Dienst „SNMP-Dienst“ sollte nun in der Diensteverwaltung aufgelistet sein. Wählen Sie den Dienst aus, klicken Sie auf „weitere Aktionen“ und öffnen Sie die Einstellungen für den SNMP-Dienst.

  • Fügen Sie eine Community mit Leserechten hinzu, zum Beispiel „public“.
  • Fügen Sie ein Netzwerksegment hinzu, welches den Dienst abfragen kann, oder wählen Sie „SNMP-Pakete von jedem Host annehmen“ aus.
Eigenschaften des SNMP-Dienstes

Nun sollte einer Abfrage des SNMP-Dienstes nichts mehr im Wege stehen. Ein Standard-Windows-Server 2012 RC liefert stolze 2162 SNMP-Items zurück.

apfel:~ thorsten$ snmpwalk -v 2c -c public windows-server.local|wc -l
   2162