Translate

четвер, 8 вересня 2011 р.

Налаштування Nagios 3 + NRPE

В цій статті хочу коротко описати про налаштування системи моніторингу Nagios. Надалі планую статтю доповнити. Тож приступимо.

1) Встановлюємо необхідні пакети:

# apt-get install nagios3

По залежностях має потягнути за собою купу всього разом з апачем.

apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common bsd-mailx libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
  libgd2-noxpm libnet-snmp-perl libpq5 libradius1 nagios-images nagios-plugins nagios-plugins-basic nagios-plugins-standard nagios3-cgi nagios3-common
  nagios3-core php5-cli php5-common postfix snmp whois

2) Створюємо юзера та пароль:

# cd /etc/nagios3; htpasswd -c htpasswd.users nagiosadmin

Тепер можна залогінитись на нагіос і побачити приблизно таке:


3) Редагуємо конфіги нагіоса. Першим відредагуємо файл груп. Він в основному використовується для того, щоб вживати скрипти перевірок одразу для груп хостів, а не для кожного окремо, і також для гарного представлення серверів в веб-інтерфейсі.

# vim /etc/nagios3/conf.d/hostgroups_nagios2.cfg

define hostgroup {
hostgroup_name all
alias All servers
members *
}

define hostgroup {
hostgroup_name web
alias Web servers
members web1, web2
}

define hostgroup {
hostgroup_name db
alias Database servers
members db1
}

З конфіга видно, що описано дві групи db i web та одна загальна all. В групу db входять хости web1, web2, в db (database) - db1. В якості alias можете написати те що вам до вподоби

4) Описуємо хости, що входитимуть в групи:

додаємо

define host {
use generic-host;
host_name web1;
address web1.example.com;
}
define host {
use generic-host;
host_name web2;
address web2.example.com;
}
define host {
use generic-host;
host_name db1;
address db1.example.com;
}

db1.example.com, web*.example.com - хости що ви хочете перевіряти.

5) Тепер ми можемо описати, які сервіси перевірки будуть працювати і що, власне, вони будуть перевіряти.

# vim /etc/nagios3/conf.d/services_nagios2.cfg


define service {
        hostgroup_name                  webserver
        service_description             HTTP
        check_command                   check_http
        use                             generic-service
        notification_interval           0 ; set > 0 if you want to be renotified
}

define service {
         hostgroup_name                 db
         service_description            MySQL
         check_command                  check_mysql_cmdlinecred!login!password!
         use                            generic-service
         notification_interval          0
}

Звертаю увагу, для перевірки mysql-баз необхідно, вказати нагіосу з яким паролем та логіном робити перевірку. Плюс до того ж всього треба в my.cnf розкоментити можливість коннектитись з інших, окрім локалхосту портів та створити юзера в БД, котрий може підключатись до баз віддалено.

Створюємо юзера:

> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
> GRANT ALL PRIVILEGES ON such_db.* to 'user'@'%';

І редагуємо файл my.cnf, коментимо рядок  bind-address = 127.0.0.1

Власне все, повинні отримати щось схоже на це


UPD. Щоб додати можливість моніторити віддалені хости варто доустановити на стороні remote-сервера пакети nagios-nrpe-server nagios-plugins-basic :

# apt-get install nagios-nrpe-server nagios-plugins-basic

Демон має висіти на 5666 порту:

# netstat -an | grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN

Змінюємо конфігураційний файл /etc/nagios/nrpe.cfg на віддаленій тачці:

allowed_hosts=127.0.0.1,IP_основного_сервера
# дозволити використання аргументів при виклику plugin'ів
dont_blame_nrpe=1
# приклад опису plugin'ів
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda5
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200

І перезапускаємо NRPE з новими параметрами:

# /etc/init.d/nagios-nrpe-server restart

Встановлюємо nrpe-плагін на моніторинг-сервері:

# apt-get install nagios-nrpe-plugin

Перевіряємо доступність віддаленого-сервера з моніторинг-сервера:

# /usr/lib/nagios/plugins/check_nrpe -H 192.168.3.176 -c check_users
USERS OK - 5 users currently logged in |users=5;5;10;0

Ну і знову ж, як в попередньому прикладі, додаємо опис в файли /etc/nagios3/conf.d/hosts.cfg , /etc/nagios3/conf.d/hostgroups_nagios2.cfg та в /etc/nagios3/conf.d/services_nagios2.cfg  додаємо щось на кшталт цього:

define service {
use                             generic-service
host_name                       remote
service_description             load avarage
check_command                   check_nrpe!check_load!IP віддаленого_сервера

Не забуваймо перезапускати нагіос і перевіряти конфіг. Ось мій результат:



Посилання:
http://www.myelin.co.nz/post/2008/10/30/
http://blog.sozinov.eu/2007/05/nrpe-nagios.html

Немає коментарів:

Дописати коментар