Installing Icinga 1.0 with IDOUtils and NConf

Geschrieben von andy • Dienstag, 15. Dezember 2009

Today the icinga team released the first stable version of their open source monitoring tool - Icinga 1.0.
The team behind icinga formed up earlier this year and forked nagios due to several reasons.
In this small howto i'd like to describe the installation of Icinga in cooperation with IDOUtils and NConf for easier configuration of multiple hosts and services on a fresh debian system:


  1. Install some prequisites:
    apt-get install apache2 build-essential libgd2-xpm-dev libjpeg62 libjpeg62-dev libpng12 libpng12-dev mysql-server mysql-client libdbi0 libdbi0-dev libdbd-mysql libdbi-perl libdbd-mysql-perl


  2. As root, add an user and group for icinga:
    /usr/sbin/useradd -m icinga && /usr/sbin/groupadd icinga


  3. Download icinga-core 1.0 (not icinga-web) from the icinga download site

  4. Unpack the downloaded archive, for example in a new directory called /usr/local/icinga with the command
    tar xzfv icinga-1.0.tar.gz


  5. Enter the new directory and configure icinga with
    ./configure --enable-idoutils


  6. General options should look like this:
    General Options:
    -------------------------
    Icinga executable: icinga
    Icinga user/group: icinga,icinga
    Command user/group: icinga,icinga
    Embedded Perl: no
    Event Broker: yes
    Build IDOUtils: yes
    Install ${prefix}: /usr/local/icinga
    Lock file: ${prefix}/var/icinga.lock
    Check result directory: ${prefix}/var/spool/checkresults
    Init directory: /etc/init.d
    Apache conf.d directory: /etc/apache2/conf.d
    Mail program: /usr/bin/mail
    Host OS: linux-gnu


  7. Compile the icinga source code with
    make all


  8. If everything went fine, just install icinga completely with
    make fullinstall


  9. Time for some customization:
    comment out all cfg_file options from line 30 to line 36 of icinga.cfg, they´ll be provided by NConf later:
    # You can specify individual object config files as shown below:

    #cfg_file=/usr/local/icinga/etc/objects/commands.cfg
    #cfg_file=/usr/local/icinga/etc/objects/contacts.cfg
    #cfg_file=/usr/local/icinga/etc/objects/timeperiods.cfg
    #cfg_file=/usr/local/icinga/etc/objects/templates.cfg

    # Definitions for monitoring the local (Linux) host
    #cfg_file=/usr/local/icinga/etc/objects/localhost.cfg

    # Definitions for monitoring a Windows machine
    #cfg_file=/usr/local/icinga/etc/objects/windows.cfg

    # Definitions for monitoring a router/switch
    #cfg_file=/usr/local/icinga/etc/objects/switch.cfg

    # Definitions for monitoring a network printer
    #cfg_file=/usr/local/icinga/etc/objects/printer.cfg


  10. Add two new cfg_dir options for NConf:
    cfg_dir=/usr/local/icinga/etc/objects/global
    cfg_dir=/usr/local/icinga/etc/objects/Default_collector/


  11. uncomment broker_module in line 251:
    broker_module=/usr/local/icinga/bin/idomod.o config_file=/usr/local/icinga/etc/idomod.cfg


  12. In /usr/local/icinga/etc directrory, create IDOUtils sampe configuration:
    cp idomod.cfg-sample idomod.cfg
    cp ido2db.cfg-sample ido2db.cfg


  13. Generate MySQL Database and User for icinga
    # mysql -u root -p
    mysql> CREATE DATABASE icinga;
    GRANT USAGE ON *.* TO 'icinga'@'localhost' IDENTIFIED BY 'MYSUPERHEROPASSWORD' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;

    GRANT ALL PRIVILEGES ON icinga.* TO 'icinga'@'localhost';FLUSH PRIVILEGES ;
    quit


  14. Import corresponding database scheme for MySQL:
    # cd /path/to/icinga-src/module/idoutils/db
    # mysql -u root -p icinga < mysql.sql


  15. Customize database credentials in /usr/local/icinga/etc/ido2db.cfg
    and take care of the following options:
    db_servertype=mysql
    db_port=3306
    db_user=icinga
    db_pass=MYSUPERHEROPASSWORD


  16. Change .htaccess password for the icingaadmin: htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin

  17. Copy sample configuration for apache:
    cp /usr/local/icinga/icinga-1.0/sample-config/httpd.conf /etc/apache2/conf.d/icinga.conf


  18. Download latest NConf release from the NConf download page

  19. Unpack the archive in one of your web directories, e.g. in /var/www/nconf
    tar xzfv nconf-1.2.6-0.tgz


  20. Make the new directory read/writeable to your webserver:
    chown -R www-data:www-data nconf/


  21. Create new file nconf.conf in /etc/apache2/conf.d:

    #nconf.conf
    Alias /nconf "/var/www/virtual/nconf"

    # SSLRequireSSL
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
    # Order deny,allow
    # Deny from all
    # Allow from 127.0.0.1
    AuthName "Icinga Access"
    AuthType Basic
    AuthUserFile /usr/local/icinga/etc/htpasswd.users
    Require valid-user


  22. Reload apache

  23. /etc/init.d/apache2 reload

  24. Create database and user for NConf:
    # mysql -u root -p
    mysql> CREATE DATABASE nconf;
    GRANT USAGE ON *.* TO 'nconf'@'localhost' IDENTIFIED BY 'MYSUPERHEROPASSWORD' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
    GRANT ALL PRIVILEGES ON nconf.* TO 'nconf'@'localhost';
    FLUSH PRIVILEGES ;
    quit


  25. Complete installation via NConf Web Gui, for example on

  26. Put /usr/local/icinga/bin/icinga as NAGIOS_BIN

  27. Configure your hosts and services in the NConf WebGui

  28. make sure to delete the host and service notification state "[n]" editing your contacts, otherwise you won't get any notification.

  29. Edit the notify-host-by-email/notify-sercice-by-email command in misccommands section in order to point to the corresponding binary for the mail command, in my case /usr/bin/mail

  30. After finishing host and services configuration, hit the Generate Nagios config Button.

  31. Your nagios configuration is now saved in the /output directory of your NConf installation.

  32. customize NConf deploy script in /var/www/virtualnconf/ADD-ONS/deploy_local.sh, for example:
    #!/bin/bash

    OUTPUT_DIR="/var/www/virtual/nconf/output/"
    NAGIOS_DIR="/usr/local/icinga/etc/objects/"
    TEMP_DIR=${NAGIOS_DIR}"import/"
    CONF_ARCHIVE="NagiosConfig.tgz"

    if [ ! -e ${TEMP_DIR} ] ; then
    mkdir -p ${TEMP_DIR}
    fi

    if [ ${OUTPUT_DIR}${CONF_ARCHIVE} -nt ${TEMP_DIR}${CONF_ARCHIVE} ] ; then
    cp -p ${OUTPUT_DIR}${CONF_ARCHIVE} ${TEMP_DIR}${CONF_ARCHIVE}
    tar -xf ${TEMP_DIR}${CONF_ARCHIVE} -C ${NAGIOS_DIR}
    /etc/init.d/icinga reload
    fi

    exit


  33. Configure cronjob to refresh your configuration regulary, if you want to
    */10 /var/www/virtual/nconf/ADD-ONS/deploy_local.sh


  34. Start IDOUtils:
    /etc/init.d/ido2db start


  35. Start Icinga:
    /etc/init.d/icinga start


  36. Check icinga.log logfile in /usr/local/icinga/var

  37. Be Happy!



    1. For more information on Icinga and IDOUtils check out the documentation.
      More information on NConf is available in the NConf documentation.

