Adaptec RAID Monitoring Plugin
Das Adaptec RAID Monitoring Plugin ermöglicht die Überwachung von RAID-Sets eines Adaptec RAID Controllers. Das Plugin ist in der Script-Sprache Perl verfasst und verwendet für die Interaktion mit dem RAID Controller das Kommandozeilen-Werkzeug arcconf.
Dieser Artikel zeigt die Konfiguration unter Linux. Informationen zur Einrichtung unter Windows finden Sie im Artikel Adaptec RAID Monitoring Plugin unter Windows Server 2012 einrichten.
Aktuelle Version
Die aktuelle Version des check_adaptec_raid Plugins finden Sie auf GitHub:
Funktionen
In der README des Plugins finden Sie eine detaillierte Auflistung, welche Komponenten überwacht werden:
- Version 2.1 Plugin README (github.com)
GitHub Support
Fragen werden aktuell auf GitHub beantwortet:
Vorraussetzungen
Die Installation der Voraussetzungen wird im kommenden Abschnitt näher erläutert:
- Am überwachten Server
- Am Icinga-Server
- Kommando-Definition
- Service-Defintion
- Wenn Call-Home-Service verwendet wird
- Vorhandene Templates (Call-Home-Service mit Icinga oder Nagios nutzen)
Installation
Manuell
Bei der manuellen Installation wird die Plugin-Datei in das Verzeichnis /usr/lib/nagios/plugins
kopiert.
:~$ git clone https://github.com/thomas-krenn/check_adaptec_raid.git Cloning into 'check_adaptec_raid'... :~$ cd check_adaptec_raid/ :~/check_adaptec_raid$ ls arcconf_output check_adaptec_raid check_adaptec_raid.POD README testing.patch :~/check_adaptec_raid$ sudo cp check_adaptec_raid /usr/lib/nagios/plugins/
Das Adaptec ARCCONF Command Line Utility kann für das jeweilige Produkt manuell von der Adaptec-Webseite herunter geladen werden: http://www.adaptec.com/en-us/downloads/
TK Ubuntu-Repository
Nach dem Einbinden des Thomas Krenn Repos (siehe dazu Thomas Krenn Ubuntu-Repo verwenden) befindet sich das check_adaptec_plugin im Paket nagios-plugins-thomas-krenn:
:~$ sudo apt-get install nagios-plugins-thomas-krenn [...] Suggested packages: arcconf The following NEW packages will be installed: nagios-plugins-thomas-krenn 0 upgraded, 1 newly installed, 0 to remove and 68 not upgraded. Need to get 0 B/14.9 kB of archives. After this operation, 82.9 kB of additional disk space will be used. Selecting previously unselected package nagios-plugins-thomas-krenn. (Reading database ... 70154 files and directories currently installed.) Unpacking nagios-plugins-thomas-krenn (from .../nagios-plugins-thomas-krenn_0.1-1_all.deb) ... Setting up nagios-plugins-thomas-krenn (0.1-1) ...
Das vorgeschlagene Paket arcconf
und libfile-which-perl
müssen auch installiert werden:
:~$ sudo apt-get install arcconf libfile-which-perl [...] The following NEW packages will be installed: arcconf libstdc++5 libfile-which-perl [...]
Konfiguration
Das Plugin eignet sich für die Überwachung eines Remote-Servers über NRPE, als auch für einen lokalen Host. Jeweils muss am zu überwachenden System das check_adaptec_raid Plugin installiert werden.
Über NRPE
Am Icinga Server
Beim Anlegen der Host-Definition wird das Kommando definiert, das via NRPE ausgeführt wird. Die Parameter selbst werden am zu überwachenden Host angegeben.
define service { service_description adaptec-raid-nrpe display_name Adaptec RAID use generic-service host_name test check_command check_nrpe_1arg!check_adaptec_raid }
Achtung: Soll der Call-Home-Service für den Service verwendet werden, müssen die Templates anhand dem Artikel Call-Home-Service mit Icinga oder Nagios nutzen angelegt werden. Daraufhin muss anstatt use generic-service
beim Service use thomas-krenn-service
eingetragen werden!
Am Icinga 2 Server
Die Konfiguration des Adaptec RAID Plugins über NRPE erfolgt an einem Icinga 2 Host wie nachfolgend aufgeführt.
Kommando Definition Legen Sie z.B. im Unterverzeichnis commands des Icinga 2 Konfigurationsverzeichnisses, bei Ubuntu /etc/icinga2/conf.d, eine neue Datei mit der Bezeichnung adaptec-nrpe.conf mit nachfolgendem Inhalt an.
object CheckCommand "nrpe-adaptec" { import "plugin-check-command" command = [PluginContribDir + "/check_nrpe" ] arguments = { "-H" = "$address$" "-c" = "$nrpe_adaptec$" } }
Apply Service Regel Definition
Es wird nun eine sogenannte Apply Rule im Icinga 2 Konfigurationsverzeichnis angelegt, damit wird bei einem Host mit entsprechend gesetztem Parameter dieser Servicecheck automatisch angefügt. Erstellen Sie dazu unterhalb des Icinga 2 Konfigurationsverzeichnisses den Ordner services und legen dort eine neue Datei mit der Bezeichnung "adaptec-raid.conf" an.
Diese neue Konfigurationsdatei enthält folgendes Kommando:
apply Service "check-nrpe-adaptec" { import "generic-service" check_command = "nrpe-adaptec" assign where host.vars.nrpe_adaptec }
Der Ausdruck assign where host.vars.nrpe_adaptec bedeutet, wenn ein überwachter Host einen Parameter vars.nrpe_adaptec mit NRPE-Parameter enthält, wird automatisch der Servicecheck "check-nrpe-adaptec" über NRPE auf dem Server ausgeführt.
Host Definition Ergänzen Sie in der Host-Konfiguration die Zeile vars.nrpe_adaptec.
object Host "Testserver" { import "generic-host" address = "<IP-Adresse>" vars.nrpe_adaptec = "check_adaptec_raid" }
Über TKmon
Das Adaptec-Raid-Plugin ist bereits im Service-Katalog von TKmon integriert. Es genügt beim Anlegen eines neuen Services den Check "Adaptec RAID via NRPE" auszuwählen:
Am überwachten Server
Damit der Benutzer "nagios" das Kommandozeilenwerkzeug arcconf mit sudo ohne Eingabe eines Passworts ausführen kann, muss folgende sudoers-Konfiguration definiert werden.
Hinweis: Unter CentOS läuft der NRPE Daemon unter dem Benutzer nrpe! Anstatt nagios muss bei CentOS daher nrpe in der sudo-Konfiguration eingetragen werden.
:~$ sudo vi /etc/sudoers.d/check_adaptec_raid nagios ALL=(root)NOPASSWD:/sbin/arcconf :~$ sudo chmod 440 /etc/sudoers.d/check_adaptec_raid
Der folgende Test darf keine Passwort-Eingabe verlangen:
:~$ sudo su nagios --shell /bin/bash :~$ sudo /sbin/arcconf --version | UCLI | Adaptec by PMC uniform command line interface | UCLI | Version 7.0 (B18781) | UCLI | (C) Adaptec by PMC 2003-2011 | UCLI | All Rights Reserved [...]
Eine NRPE-Konfigurations-Datei spezifiziert, welcher Check ausgeführt wird, wenn das Kommando "check_adaptec_raid" aufgerufen wird. Dieses Kommando muss mit dem Parameter auf Icinga-Server-Seite in der Host-Definition übereinstimmen.
Hinweis: Unter CentOS kann es hilfreich sein, dem Plugin den Interpreter explizit anzugeben, also z.B. perl /usr/lib/nagios/plugins/check_adaptec_raid -C 1 -p /sbin/arcconf
.
:~$ sudo vi /etc/nagios/nrpe.d/raid.cfg command[check_adaptec_raid]=/usr/lib/nagios/plugins/check_adaptec_raid -C 1 -p /sbin/arcconf
:~$ sudo service nagios-nrpe-server restart
Auf Seiten des Icinga-Servers kann getestet werden, ob der Check funktioniert.
:~$ /usr/lib/nagios/plugins/check_nrpe -H 10.0.0.2 -c check_adaptec_raid AACRAID OK (Ctrl #1)
Lokal
Eine lokale Konfiguration ist dann sinnvoll, wenn der Icinga- bzw. Icinga 2-Server selbst einen Adaptec-RAID-Controller verbaut hat und daher überwacht werden soll. Voraussetzungen für eine lokale Installation sind die oben beschriebenen Schritte zur Installation des Plugins, von arcconf sowie die sudo-Konfiguration für den nagios User.
Icinga
Eine lokale Konfiguration des Adaptec RAID Monitoring Plugins unter Icinga erfolgt wie nachfolgend dargestellt.
Im ersten Schritt wird eine Icinga Kommando-Definition erstellt:
:~$ sudo vi /etc/nagios-plugins/config/check_adaptec_raid.cfg define command { command_name check_adaptec_raid command_line /usr/lib/nagios/plugins/check_adaptec_raid -C '$ARG1$' -p '$ARG2$' }
Eine Service-Definition kann dann dieses Kommando benutzen:
define service{ use generic-service host_name tkmon service_description adaptec-raid check_command check_adaptec_raid!1!/sbin/arcconf }
Icinga 2
Eine lokale Konfiguration unter Icinga 2 gelingt wie nachfolgend dargestellt.
Kommando Definition Legen Sie z.B. im Unterverzeichnis commands des Icinga 2 Konfigurationsverzeichnisses, bei Ubuntu /etc/icinga2/conf.d, eine neue Datei mit der Bezeichnung adaptec-raid.conf mit nachfolgendem Inhalt an.
object CheckCommand "adaptec-raid" { import "plugin-check-command" command = [ PluginDir + "/check_adaptec_raid" ] arguments = { "-C" = { required = true value = "$adaptec_controller_number$" description = "The controller number to be checked." } "-p" = "/sbin/arcconf" } }
Apply Service Regel Definition
Es wird nun eine sogenannte Apply Rule im Icinga 2 Konfigurationsverzeichnis angelegt, damit wird bei einem Host mit entsprechend gesetztem Parameter dieser Servicecheck automatisch angefügt. Erstellen Sie dazu unterhalb des Icinga 2 Konfigurationsverzeichnisses den Ordner services und legen dort eine neue Datei mit der Bezeichnung "adaptec-raid.conf" an.
Diese neue Konfigurationsdatei enthält folgendes Kommando:
apply Service "check-adaptec-raid" { import "generic-service" check_command = "adaptec-raid" assign where host.vars.adaptec_controller_number }
Der Ausdruck assign where host.vars.adaptec_controller_number bedeutet, wenn ein überwachter Host einen Parameter vars.adaptec_controller_number mit einer gültigen Adaptec Controller ID enthält, wird automatisch der Servicecheck "check-adaptec-raid" lokal auf dem Server ausgeführt.
Host Definition Ergänzen Sie in der Host-Konfigurationsdatei hosts.conf des lokalen Icinga 2 Servers die Zeile vars.adaptec_controller_number.
object Host NodeName { [...] vars.adaptec_controller_number = "Adaptec Controller ID" }
Beispiel-Ausgabe des Plugins
$ sudo ./check_adaptec_raid -vvv OK (CTR, LD, PD, ZMM)|CTR_Temperature=57;80;90 ZMM_Health=100 ZMM_Temperature=27;60;75 ZMM_Voltage_Present=4938 Used arcconf commands: - /sbin/arcconf GETCONFIG 1 AD - /sbin/arcconf GETCONFIG 1 AD - /sbin/arcconf GETCONFIG 1 LD - /sbin/arcconf GETCONFIG 1 PD CTR information: - Adaptec ASR8405: - Serial No=4B361387273 - Driver=1.2-0 (30300) - Boot Flash=7.5-0 (32033) - BIOS Version=7.5-0 (32033) - FW Version=7.5-0 (32033) - Temperature=57 C/ 134 F (Normal) - Defunct drives=0 - LD devices/Failed/Degraded=2/0/0 LD information: - ld0: - Block Size of member drives=512 Bytes - Bootable=Yes - Failed stripes=No - Logical device name=Ubuntu - Parity space=0 MB - Partitioned=Yes - Power settings=Disabled - Protected by Hot-Spare=No - RAID level=Simple_volume - Read-cache setting=Disabled - Read-cache status=Off - Size=76190 MB - Status of logical device=Optimal - Unique Identifier=67E114A8 - Write-cache setting=Disabled - Write-cache status=Off - ld=ld0 - ld1: - Block Size of member drives=512 Bytes - Bootable=No - Failed stripes=No - Logical device name=RAID1 - Parity space=76200 MB - Partitioned=Yes - Power settings=Disabled - Protected by Hot-Spare=No - RAID level=1 - Read-cache setting=Disabled - Read-cache status=Off - Size=76190 MB - Status of logical device=Optimal - Unique Identifier=74A924A8 - Write-cache setting=Disabled - Write-cache status=Off - ld=ld1 PD information: - pd0: - Block Size=512 Bytes - FRU=None - Firmware=D2010370 - Model=INTEL SSDSC2BB08 - NCQ status=Enabled - Power State=Full rpm - Reported Channel,Device(T:L)=0,4(4:0) - Reported ESD(T:L)=2,0(0:0) - Reported Location=Enclosure 0, Slot 0 - Reserved Size=121880 KB - S.M.A.R.T.=No - S.M.A.R.T. warnings=0 - SSD=Yes - Serial number=CVWL411400W1080KGN - State=Online - Supported=Yes - Supported Power States=Full power,Powered off - Total Size=76319 MB - Transfer Speed=SATA 6.0 Gb/s - Unused Size=64 KB - Used Size=76200 MB - Vendor=ATA - Write Cache=Disabled (write-through) - pd=pd0 - pd1: - Block Size=512 Bytes - FRU=None - Firmware=D2010355 - Model=INTEL SSDSC2BB08 - NCQ status=Enabled - Power State=Full rpm - Reported Channel,Device(T:L)=0,5(5:0) - Reported ESD(T:L)=2,0(0:0) - Reported Location=Enclosure 0, Slot 1 - Reserved Size=121880 KB - S.M.A.R.T.=No - S.M.A.R.T. warnings=0 - SSD=Yes - Serial number=BTWL326403PS080KGN - State=Online - Supported=Yes - Supported Power States=Full power,Powered off - Total Size=76319 MB - Transfer Speed=SATA 6.0 Gb/s - Unused Size=64 KB - Used Size=76200 MB - Vendor=ATA - World-wide name=50015178F365A7FB - Write Cache=Disabled (write-through) - pd=pd1 - pd2: - Block Size=512 Bytes - FRU=None - Firmware=D2010355 - Model=INTEL SSDSC2BB08 - NCQ status=Enabled - Power State=Full rpm - Reported Channel,Device(T:L)=0,6(6:0) - Reported ESD(T:L)=2,0(0:0) - Reported Location=Enclosure 0, Slot 2 - Reserved Size=121880 KB - S.M.A.R.T.=No - S.M.A.R.T. warnings=0 - SSD=Yes - Serial number=BTWL326004NP080KGN - State=Online - Supported=Yes - Supported Power States=Full power,Powered off - Total Size=76319 MB - Transfer Speed=SATA 6.0 Gb/s - Unused Size=64 KB - Used Size=76200 MB - Vendor=ATA - World-wide name=50015178F365454E - Write Cache=Disabled (write-through) - pd=pd2 ZMM information: - ZMM_Charge_Level=100 - ZMM_Health=100 - ZMM_Status=OK - ZMM_Temperature=27 - ZMM_Voltage_Present=4938
Autor: Georg Schönberger Georg Schönberger, Abteilung DevOps bei der XORTEX eBusiness GmbH, absolvierte an der FH OÖ am Campus Hagenberg sein Studium zum Bachelor Computer- und Mediensicherheit, Studium Master Sichere Informationssysteme. Seit 2015 ist Georg bei XORTEX beschäftigt und arbeitet sehr lösungsorientiert und hat keine Angst vor schwierigen Aufgaben. Zu seinen Hobbys zählt neben Linux auch Tennis, Klettern und Reisen.
|