środa, 17 października 2012

Icinga z repozytoriów na CentOS 6

This post is available only in polish language.
Poniżej przedstawiam krótki tutorial jak postawić system monitoringu oparty o Centosa 6, Icingę i pnp4nagios. Można oczywiście instalować całość ze źródeł/pakietów dostarczanych przez twórców oprogramowania, ale ten sposób jest bardziej czasochłonny i problematyczny jeśli chodzi o aktualizację do nowszych wersji.

1. Instalujemy czysty system - tego punktu nie będę rozwijał ;)

2. Dodajemy repozytoria RPM Forge i Epel

   rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
   rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
   rpm -Uvh http://ftp.ps.pl/pub/Linux/fedora-epel/6/i386/epel-release-6-7.noarch.rpm

3. Instalujemy pakiety

   yum install icinga-web.noarch icinga.x86_64 icinga-gui.x86_64 icinga-idoutils-libdbi-mysql.x86_64 mysql-server nagios-plugins.x86_64 nagios-plugins-nrpe.x86_84 php-mysql icinga-web-module-pnp.noarch postfix telnet

4. Modyfikujemy uprawnienia

   usermod -G nagios icinga
   chmod -R g+w /var/log/pnp4nagios
   chmod -R g+w /var/lib/pnp4nagios

5. Startujemy MySQL-a

   /etc/init.d/mysqld start

6. Tworzymy bazę dany Icingi

   /usr/share/doc/icinga-idoutils-libdbi-mysql-1.7.2/db/scripts/create_mysqldb.sh

7. Tworzymy bazę danych Icingi-Web (z poziomu wiersza poleceń mysql)

   create database icinga_web;
   use icinga_web;
   \. /usr/share/doc/icinga-web-1.7.2/schema/mysql.sql
   grant all privileges on icinga_web.* to 'icinga_web'@'localhost' identified by 'icinga_web';

8. Konfigurujemy Icingę do korzystania z pnp4nagios

   - modyfikujemy plik /etc/icinga/icinga.cfg

      sed -i '/^process_performance_data=0/ s/0/1/' /etc/icinga/icinga.cfg
      sed -i '/^enable_environment_macros=0/ s/0/1/' /etc/icinga/icinga.cfg
      sed -i '/^#host_perfdata_command/ s/#//' /etc/icinga/icinga.cfg
      sed -i '/^#service_perfdata_command=/ s/#//' /etc/icinga/icinga.cfg

   - dodajemy do pliku /etc/icinga/objects/commands.cfg poniższe linie zastępując istniejące

      -- cut here --
         # 'process-host-perfdata' command definition
         define command {
            command_name  process-host-perfdata
            command_line  /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl -d HOSTPERFDATA
         }

         # 'process-service-perfdata' command definition
         define command {
            command_name  process-service-perfdata
            command_line  /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl
         }
      -- cut here --

9. W pliku /etc/icinga/objects/commands.cfg konfigurujemy polecenia nrpe (odpalanie modułów na zdalnym serwerze)

      -- cut here --
         # CHECK_NRPE
         # this command runs a program $ARG1$ with arguments $ARG $
         define command {
            command_name    check_nrpe_args
            command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
         }

         # this command runs a program $ARG1$ with no arguments
         define command {
            command_name    check_nrpe
            command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
         }
      -- cut here --

10. Odpalamy usługi i ustawiamy je do uruchamiania przy starcie systemu

      /etc/init.d/npcd start
      /etc/init.d/ido2db start
      /etc/init.d/icinga start
      /etc/init.d/httpd start
      /etc/init.d/postfix start

      chkconfig httpd on
      chkconfig npcd on
      chkconfig mysqld on
      chkconfig icinga on
      chkconfig ido2db on
      chkconfig postfix on

11. Wyłączamy SElinux

1.  vi /etc/selinux/config

zamieniamy 
SELINUX=enforcing
na
SELINUX=disabled

2.  echo 0 > /selinux/enforce

12. Konfigurujemy firewalla

      vi /etc/sysconfig/iptables

     dodajemy linię poniżej :OUTPUT

      -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

13. Domyślne adresy i hasła

   icinga     - http://127.0.0.1/icinga     - icingaadmin / icingaadmin
   icinga-web - http://127.0.0.1/icinga-web - root / password
   pnp4nagios - http://127.0.0.1/pnp4nagios - nagiosadmin / nagiosadmin



Właściwie na początek to wszystko, ale żeby wszystko było jak należy to trzeba sobie dokonfigurować system, zmienić hasła do autoryzacji HTTP, ustawić hasło na roota MySQL-a itp. Nie pisałem tu o tym bo nie jest to celem tego tutorialu. Należy też oczywiście skonfigurować sobie cele do monitorowania dla Icingi, sposób powiadomień itp., bo domyślnie monitorowany jest jedynie system lokalny.