Tags für diesen Artikel: , , , ,
| Top Exits (1227)
904 Klicks
Twitter Bookmark Installing Icinga 1.0 with IDOUtils and NConf  at del.icio.us Facebook Google Bookmarks FriendFeed Digg Installing Icinga 1.0 with IDOUtils and NConf Technorati Installing Icinga 1.0 with IDOUtils and NConf wong it!

Freier Monitoring Service von pingdom

Geschrieben von andy • Donnerstag, 2. Juli 2009 • Kategorie: combjuta

Seit gestern bietet der schwedische IT Dienstleister Pingdom seinen Monitoringdienst in eingeschränktem Umfang kostenlos an.

Dabei kann man beispielsweise seine Website mit einem einfachen (oder custom) HTTP Check überwachen, Netzwerk Checks über UDP, TCP oder einfachen Ping einrichten oder auch Dienste wie POP3, IMAP und SMTP prüfen lassen. In der kostenlosen Version kann man jedoch nur einen Host/IP überwachen. Allerdings kann man Meldungen dann an mehrere Kontakte verschicken, die wahlweise per EMail und/oder SMS über den Status benachrichtigt werden (20 SMS pro Monat sind inklusive).
Der Clou an der Sache ist, dass Pingdom Monitoring Hubs an verschiedenen Standorten auf der ganzen Welt betreibt, und so werden die Dienste beispielsweise aus Montreal (Kanada), London (UK), Dallas (Texas), Stockholm und Amsterdam überwacht!
Die Statistiken und Reports sind schön aufbereitet und es gibt sogar eine IPhone App!

