artikel_cisco_icinga

Mein erster Artikel ist mehr oder weniger der Grund des Blogs. Viele werden festgestellt haben, dass man zu Icinga 2, check_nwc_health und die Abfrage von Port Status von Cisco Switchen via SNMPv3 kaum etwas im Internet finden wird.

Hier werde ich euch detailliert und ausführlich zeigen, wie ihr einen Cisco Switch mit Icinga2 und dem check_nwc_health Plugin von ConSol Labs via SNMPv3 abfragen könnt.

Vorbereitung Cisco Switch auf SNMPv3

Cisco SNMPv3 Setup
1. conf t
2. snmp-server group Snmpv3groupname v3 auth
3. snmp-server user Snmpv3user Snmpv3groupname v3 auth sha Snmpv3passwort

Hilfe Commands zur Verifizierung 

  • show snmp user
  • show snmp group
  • show snmp engineid

Debian Vorbereitung
Damit Debian Geräte mittels SNMPv3 abfragen kann, müssen noch einige Pakete installiert werden:
1. apt-get install libnet-snmp-perl libcrypt-hcesha-perl libcrypt-des-perl libdigest-hmac-perl libcrypt-rijndael-perl


Installation check_nwc_health von ConSol Labs

Installation Icinga

1. wget http://labs.consol.de/download/shinken-nagios-plugins/check_nwc_health-3.4.2.2.tar.gz
2. tar zxf check_nwc_health-3.4.2.2.tar.gz
3. cd check_nwc_health-3.4.2.2
4. ./configure; make
5. cp plugins-scripts/check_nwc_health $OMD_ROOT/usr/lib/nagios/plugins

Anlegen commands Datei für SNMP Zugriff

1. In das „conf.d“ Verzeichnis wechseln und in das jeweilige Unterverzeichnis in der ihr die „commands“ Datei ablegen wollt.

! Es empfiehlt sich zusätzlich die solche Dateien leicht erkennbar zu machen. Ein möglicher Dateiname könnte commands_network.conf oder commands_snmp.conf lauten

2. Folgende Definition für SNMP v2c und v3 (nach diesem Tutorial reicht aber auch nur v3)

Erster Test über die Shell

Um zu testen, ob ein SNMPv3 Verbindungsaufbau mit einer Abfrage über check_nwc_health funktioniert, kann man z.B. die Uptime des Cisco Switches via Shell abfragen:

./check_nwc_health –hostname xxx.xxx.xxx.xxx –protocol 3 –username snmpv3username –authpassword snmpv3passwort –authprotocol sha –privprotocol aes –privpassword snmpv3passwort–mode uptime

Entscheidend hierbei ist der Mode (–mode uptime)

Möglich wären z.B. –mode cpu-load / –mode interface-usage –name GigabitEthernet0/48 / –mode hardware-health.

Aus den Readme Dateien zu dem Plugin kann man folgendes entnehmen:

Anlegen eines Switches

! Es empfiehlt sich eine Struktur aufzubauen, wie z.B. Firma\Gerätegruppe\Gerät (z.B. conf.d\47k\network\switche)

1. Wir erstellen eine File mit dem Namen z.B. 47ksw01.conf

2. Mit folgendem Inhalt.

Hier wird für den Switch (das Objekt) 47ksw01, mit der IP 10.30.1.1, der Port Status für Port 11 abgefragt. In diesem Fall – Status, Discards, Usage und Errors. Der Switch ist zusätzlich noch in den Gruppen „Switch“ und „IDF48“. Mit der Gruppe „Switch“ können wir eine Gruppierung aller Switche machen. Die Gruppe „IDF48“ (Intermediate Distribution Frame) ist eine Gruppierung für 48 Port Switche, hat aber noch einen anderen Zweck, auf welchen ich gleich noch eingehen werde.

! Um nicht für jeden Gerät Standard Ports (z.B. Uplink) in den Objekten definieren zu müssen, kann man diese auch als Service deklarieren und für Gerätegruppen abfragen. 

! Es empfiehlt sich auch hier, wieder diese Dateien leicht erkennbar zu machen – z.B. services_network.conf

Folgender Code wäre z.B. für eine Abfrage der Uptime

In diesem Fall wird der Befehl bei allen Geräten abgefragt, welche die „vars.group == Switch“ haben.

Und so sieht der Code für die Abfrage eines Uplink Port Status aus:

Diesmal bindet er den Befehl an die Gerätegruppe „Switche“ und Gerätegruppe „IDF48“. Geräte mit „IDF24“ (24 Port Switche) sind davon dann nicht betroffen.

Mit der hier eingestellten Anleitung könnt ihr nun beliebige Ports und Modi von Cisco Switchen abfragen und euch somit eure Netzwerküberwachung zusammen stellen.

Solltet ihr noch Fragen oder Anregungen haben, hinterlasst diese bitte als Kommentar, Kontaktiert mich gerne über das Kontaktformular oder via Skype [skype-status].

This article has 2 comments

  1. Joachim Weißenberger Reply

    Bekomme eine fehlermeldung und weiß nicht wie ich das ändern könnte.

    root@icinga:/usr/lib/nagios/plugins/check_nwc-health# ./check_nwc_health.pl -hostname x.x.x.x -protocol 3 -username xxxx -authpassword xxxxx mode uptime
    ./check_nwc_health.pl: Zeile 3: use: Kommando nicht gefunden.
    ./check_nwc_health.pl: Zeile 4: Syntaxfehler beim unerwarteten Symbol »(«
    ./check_nwc_health.pl: Zeile 4: `no warnings qw(once);‘
    root@icinga:/usr/lib/nagios/plugins/check_nwc-health#

    Wo könnte der Fehler liegen. Danke für die Hilfe. Und echt tolles Tut.

    • Manuel Reply

      Hey Joachim
      Danke für das Feedback. Ich habe mir das mal fix angeguckt. Die Anleitung ist ja leider schon ein wenig älter.

      Das eigentliche Plugin ist ja „./check_nwc_health“. Bei mir kam nach dem Aufruf (in meiner Testing VM) folgender Fehler:

      Can’t locate JSON.pm in @INC (you may need to install the JSON module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl) at ./check_nwc_health line 995.
      BEGIN failed–compilation aborted at ./check_nwc_health line 995.

      Diesen konnte ich wie folgt lösen:
      sudo cpan install JSON

      Danach gab es immer weitere Meldungen und so musste ich auch folgendes installieren:

      sudo cpan File::Slurp module

      CPAN (https://www.cpan.org/) muss hierzu natürlich installiert sein. Dann klappt das Plugin auch wieder:

      ./check_nwc_health
      Usage: check_nwc_health [ -v|–verbose ] [ -t ] –mode –hostname –community …]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.