Pull to refresh

Nagios & check-mk

Кто не знаком с предметом читаем тут и тут.
Если кратко:
Nagios — система мониторинга;
check-mk — один из плагинов для неё, отличается возможностью автоматически и с минимальными нагрузками собирать информацию о сервисах.
Установка и начальная настройка на примере Ubuntu.


Установка клиента

1. Если у Вас Ubuntu 11.10 то все уже есть в репозитории, устанавливаем:
# apt-get install xinetd check-mk-agent

2. Если нет, добавляем репозиторий oneric:
# nano /etc/apt/sources.list
добавляем в конец строку, сохраняем, закрываем
deb http://ru.archive.ubuntu.com/ubuntu/ oneiric universe
обновляем список пакетов
# apt-get update
устанавливаем
# apt-get install xinetd check-mk-agent

3. Либо качаем и устанавливаем:
# wget http://mathias-kettner.de/download/check-mk-agent_1.1.12p7-2_all.deb
# dpkg -i check-mk-agent_1.1.12p7-2_all.deb

Проверяем установку:
# check_mk_agent
команда выдает много информации о системе.

Проверяем сервер:
# netstat -ln | grep 6556
tcp 0 0 0.0.0.0:6556 0.0.0.0:* LISTEN

Если порт не открыт, проверяем настройки службы:
# nano /etc/xinetd.d/check_mk
обратите внимание на строку
disable = no

Перезапускаем xinetd:
# service xinetd restart

Установка сервера

1. Если у Вас Ubuntu 11.10, устанавливаем:
# apt-get install check-mk-server check-mk-config-nagios3

2. Если нет, добавляем репозиторий oneric (см. выше), устанавливаем:
# apt-get install check-mk-server check-mk-config-nagios3

3. Где скачать на сайте отдельный пакет для сервера я так и не нашел.

Проверяем установку:
# check_mk
команда должна вывести справку.

Создаем указатель на шаблоны для сервисов и команд:
# ln -s /etc/icinga/objects/check_mk_templates.cfg /etc/nagios3/conf.d/

Добавляем сервера (добавлять лучше имя, а не IP, так как именно в таком виде будет показано название сервера на сайте):
# nano /etc/check_mk/main.mk
между скобок указываем имена серверов которые будем мониторить (и на которые предварительно установлен клиент)
# Put your host names here
# all_hosts = [ 'localhost' ]
all_hosts = [
"server1",
"server2",
"server3"
]


Запускаем поиск сервисов:
# check_mk -u -II
система выведет список обнаруженных на клиентах сервисов
cpu.loads 1 new checks
cpu.threads 1 new checks
df 1 new checks
diskstat 2 new checks
kernel 3 new checks
kernel.util 1 new checks
logwatch 2 new checks
mem.used 1 new checks
mem.vmalloc 1 new checks
mounts 1 new checks
netctr.combined 3 new checks
ntp.time 1 new checks
tcp_conn_stats 1 new checks
uptime 1 new checks


Компилируем команды:
# check_mk -C

Формируем конфигурацию для nagios:
# check_mk -N > /etc/nagios3/conf.d/check_mk_objects.cfg

Обратите внимание какие права у файлов check_mk_objects.cfg и check_mk_templates.cfg чтобы nagios смог с ними работать, кроме того не забываем закоментировать определения хостов в nagios если они у вас уже мониторились.

Включаем пассивные проверки:
# nano /etc/nagios3/nagios.cfg
меняем значения следующих параметров
check_external_commands=1
command_check_interval=1


Обновляем параметры nagios:
# service nagios3 reload

Проверяем, идут ли проверки:
# tail -f /var/log/nagios3/nagios.log

Если все в порядке, отключаем логирование пассивных проверок (зачем их записывать, если все в порядке?):
# nano /etc/nagios3/nagios.cfg
меняем параметр
log_passive_checks=0

Обновляем параметры nagios:
# service nagios3 reload

В итоге в списке сервисов на сайте у вас должно получится нечто такое:


Если проверки отрабатывают, а хост отмечен тревогой (нет пинга), то в check_mk_templates.cfg находим описание команды
define command {
command_name check-mk-ping
command_line /usr/lib/nagios/plugins/check_icmp $HOSTADDRESS$

и добавляем в последнюю строку sudo (вы ведь добавили пользователя nagios в sudoers?)
получается так:
define command {
command_name check-mk-ping
command_line sudo /usr/lib/nagios/plugins/check_icmp $HOSTADDRESS$


Надеюсь все успешно, удачи.

Nagios Is The Industry Standard In IT Infrastructure Monitoring.
Check_MK — Nagios-plugin for retrieving data.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.