Links:
Pingdom Homepage

Tags für diesen Artikel: , ,
| Top Exits (274)
208 Klicks
Twitter Bookmark Freier Monitoring Service von pingdom  at del.icio.us Facebook Google Bookmarks FriendFeed Digg Freier Monitoring Service von pingdom Technorati Freier Monitoring Service von pingdom wong it!

Google gewährt Einblick in Container Rechenzentrum

Geschrieben von andy • Sonntag, 5. April 2009 • Kategorie: combjuta

Auf dem Google Data Center Efficiency Summit in Mountain View hat Google erstmals offiziell bestätigt, dass ihr RZ Design auf RZ Containern basiert. Ein Google Mitarbeiter (Jimmy Clidaras) erklärte mit Hilfe einer Präsentation die Besonderheiten und Möglichkeiten dieser seit 2005 im Einsatz befindlichen Architektur. Jeder der bis zu 12 Meter langen Container enthält dabei bis zu 1160 Server und verbraucht bis zu 250KW Strom. Der gezeigte Container Hangar enthält 45 Container, zum Teil sogar auf einem 2. Stock!
Über die Präsentation gibt es ein über 5 minütiges Video auf youtube, weitere Videos der Konferenz sollen noch folgen:



Auch schon offiziell ist die Bauweise der Google Webserver, welche mich doch stark an die RootServer bei 1&1 erinnern:



Bei Datacenterknowledge.com gibts einige interessante Berichte über IT Architektur bei google:
Google's Custom Webserver revealed
Google unveils container Data Center
Efficient UPS Aids Google’s Extreme PUE
Inside A Google Data Center

(via datacenterknowledge.com)

Tags für diesen Artikel: , , ,
| Top Exits (506)
413 Klicks
Twitter Bookmark Google gewährt Einblick in Container Rechenzentrum  at del.icio.us Facebook Google Bookmarks FriendFeed Digg Google gewährt Einblick in Container Rechenzentrum Technorati Google gewährt Einblick in Container Rechenzentrum wong it!

RAID Monitoring mit Nagios

Geschrieben von andy • Mittwoch, 25. März 2009 • Kategorie: combjuta

Vor kurzem schrieb ich über einen Festplatten Ausfall in einem Software Raid.
Dieser Ausfall wurde einem Nagios Überwachungssystem gemeldet, mit welchem wir unsere Server überwachen. Als RAID Systeme kommen "normale" Linux Software Raids mit md devices und ein Server mit einem 3ware Hardware Raid (3ware Inc 8000-series) zum Einsatz.

