Mittels des icinga/nagios check-plugins: check_aacraid.py lässt sich der Zustand eines Adaptec RAID Controllers, wie beispielsweise den Adaptec RAID 5405 in einem ESX-Server überwachen.
Zuvor muss man jedoch mit:
sudo /usr/RemoteArcconf/arcconf SETVMCREDENTIAL [esx-host] [esx-port] [esx-user] [esx-password] |
die credentials setzten.
Dieses Kommando speichert ein file: VMCIMOMConfig.txt entweder im Programmverzeichnis (wenn das Kommando als root ausgeführt wird), oder im aktuellen Verzeichnis (wenn das Kommando als user ausgeführt wird).
So kann man als icinga user das Kommando: /usr/local/lib/icinga/plugins/check_aacraid.py aufrufen, doch die Ausführung des plugins durch den icinga Prozess schlägt mit der Meldung: UNKNOWN:
"No output from arcconf!"
fehl.
Dies liegt daran, dass das Programm arcconf
die Datei VMCIMOMConfig.txt Standardmässig nur in zwei Verzeichnissen sucht: Dem aktuellen Verzeichnis und dem Verzeichnis: $ARCCONF_PATH/VMCIMOMConfig.txt.
Wenn der Check vom icinga Prozess aufgerufen wird, ist das „aktuelle Verzeichnis“ auf : „/“ gesetzt und sudo entfernt die Umgebungsvariablen des Users.
Nun könnte man natürlich die Datei VMCIMOMConfig.txt einfach nach / kopieren (oder besser symlinken), doch weitaus eleganter wäre es jedoch die Umgebungsvariable $ARCCONF_PATH
zu setzen.
Dazu sind folgende Schritte notwendig:
Zuerst (als user root) Sicherstellen, dass die Datei /usr/RemoteArcconf/VMCIMOMConfig.txt existiert:
test -f /usr/RemoteArcconf/VMCIMOMConfig.txth >> /usr/RemoteArcconf/arcconf SETVMCREDENTIAL [esx-host] [esx-port] [esx-user] [esx-password] |
(Die Argumente: esx-host, esx-port, esx-user und esx-password müssen natürlich angepasst werden)
Nun dem icinga User die Umgebungsvariable setzen:
ICINGA_USER="icinga"; echo "export ARCCONF_PATH=/usr/RemoteArcconf/" >> $(grep $ICINGA_USER /etc/passwd | cut -d: -f6)/.bash_profile |
(icinga ist hier der user mit dem icinga läuft)
Das sudoers file anlegen und dabei mittels der Option env_keep
die Umgebungsvariable: ARCCONF_PATH
behalten:
visudo -f /etc/sudoers.d/icinga |
### Nagios/NRPE additions Defaults:icinga !requiretty # required for MONITORING_ADMIN, so the root pw instead of the user pw must be entered Defaults:icinga rootpw # Required for running arcconf from sudo (without having teh credentials file in: / Defaults:icinga env_keep=ARCCONF_PATH ### Command Alias # Normal monitoring commands Cmnd_Alias MONITORING = /usr/RemoteArcconf/arcconf GETCONFIG 1 * # Admin monitoring commands Cmnd_Alias MONITORING_ADMIN = /usr/RemoteArcconf/arcconf SETVMCREDENTIAL * # Permissions icinga ALL=(ALL) NOPASSWD: MONITORING icinga ALL=(ALL) MONITORING_ADMIN |
Und zu letzt icinga neustarten:
/etc/init.d/icinga restart |
Nun funktioniert das arcconf
Kommando sowohl auf der Shell wie auch durch den icinga Prozess und man braucht das VMCIMOMConfig.txt file nur noch an einer Zentralen Stelle in /usr/RemoteArcconf/ (falls das file noch irgendwo anders herumliegt, beispielsweise in / oder /home/icinga/ sollte es entfernt werden).
[stextbox id=“note“ caption=“Ab ESX 6.5 symlink nach jeden Neustart setzen“]
Ab ESX 6.5 muss nach jedem ESX Neustart ein symlink von: /dev/aac0 auf /dev/aac gesetzt werden, wie in Adaptec RAID 5405 in ESX 6.5 Überwachen beschrieben:
ln -s /dev/aac /dev/aac0 |
[/stextbox]