Wer Server betreibt möchte in der Regel seine Ruhe haben (ausgenommen Windows Administratoren, die haben immer was zu tun). Damit das so ist, gilt es an einen Punkt zu kommen, an dem ein "Status Quo" erreicht ist. Diesen Status gilt es dann zu halten.
Nun kann man zu Fortuna beten oder sich ein Monitoring einrichten. Dienste und Co lassen sich in der Regel ziemlich einfach beobachten und dementsprechend prüfen. Bei der Hardware sieht es zumeist anders aus. Wer nun denkt das man aufwendige Agenten installieren muss und sonst welche Bemühungen zu betreiben hat, damit man an die Daten kommt liegt einfach falsch. Natürlich kann man mit einem Agenten eine ganze Menge machen. Wenn man das aber nicht will oder gar die gewünschte Funktion nicht gegeben ist, dann braucht man die Möglichkeit den ohnehin vorhandenen SNMP-Server um die gewünschten Werte zu erweitern.
In meinem Fall wollte ich wissen wie es den eingebauten Festplatten geht. Zunächst reicht mir erst einmal der HEALTH-Status des S.M.A.R.T. Will man mehr ist das aber auch kein großes Problem.
Wenn man seinen RAID-Controller ordentlich installiert hat, so kann man sich beliebige Ausgaben zusammenbauen. Zunächst einmal muss aber herausgefunden werden, was da so geht.
Ich wollte erst einmal wissen welche Festplatten an dem Controller hängen.
smartctl --scan /dev/sda -d scsi # /dev/sda, SCSI device /dev/bus/0 -d megaraid,8 # /dev/bus/0 [megaraid_disk_08], SCSI device /dev/bus/0 -d megaraid,9 # /dev/bus/0 [megaraid_disk_09], SCSI device /dev/bus/0 -d megaraid,10 # /dev/bus/0 [megaraid_disk_10], SCSI device /dev/bus/0 -d megaraid,11 # /dev/bus/0 [megaraid_disk_11], SCSI device /dev/bus/0 -d megaraid,14 # /dev/bus/0 [megaraid_disk_14], SCSI device /dev/bus/0 -d megaraid,15 # /dev/bus/0 [megaraid_disk_15], SCSI device
Mit diesen Informationen schaue ich nun, wie es der jeweiligen festplatte geht:
smartctl -H /dev/sda -d megaraid,8 | grep -i health SMART overall-health self-assessment test result: PASSED
Damit kann ich nun schon beginnen mein Monitoring aufzubauen. Dazu gebe ich in die /etc/snmp/snmpd.conf folgende Inhalte hinzu:
exec smart-sda1a /bin/sh -c "/usr/sbin/smartctl -H /dev/sda -d megaraid,8 | grep -i health
Nun gehe ich weiter zu meinem Icinga und erstelle zunächst einen Checkcommand:
define command { command_name snmpsmarthealth command_line /usr/lib/nagios/plugins/check_snmp -H $HOSTADDRESS$ -C public -o $ARG1$ -r $ARG2$ }
In der jeweiligen Host-Konfiguration erstelle ich nun einen Service, welcher mir abbildet, was ich zu prüfen gedenke
define service { use snmp-service host_name SERVERNAME service_description HDD 1 Health check_command snmpsmarthealth!iso.3.6.1.4.1.2021.8.1.101.2!PASSED! }
snmpsmarthealth | Aufruf meines Checkcommands |
! | Trennzeichen |
iso.3.6.1.4.1.2021.8.1.101.2 | Jeweiliges Unterverzeichnis des SNMP Baums |
PASSED | Zu suchender Begriff |
Das Ganze wiederhole ich nun für sämtliche lokal ausgeführten Kommandos des zu überwachenden Servers.
wie komme ich denn nun zu den komischen SNMP-Tailbäumen mit den merkwürdigen Zahlen? Im Zweifelsfall starte ich dazu einen Suchlauf mittels snmpwalk
snmpwalk -c public -v 2c SERVERNAME | grep -i BEGRIFF DEN ICH ERWARTE
Nun kann ich alles Monitoren, was ich will oder benötige. Ohne Agenten, ohne viele Plugins. Das Leben ist so einfach!
Seiten die mir geholfen haben:
http://www.bitbull.ch/wiki/index.php/Simple_way_to_read_SMART_status_from_harddisk_via_SNMP