Für das 3Ware Raid verwenden wir das check3wareraid von nagiosexchange.org. Dafür muss wie im Artikel beschrieben noch sudoers um "nagios ALL=(ALL) NOPASSWD: /path/to/check3wareraid" erweitert werden. Der Check selbst wird dann beispielsweise im nrpe Client über ein Wrapper Skript ausgeführt, welches ein "sudo /path/to/check3wareraid" ausführt.
Zur Ausführung benötigt man noch das 3ware Command Line Interface (CLI). Für Debian bekommt man das einfach über debian-unoffical mirror, der noch zu den apt-Sourcen hinzugefügt werden muss:

# For getting 3dm2-package for 3ware
deb http://ftp.debian-unofficial.org/debian sid main contrib non-free restricted

Nach einem
apt-get update && apt-get install 3ware-3dm2-binary 3ware-cli-binary

befinden sich die benötigten Binaries auf eurem Server und die Funktion lässt sich mit dem Aufruf von
twcli /c0 show

Unit UnitType Status %Cmpl Stripe Size(GB) Cache AVerify IgnECC
------------------------------------------------------------------------------
u0 RAID-1 OK - - 698.637 ON - -

Port Status Unit Size Blocks Serial
---------------------------------------------------------------
p0 OK u0 698.63 GB 1465149168 5QD2DXQ8
p1 OK u0 698.63 GB 1465149168 5QD0XX6A

testen.

Software Raids werden mit dem einfachen check
md_raid überwacht. Dazu wird der Check einfach als command oder im nrpe Client hinzugefügt und ausgeführt. Allerdings schreit er schon mit Critical, wenn nur ein Device Critical ist, und dies kann man auch nicht konfigurieren oder auf bestimmte md devices eingrenzen.

Tags für diesen Artikel: , , ,
| Top Exits (554)
844 Klicks
Twitter Bookmark RAID Monitoring mit Nagios  at del.icio.us Facebook Google Bookmarks FriendFeed Digg RAID Monitoring mit Nagios Technorati RAID Monitoring mit Nagios wong it!

Festplattenausfall bei Software Raid

Geschrieben von andy • Dienstag, 17. März 2009 • Kategorie: combjuta

Gestern abend viel eine Platte in einem unserer bei Hetzner gehosteten Servern aus. Die md devices landeten alle nach und nach im Fehlerzustand. Grund genug ein Support Ticket bei Hetzner aufzumachen und um einen Plattentausch zu bitten.
Heute morgen wurde dann gleich ein Termin ausgemacht und die Platte wurde pünktlich und schnell wie immer von einem Hetzner Support Mitarbeiter getauscht.
Aber was dann?
Das Software Raid ist ja trotzdem noch degraded und benötigt erstmal Starthilfe:

