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
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.
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
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.