If you like this Blog - Please klick a Sponsor Ad to say Thanks

Jul 23 2008

Debian Linux HowTo: Dienste Überwachen mittels Monit

Erstellt von Dominik unter Debian

Es gibt Dienste wie Nagios oder Cacti, die es einem Admin ermöglichen von extern sämtliche Dienste und Zustände eines Servers zu überwachen.

Heute möchte ich ein Tool vorstellen, dass nicht nur überwacht, sondern aktiv in das Geschehen eingreift.

Monit bietet verschiedene Kernfunktionen an: Überwachung von Ports, von Diensten, von Prozessen. Sowie Aktives Restarten dieser Dienste nach vorgegebenen Kriterien und Benachrichtigung via E-Mail.

Wer mehr wissen will besucht am Besten die offizielle Webseite.

Ich empfehle dringend das Tool selbst zu kompilieren, da die in Debian bereit gestellte Version buggy ist.

Installation von benötigen Libs und Paketen:

apt-get install gcc make libc6-dev flex libssl-dev openssl byacc btyacc bison

Installation von Monit:

cd /usr/src
wget http://www.tildeslash.com/monit/dist/monit-4.10.1.tar.gz
tar xvfz monit-4.10.1.tar.gz
cd monit-4.10.1
./configure
make
make install
mkdir -p /var/lib/monit/monit.state

Nun fehlt nur noch eine Konfigurationsdatei um Monit zu sagen, was es tun soll.
Als Randbemerkung sei angemerkt dass die E-Mail Benachrichtigung nur funktioniert, wenn ein Mailserver plus das Paket mailx installiert ist.

Erstellen der Konfiguration:

nano /etc/monit/monitrc
# dort können alle auf der Webseiten von monit gennanten Funktionen eingetragen werden
# Als kleines Beispiel dient folgende Konfiguration:
 
## E-Mail Formatierung
set mail-format {
   from: monit@meinem-server.de
   subject: $SERVICE $EVENT at $DATE
   message: Monit $ACTION $SERVICE at $DATE on $HOST: $DESCRIPTION.
 }
 
## Einstellen der E-Mail Adresse für Alarme. Die "but not on { changed }" Section bedeutet
## dass bei einem Neustart des Dienstes (Verändertes Pid-File) keine E-Mail versendet wird
set alert alarm-postfach@meine-domain.de but not on { changed }
 
## Überwachung des MySQL Daemons
 check process mysql with pidfile /var/run/mysqld/mysqld.pid
   group mysql
   start program = "/etc/init.d/mysql start"
   stop program = "/etc/init.d/mysql stop"
   if failed host 127.0.0.1 port 3306 protocol mysql then restart
   if 5 restarts within 5 cycles then timeout

Anschließend kann Monit gestartet werden (Hier wird alle 180Sekunden geprüft):

/usr/local/bin/monit -d 180 -c /etc/monit/monitrc -s /var/lib/monit/monit.state

Wer möchte kann dies natürlich auch in einem init-Script erledigen.

Dies ist natürlich nur eine minimal Überwachung, es finden sich jedoch unter http://www.tildeslash.com/monit/doc/examples.php sehr gute Beispiele, die es einem ermöglichen nahezu alles zu überwachen.

Keine Kommentare bisher

Jul 21 2008

Debian Linux: libmysqlclient_15 not defined in file libmysqlclient.so.15

Erstellt von Dominik unter Debian

Szenario:
Es wird ein Webserver mit jeweils neustem Apache, MySQL und PHP benötigt. Distribution Debian Etch. Zyniker sagen: “Falsche Distribution gewählt”. Dem ist nichts hinzuzufügen.

mysql-5.0.51a-linux-i686-icc-glibc23.tar.gz ist installiert nach /usr/local/mysql. MySQL läuft.

Nun wurde PHP gegen die Files unter /usr/local/mysql/include kompiliert. Die configure Zeilen sahen so aus:

'--with-mysql=/usr/local/mysql' \
'--with-pdo_mysql=/usr/local/mysql' \

Nachdem ich fertig war spuckte sowohl der Apache als auch “make test” Fehler aus:

Beim Starten von Apache:

Syntax error on line 417 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: symbol floor, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference

Bei “make test”:

/usr/src/php-5.2.6/sapi/cli/php: relocation error: /usr/src/php-5.2.6/sapi/cli/php: symbol isinf, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference

Als Workaround habe ich libmysqlclient15-dev installiert und gegen die Debian Libs kompiliert:

'--with-mysql=/usr' \
'--with-pdo_mysql=/usr' \

Resultat: Keine Fehler mehr

Wer weiß woher der Fehler kommt, darf sich gerne melden. Auf jedenfall war das eine Version früher (sowohl MySQL als auch PHP) nicht der Fall.

Keine Kommentare bisher

Jul 21 2008

Debian Linux: Zeitzone und Uhr umstellen Deutschland/Germany

Erstellt von Dominik unter Linux

Um die Uhrzeit in Debian Linux einzustellen und per Cronjob zu aktualisieren sind unter Umständen in einem frischen System drei Schritte nötig.

1. Anpassen der Zeitzone

echo "Europe/Berlin" > /etc/timezone
dpkg-reconfigure tzdata

Dies konfiguriert als Zeitzone die Deutsche Zeit. Um nun noch automatisch eine aktuelle Uhrzeit einzustellen, benutzt man das Network Time Protocol (NTP).

2. Synchronisieren der lokalen Uhrzeit mit NTP Servern von Unis

apt-get install ntpdate
/usr/sbin/ntpdate 134.169.10.20 134.169.9.108 134.169.1.138

Crontabs eintragen:

crontab -e
# Dort folgende beiden Zeilen nachtragen
# Uhrzeit bei Reboot stellen
@reboot /usr/sbin/ntpdate 134.169.10.20 134.169.9.108 134.169.1.138
# Uhrzeit jeden Tag um 0 Uhr stellen
0 0 * * * /usr/sbin/ntpdate 134.169.10.20 134.169.9.108 134.169.1.138

3. Abgleichen der Hardwareuhr mit der aktuellen Systemzeit

/sbin/hwclock --systohc

Mehr gibt es eigentlich zum Thema Uhrzeit unter Linux nicht zu sagen ;)

Keine Kommentare bisher

Zurück »