Zunächst müssen die gültigen Partitionen von der noch funktionierenden Festplatte (in diesem Fall /dev/sda) auf die neue Festplatte kopiert werden. Ein simples dd der Partitionstabelle (# dd if=/dev/sda of=/dev/sdb count=1 bs=512) kopiert leider nur alle Partitionen bis zum Beginn der extended Partition. sfdisk wiederum kopierte zuverlässig alle Devices in der richtigen Größe (Was natürlich auch nicht unwichtig ist ;-) )

sfdisk -d /dev/sda | sfdisk /dev/sdb

Danach muss die Partitionstabelle neu eingelesen werden.
sfdisk -R /dev/sdb

Das funktioniert allerdings nur zuverässig wenn das Device nicht aktiv ist. Sind beispielsweise nur einige und nicht alle Partitionen auf der Festplatte defekt, so sollte man diese manuell in den Fehlerzustand versetzen und aus dem md raid removen:
device manuel failen: mdadm --manage /dev/md0 --fail /dev/sdb1

device removen: mdadm /dev/md0 -r /dev/sdb1


In meinem Fall wurde zu diesem Zeitpunkt die Platte von einem Servicetechniker in 15 Minuten getauscht und der Server war wieder online.
Nach kopieren der Partitionstabelle müssen nur noch die Partitionen dem md device hinzugefügt werden:
mdadm /dev/md0 -a /dev/sdb1

Danach sollte sofort der resync starten, prüfen kann man dies mit
cat /proc/mdstat

oder im Detail
mdadm --examine /dev/sdab1


Nähere Infos gibts im Hetzner-wiki oder bei howtoforge

Tags für diesen Artikel: , , , ,
| Top Exits (252)
595 Klicks
Twitter Bookmark Festplattenausfall bei Software Raid  at del.icio.us Facebook Google Bookmarks FriendFeed Digg Festplattenausfall bei Software Raid Technorati Festplattenausfall bei Software Raid wong it!

Neue Server bei Hetzner

Geschrieben von andy • Freitag, 26. Oktober 2007 • Kategorie: combjuta

Die Hetzner AG, eine Webhosting Firma aus Nürnberg bei der wir auch diginights.com hosten, hat seit heute neue Rootserver in Ihrem Portfolio! Die Angebote sind wirklich sehr interessant, und wir werden uns viel Gedanken um einen weiteren Umzug machen :-)
Los gehts im DS3000 mit einem AMD Athlon 64 X2 5600+, 2GB RAM und zwei 400 GB SATA Platten. Das ganze gibts für nur 49 € (zuzügl. Setupgebühr von 99€). Den DS5000 gibts für 10€ im Monat mehr, dafür dann mit 4GB RAM. Der DS7000 wird von einem AMD Athlon 64 X2 6000+ angetrieben, verfügt über zwei 750GB SATA 2 Festplatten, und hat einen 6GB großen Arbeitsspeicher. Angeboten wird der DS7000 ab 79€. Das Top Modell , der DS8000, ist ab 99€ erhältlich und enthält gegenüber dem DS7000 zusätzliche 2GB RAM, also ingesamt 8GB, und einen 3Ware Raid Controller (8006-2).
Das ehemalige Top Modell, den DS9000, gibts momentan erstmal nicht - soll aber laut Aussagen im Hetzner-Forum das zukünftige Zugpferd mit 4 Kernen werden.




Tags für diesen Artikel: , ,
| Top Exits (777)
997 Klicks
Twitter Bookmark Neue Server bei Hetzner  at del.icio.us Facebook Google Bookmarks FriendFeed Digg Neue Server bei Hetzner Technorati Neue Server bei Hetzner wong it!

FTP Server ganz einfach mounten mit curlftpfs

Geschrieben von andy • Montag, 20. August 2007 • Kategorie: combjuta

FTP im Filesystem zu haben ist sehr praktisch. Ob man nun auf seinem Rootserver das Handling der Backups vereinfachen möchte oder mit Eclipse direkt auf einem Webspace arbeitet, es hilft einem doch ungemein.

Das ganze geht ganz einfach. Unter Debian/Ubuntu installiert man das Paket curlftpfs:

apt-get install curlftpfs

Dieses zieht dann weitere Pakete an, unter anderem libfuse2 und die fuse-utils, mit deren Hilfe schliesslich die Einbindung mittels FUSE(FileSystem im Userspace) erfolgt.
anschliessend mountet man das ganze einfach folgendermassen:
curlftpfs USER:PASSWORT@IP/HOSTNAME /mnt/backup_ftp/

Natürlich benötigt man für die Geschichte den passenden Kernel, aber dann steht dem FTP Zugriff über das eigene Filesystem nichts mehr im Wege. Viel Spaß damit!

Tags für diesen Artikel: , , , ,
| Top Exits (342)
5231 Klicks
Twitter Bookmark FTP Server ganz einfach mounten mit curlftpfs  at del.icio.us Facebook Google Bookmarks FriendFeed Digg FTP Server ganz einfach mounten mit curlftpfs Technorati FTP Server ganz einfach mounten mit curlftpfs wong it!

PHP absichern mit suhosin

Geschrieben von andy • Mittwoch, 18. Juli 2007 • Kategorie: diginights

Über Lücken und Schwachstellen in PHP liest man ja ständig. Die Entwickler sind beim fixen der Fehler leider auch nicht die schnellsten. Somit sollte man sich Gedanken über zusätzliche Absicherungen machen. Außerdem hat mich Martin unfreiwillig davon überzeugt, dass hier Handlungsbedarf besteht ;-)
Eine meiner Meinung nach gute Möglichkeit zur Absicherung stellt die Suhosin Erweiterung des Hardened PHP Projects dar.

