Freitag, 27. Februar 2009

nwal002 [nagios unter slugos/be]

nagios auf der nslu2

die verlockung war zu gross, doch das ergebnis war mehr als zufriedenstellend. anfängliche ängste, dass die system-ressourcen nicht ausreichend seien, nagios auf dieser plattform zu betreiben waren schnell verflogen. heute läuft diese monitoring software auf allen meinen nslu2-devices und betreibt neben system auch application-monitoring.
der reihe nach. wir holen uns die aktuellen sourcen [stable] des nagios systems von http://www.nagios.org, aktuelle version 3.0.6. zusätzlich downloaden wir die sourcen der vordefinierten system-monitore ‚nagios-plugins’, version 1.4.13. die nagios-endpoints [clients] werden mit dem aktuellen nrpe-addon versorgt, version 2.12.
all diese sourcen werden wir auf der slug selbst kompilieren [native development umgebung]. das eigentliche kompilieren verläuft recht rasch, es hat sich gezeigt, dass zudem ccache-2.4 bzw. gd-2.0.35 benötigt wird. folgend dem ubuntu quickstart legen wir zunächst auf allen nagios-endpoints und auf dem nagios-server einen eigenen user an.

# addgroup –g 20 nagios
# adduser –h /home/nagios –g nagios –s /bin/sh –G nagios nagios


zusätzlich auf dem nagios server eine nagiosec [nagios-external-command] gruppe, welchem der eigentliche nagios-user bzw. der user unter welchem unser apache server läuft [daemon], zugeordnet wird. dieser schritt wird benötigt, da die verwendung der console [apache-context] nagios-befehle [z..b. re-scheduling] absetzt und somit zugriff auf das locale filesystem haben muß [/usr/local/nagios/var/rw].

# addgroup –g 25 nagiosec
# chown –R nagios:nagiosec /usr/local/nagios/var/rw
# chmod g+s /usr/local/nagios/var/rw
editiere /etc/group, sodaß nagios user und apache user der gruppe angehören.
[nagiosec:x:25:nagios,daemon]


compile nagios server
# cd nagios-3.0.6
# ./configure –with-command-group=nagiosec
# make all
# make install
# make install-init
# make install-config
# make install-commandmode


alles recht straight, wie in der documentation beschrieben. die schnittstelle zum apache konfigurieren und einen nagios-consolen-benutzer anlegen.

nagios apache config


# /opt/bin/htpasswd –n nagiosadmin

den output in das file /usr/local/nagios/etc/htpasswd.user pasten, und apache restarten. runlevel [rc3.d] verlinken mit /etc/init.d/nagios

# ln –s /etc/init.d/nagios /etc/rc3.d/S99nagios

nagios plugin compilieren

# cd nagios-plugins-1.4.13
# configure –with-nagios-user=nagios –with-nagios-group=nagios
# make
# make install


es hat sich gezeigt, daß manche plugins unter dem root user ausgeführt werden sollten [/usr/local/nagios/libexec/check_icmp]. hier empfiehlt es sich, das entsprechende sticky bit zu setzten.

# chown u+s /usr/local/nagios/libexec/check_icmp

wir können nagios das erste mal starten und unseren browser auf die console richten [http://apache_server/nagios] mit den credentials von nagiosadmin.

# /etc/init.d/nagios start

Donnerstag, 26. Februar 2009

nwal002 [system-management]

in diesem abschnitt beschäftige ich mich mit den prerequisites für ein erfolgreiches system-management [monitoring] unter der arm-basierenden nslu2. die eigentliche open-source-software nagios, welche system-management agenden übernehmen wird, behandle ich zu einem späteren zeitpunkt.
welche schnittstellen [output] soll mein monitoring-system anbieten? einerseits spielt notification eine wichtige rolle, damit incidents bzw. störungen jedweiliger art irgendwo einmal eingeworfen werden. zum anderen soll natürlich die möglichkeit bestehen, aktiv die jeweiligen system/applikations-schichten zu beobachten. letzten endes soll ein gewisser workflow implementiert werden, die auf störungen automatisiert reagieren und diese beheben.
die ersten zwei punkte sind schnell abgehandelt, wir werden mails als notification instrument verwenden und apache2 als front-end bzw. console.

einrichtung eines mail-clients zur verständigung von störungen.
zunächst einmal installieren wir ein kleines command-line unix-utility, bekannt als ‚mail user agent’. dieses findet sich im cross-feed der slugos/be umgebung.

# /usr/bin/ipkg install mailx

weiters benötigen wir ein transfer protocol, welches die kommunikations-schicht zwischen mail-server und mail-client erst ermöglicht. den internet-standard spiegelt hier smtp [simple mail transfer protocol] wieder, mit sendmail als eingentliche träger-software. Aufgrund der komplexität der konfiguration dieser software, zudem eine limitation der architektur [32mb speicher, 266mhz processing], entscheide ich mich für die low-budget lösung – ssmtp.
# /usr/bin/ipkg install ssmtp
mit dieser simplen konfiguration [ssmtp_config.jpg].


ssmtp config

auch der webserver ist schnell installiert bzw. konfiguriert. ein binary des servers liegt bereits im optware feed und kann mittels
# ipkg install apache
auf das system gebracht werden. komplexer gestaltet sich hier die konfiguration [/opt/etc/apache/httpd.conf]. wir werden diesen abschnitt gesondert abhandeln. Wir verlinken derzeit lediglich den runlevel mit dem startskript [/opt/sbin/apachectl].
# ln –s /opt/etc/init.d/opt_apache /etc/rc3.d/S80apache