Установка Nagios на CentOS 6

1: Установка Nagios на мониторинговый сервер

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum -y install nagios nagios-plugins-all nagios-plugins-nrpe nrpe php httpd
chkconfig httpd on && chkconfig nagios on
service httpd start && service nagios start

Нужно также активировать на сервере хотя бы 2GB памяти SWAP:

dd if=/dev/zero of=/swap bs=1024 count=2097152
mkswap /swap && chown root. /swap && chmod 0600 /swap && swapon /swap
echo /swap swap swap defaults 0 0 >> /etc/fstab
echo vm.swappiness = 0 >> /etc/sysctl.conf && sysctl -p

2: Установка пароля

Установите пароль для панели администратора Nagios:

htpasswd -c /etc/nagios/passwd nagiosadmin

Убедитесь, что имя пользователя «nagiosadmin» не было изменено, иначе придется изменить /etc/nagios/cgi.cfg и переопределить авторизованного администратора.

Теперь можно перейти к IP-адресу сервера http://IP/nagios и войти. При этом будет запрошен установленный в разделе 2 пароль.

Так как это свежая инсталляция, в данный момент контролируемых хостов нет. Теперь нужно добавить хосты, которые будут отслеживаться Nagios.  Для примера используем mymail.tk (111.222.333.444) и emailserver.tk (123.123.123.12).

С открытых портов можно отслеживать пинг, а также любые открытые порты, такие как веб-сервер, почтовый сервер, и т.д.

Для прослушиваемых на локальном хосте закрытых сервисов, таких как MySQL, Memcached, системные сервисы, понадобится NRPE.

3: Установка NRPE на клиент

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum -y install nagios nagios-plugins-all nrpe
chkconfig nrpe on

Далее можно задать вручную любые команды, которые мониторинговый сервер может переслать на клиенты с помощью NRPE.

Убедитесь, что allowed_hosts заменено реальными значениями.

Отредактируйте /etc/nagios/nrpe.cfg

log_facility=daemon
pid_file=/var/run/nrpe/nrpe.pid
server_port=5666
nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=111.222.333.444
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nrpe.d/
command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda
command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200
command[check_procs]=/usr/lib64/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$

Примечание: в строке check_disk проверяется раздел /dev/vda; убедитесь, что на сервере есть такой раздел, запустив

df -h /

Можно откорректировать запуск предупреждений и извещений о критических ситуациях; в приведенных выше конфигурациях установлен запуск предупреждения при 20% свободного места на диске, запуск извещения о критической ситуации – при 10%.

Нужно также установить правила фаервола, позволяющие подключения с мониторингового сервера на клиенты и запрещающие остальные подключения:

iptables -N NRPE
iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j NRPE
iptables -I NRPE -s 111.222.333.444 -j ACCEPT
iptables -A NRPE -s 0/0 -j DROP
/etc/init.d/iptables save

Теперь можно запустить NRPE  на всех клиентах:

service nrpe start

4: Добавление конфигураций сервера на мониторинговый сервер

Вернитесь на мониторинговый сервер, где нужно создать конфигурационные файлы для клиентов:

echo "cfg_dir=/etc/nagios/servers" >> /etc/nagios/nagios.cfg
cd /etc/nagios/servers
touch mymail.tk.cfg
touch emailserver.tk.cfg

Отредактируйте конфигурационный файл каждого клиента и определите сервисы, которые нужно отслеживать.

nano /etc/nagios/servers/mymail.tk.cfg

Внесите следующие строки:

define host {
use                     linux-server
host_name               mymail.tk
alias                   mymail.tk
address                 111.222.333.444
}
define service {
use                             generic-service
host_name                       mymail.tk
service_description             PING
check_command                   check_ping!100.0,20%!500.0,60%
}
define service {
use                             generic-service
host_name                       mymail.tk
service_description             SSH
check_command                   check_ssh
notifications_enabled           0
}
define service {
use                             generic-service
host_name                       mymail.tk
service_description             Current Load
check_command                   check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
}

При необходимости можно добавить больше сервисов, которые нужно отслеживать. Такие же конфигурации, но с другими IP-адресом и host_name,  необходимо добавить на второй клиент, emailserver.tk:

Это фрамент /etc/nagios/servers/emailserver.tk.cfg:

define host {
use                     linux-server
host_name               emailserver.tk
alias                   emailserver.tk
address                 123.123.123.12
}
...

Дополнительные клиенты для отслеживания можно добавить при помощи /etc/nagios/servers/AnotherHostName.cfg

Наконец, когда все конфигурации клиентов внесены, нужно правильно установить разрешения для папки и перезапустить Nagios на мониторинговом сервере:

chown -R nagios. /etc/nagios
service nagios restart

5: Отслеживание хостов с помощью Nagios

Перейдите на IP-адрес мониторингового сервера http://IP/nagios и введите пароль, установленный в разделе 2. Теперь можно просмотреть все хосты и серверы.

Tags: , , , , ,

Добавить комментарий