Suhosin is an advanced protection system for PHP installations. It was designed to protect servers and users from known and unknown flaws in PHP applications and the PHP core.


Suhosin kommt in 2 Teilen - ein Teil ist ein Patch direkt für den PHP Core, der andere ist eine normale PHP Extension. Für optimalen Schutz sollte man beide einsetzen - muss aber nicht. Denn nicht jede Software ist 100% kompatibel zu den Einschränkungen, die Suhosin am PHP vornimmt.

Die Installation des Patches ist kinderleicht:
- Passende Version im Downloadbereich wählen.
- Patch das PHP Build verzeichnis entpacken
- in meinem Fall ein patch -p 1 -i suhosin-patch-5.2.3-0.9.6.2.patch ausführen
- PHP neu kompilieren und installieren
- nach einem Neustart sollte unter phpinfo nun ein "This server is protected with the Suhosin Patch 0.9.6.2" stehen.

Die Extension einzubauen ist ebenfalls kein Hexenwerk:
- Download der aktuellen Version vom Downloadbereich
- Entpacken und wechsel ins Source Verzeichnis
- phpize, configure & make
- Einbau in die PHP.ini mittels "extension="suhosin.so""
- nach dem Apache reload sollte sich die Zend Engine dann mit " with Suhosin v0.9.20, Copyright (c) 2002-2006, by Hardened-PHP Project" melden.

Danach solltet ihr noch eure Software testen, vor allem Fremdprodukte.
Natürlich hat das ganze auch den Nachteil, dass eure Applikationen ein wenig langsamer lauffen...wer aber eh Performance übrig hat, wird davon nicht viel merken. Nichtsdestotrotz gibts hier eine Benchmark Seite mit Vorher/Nachher Vergleichen. Außerdem gibts das Benchmark Skript auch zum Download


Bei uns funktioniert alles reibungslos, ob nun die Blogsoftware serendipity, das Webframework Symfony oder den PHP Accelerator eaccelerator, alles läuft bisher tadellos!

Viel Spaß beim ausprobieren.

Tags für diesen Artikel: , , , ,
| Top Exits (2882)
2397 Klicks
Twitter Bookmark PHP absichern mit suhosin  at del.icio.us Facebook Google Bookmarks FriendFeed Digg PHP absichern mit suhosin Technorati PHP absichern mit suhosin wong it!

Schneller Service bei Hetzner

Geschrieben von andy • Dienstag, 17. Juli 2007 • Kategorie: diginights

Über die sehr fixe Bestellung unseres neuen Servers bei Hetzner hatte ich ja schon berichtet. Nun hat der alte Server ein wenig Probleme gemacht.
Vereinzelt klagten User über sporadische Nichterreichbarkeit der Seite, SSH Sessions sterben, usw.....

Die Vermutung war klar - Jemand klaut unsere IP, ob nun absichtlich oder nicht...

Die Mail zum Hetzner Support war dann auch schnell abgeschickt, nach 7 Minuten gabs schon die Antwort "Problem erledig".
Wunderbar dachte ich ;-) ...auf die Nachfrage nach dem genauen Problem gabs nur die Antwort, dass bis vor kurzem ein Rechner versuchte sich die IP zu schnappen und dass er nun erstmal aus ist :-)
Klaro sollte die Network Security sowas verhindern, aber ich glaube nicht, dass es viele Hoster gibt, die in so einer Situation so schnell reagiert hätten.

Im Anschluss danach wurde dann gleich mal das zusätzliche Subnet bestellt, welches auch bei der alten Kiste inklusive ist und nie verwendet wurde. Dieses wurde nach 6 Minuten erledigt. Sowas ist einfach nur top!

Tags für diesen Artikel: ,
| Top Exits (319)
509 Klicks
Twitter Bookmark Schneller Service bei Hetzner  at del.icio.us Facebook Google Bookmarks FriendFeed Digg Schneller Service bei Hetzner Technorati Schneller Service bei Hetzner wong it!

tweetbackcheck