Показаны сообщения с ярлыком Nagios. Показать все сообщения
Показаны сообщения с ярлыком Nagios. Показать все сообщения
среда, 29 сентября 2010 г.
Distributed Nagios eXecutorEnterprise
Масштабирование Nagios на тысячи узлов: http://dnx.sourceforge.net/
среда, 24 марта 2010 г.
Как пересобрать nrpe на CentOS из src rpm пакета?
Вот возникла у меня такая необходимость, но сходу собрать по обычному мануалу http://phpsuxx.blogspot.com/2009/12/rpm-centos-5.html не получилось.
А не получилось по вот такой причине:
Чтобы исправить проблему надо внести коррективы в SPEC:
И заменить:
на
После такой замены все успешно соберется :)
А не получилось по вот такой причине:
error: Failed build dependencies:
tcp_wrappers-devel is needed by nrpe-2.12-12.x86_64
Чтобы исправить проблему надо внести коррективы в SPEC:
cd SPECS/
vi nrpe.spec
И заменить:
%if 0%{?rhel}
BuildRequires: tcp_wrappers
%else
BuildRequires: tcp_wrappers-devel
%endif
на
%if 0%{?rhel}
BuildRequires: tcp_wrappers
%else
BuildRequires: tcp_wrappers
%endif
После такой замены все успешно соберется :)
nrpe и передача сообщений длиннее 1024 байт
В процессе работы с nrpe обнаружил у него фичу - если выдача запускаемой на удаленной машине команды больше 1024 байт, то выдача усекается до 1024 байт вне зависимости от полной длины. Меня, разумеется, такой расклад не устраивает - мне надо увеличить это значение хотя бы вдесятеро, до 10240 байт.
За этот [s]баг[/s] фичу отвечает константа MAX_PACKETBUFFER_LENGTH, объявленая в файле nrpe-2.12/include/common.h, так что для достижения требуемого поведения программы достаточно увеличить эту константу до 10024, а также скорректировать размер служебного буфера.
То есть нам надо внести следующие коррективы в файле include/common.h:
Размер второго служебного буфера увеличивается сильно, но не думаю, что это сломает программу.
После внесения указанных правок необходимо пересобрать пакет, это можно сделать по моему мануалу: http://phpsuxx.blogspot.com/2009/12/rpm-centos-5.html
Мануал пока не проверен, так что все на собственный страх и риск :)
За этот [s]баг[/s] фичу отвечает константа MAX_PACKETBUFFER_LENGTH, объявленая в файле nrpe-2.12/include/common.h, так что для достижения требуемого поведения программы достаточно увеличить эту константу до 10024, а также скорректировать размер служебного буфера.
То есть нам надо внести следующие коррективы в файле include/common.h:
#define MAX_PACKETBUFFER_LENGTH 10240
#define MAX_INPUT_BUFFER 20480
Размер второго служебного буфера увеличивается сильно, но не думаю, что это сломает программу.
После внесения указанных правок необходимо пересобрать пакет, это можно сделать по моему мануалу: http://phpsuxx.blogspot.com/2009/12/rpm-centos-5.html
Мануал пока не проверен, так что все на собственный страх и риск :)
понедельник, 22 марта 2010 г.
Использование nrpe в своих корыстных целях
Задача такая - требуется вызов ряда команд на удаленном сервере. Первая мысль о реализации возникла сразу - ssh, но тут возникает проблема с тем, что нет возможности малой кровью ограничить список доступных команд и запретить доступ к файловой системе. Второй вариант был Zabbix Agent, но у него есть существенный недостаток, он не позволяет указать список команд, которые можно запускать, разрешаются либо все команды либо ни одной. Тут он полностью аналогичен SSH. Третий вариант пришел в голову немного позже - это nrpe, плагин удаленного мониторинга серверов. Он позволяет явно задать список доступных команд, а также является заведомо надежным продуктов присутствующем в почти каждом репозитории ПО. Так что реализовывать задачу будем именно на нем.
Гугл очень быстро помог, выдав отличный мануал по установке nrpe: http://blog.sozinov.eu/2007/05/nrpe-nagios.html, на его основе мы и будем двигаться дальше.
В рассмотрении у нас будет два узла - source и target, с первого мы будем запрашивать данные, а второй будет выполнять заданные нами команды.
Настраиваем target систему
На target:
Далее все рассуждения я буду проводить для CentOS.
Включаем автозагрузку сервиса nrpe:
Запускаем его:
Открываем конфиг:
Далее заменяем 127.0.0.1 на IP source сервера:
Потом включаем передачу аргументов вызываемым программам:
По поводу безопасности можете не волноваться, сам NRPE отфильтрует потенциально опасные символы, переданные в качестве аргументов, вот их список:
И создаем тестовую команду без аргументов:
Применяем изменения:
И открываем слежение за логами nrpe:
Настраиваем source систему
Обращаю внимание, что все последующие рассуждения для Debian.
Запрашиваем выдачу нашего датчика:
Ну вот и все, не правда ли, очень удобно? :) Разве что меня смущает то, что /usr/lib/nagios/plugins/check_nrpe - бинарик, а не Python/Perl скрипт, но не думаю, что у nrpe такой сложный протокол, чтобы его нельзя было воспроизвести вручную.
Передача параметров
Теперь немного усложним задачу, будем запрашивать данные выдачи команды mdadm --detail /dev/N, где N будет задаваться вызывающей стороной.
На target машине создаем такую команду:
Применяем настройки:
Так как mdadm для запуска требует полномочий суперпользователя, нам необходимо будет воспользоваться sudo.
Ставим sudo:
Добавляем правило в sudoers:
Также отключаем требование tty для использования sudo (комментируем указанную строку):
Идем на source машину и вызываем команду:
Ну вот теперь у нас есть RPC на все случи жизни :)
Если же у Вас параноя, как и у меня, то рекомендую закрыть NRPE также фаерволлом (xx.xx.xx.xx - IP source машины):
Гугл очень быстро помог, выдав отличный мануал по установке nrpe: http://blog.sozinov.eu/2007/05/nrpe-nagios.html, на его основе мы и будем двигаться дальше.
В рассмотрении у нас будет два узла - source и target, с первого мы будем запрашивать данные, а второй будет выполнять заданные нами команды.
Настраиваем target систему
На target:
# CentOS
yum install -y nrpe
# Debian
apt-get install nagios-nrpe-server
Далее все рассуждения я буду проводить для CentOS.
Включаем автозагрузку сервиса nrpe:
chkconfig nrpe on
Запускаем его:
/etc/init.d/nrpe start
Открываем конфиг:
vi /etc/nagios/nrpe.cfg
Далее заменяем 127.0.0.1 на IP source сервера:
allowed_hosts=127.0.0.1
Потом включаем передачу аргументов вызываемым программам:
dont_blame_nrpe=1
По поводу безопасности можете не волноваться, сам NRPE отфильтрует потенциально опасные символы, переданные в качестве аргументов, вот их список:
| ` & > < ' " \ [ ] { } ; !
И создаем тестовую команду без аргументов:
command[check_mdstat]=/bin/cat /proc/mdstat
Применяем изменения:
/etc/init.d/nrpe restart
И открываем слежение за логами nrpe:
tail -f /var/log/messages
Настраиваем source систему
Обращаю внимание, что все последующие рассуждения для Debian.
apt-get install -y nagios-nrpe-plugin
Запрашиваем выдачу нашего датчика:
/usr/lib/nagios/plugins/check_nrpe -H ip.ad.dr.es -c check_mdstat
Personalities : [raid1] [raid10] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
4200896 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
2104448 blocks [2/2] [UU]
md2 : active raid1 sdb3[1] sda3[0]
1458830400 blocks [2/2] [UU]
unused devices:
Ну вот и все, не правда ли, очень удобно? :) Разве что меня смущает то, что /usr/lib/nagios/plugins/check_nrpe - бинарик, а не Python/Perl скрипт, но не думаю, что у nrpe такой сложный протокол, чтобы его нельзя было воспроизвести вручную.
Передача параметров
Теперь немного усложним задачу, будем запрашивать данные выдачи команды mdadm --detail /dev/N, где N будет задаваться вызывающей стороной.
На target машине создаем такую команду:
command[check_mdadm_detail]=/usr/bin/sudo /sbin/mdadm --detail $ARG1$
Применяем настройки:
/etc/init.d/nrpe restart
Так как mdadm для запуска требует полномочий суперпользователя, нам необходимо будет воспользоваться sudo.
Ставим sudo:
yum install -y sudo
Добавляем правило в sudoers:
vi /etc/sudoers
nrpe ALL=(ALL) NOPASSWD:/sbin/mdadm --detail *
Также отключаем требование tty для использования sudo (комментируем указанную строку):
# Defaults requiretty
Идем на source машину и вызываем команду:
/usr/lib/nagios/plugins/check_nrpe -H ip.ad.dr.es -c check_mdadm_detail -a /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Thu Feb 11 18:39:06 2010
Raid Level : raid1
Array Size : 4200896 (4.01 GiB 4.30 GB)
Used Dev Size : 4200896 (4.01 GiB 4.30 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Mon Mar 22 19:31:08 2010
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
UUID : d9c1ca66:181df062:776c2c25:004bd7b2
Events : 0.50
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
Ну вот теперь у нас есть RPC на все случи жизни :)
Если же у Вас параноя, как и у меня, то рекомендую закрыть NRPE также фаерволлом (xx.xx.xx.xx - IP source машины):
iptables -A INPUT -p tcp -s ! xx.xx.xx.xx --dport 5666 -j DROP
понедельник, 25 января 2010 г.
Сборка Nagios 3.2 на Debian 5 из исходников
Установка Nagios
Ставим Апача:
Создаем юзера для Nagios:
Создаем группу (это необходимо, чтобы разрешить от имени Апача вызывать внешние команды):
Добавляем юзера Nagios а в это группу:
В нее же добавляем Апача:
Ставим зависимости:
Добавляем в автозапуск:
Запускаем:
Установка Nagios плагинов
Стягиваем сорцы:
Ставим зависимости:
Собираем:
Ставим NDO, он необходим для связи Nagios с MySQL.
Ставим зависимости:
Собираем:
Также по-хорошему, надо добавить этот демон (ndodb) в автозапуск, но чуть позже.
источник: http://en.doc.centreon.com/Setup:CompileNagiosPlugins и http://en.doc.centreon.com/Setup:CompileNagios и http://en.doc.centreon.com/Setup:ndoutils
Ставим Апача:
apt-get install apache2 -y --force-yes
Создаем юзера для Nagios:
useradd -m nagios
Создаем группу (это необходимо, чтобы разрешить от имени Апача вызывать внешние команды):
groupadd nagcmd
Добавляем юзера Nagios а в это группу:
usermod -G nagios,nagcmd nagios
В нее же добавляем Апача:
usermod -G nagios,nagcmd www-data
cd /usr/src
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz
tar -xf nagios-3.2.0.tar.gz
cd nagios-3.2.0
Ставим зависимости:
apt-get update
apt-get install -y --force-yes make gcc libpng12-dev libjpeg62-dev libgd2-xpm-dev
./configure --prefix=/opt/nagios --with-command-group=nagcmd --enable-nanosleep --enable-event-broker
make all
make install
make install-init
make install-commandmode
make install-config
Добавляем в автозапуск:
update-rc.d nagios defaults
Запускаем:
/etc/init.d/nagios start
Установка Nagios плагинов
Стягиваем сорцы:
cd /usr/src
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz
tar -xf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.14
Ставим зависимости:
apt-get install -y --force-yes fping libnet-snmp-perl libssl-dev dnsutils
Собираем:
./configure --prefix=/opt/nagios_plugins --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl=/usr/bin/openssl
make
make install
Ставим NDO, он необходим для связи Nagios с MySQL.
Ставим зависимости:
apt-get install -y --force-yes libmysqlclient15-dev
cd /usr/src
wget http://prdownloads.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz
tar -xf ndoutils-1.4b9.tar.gz
cd ndoutils-1.4b9
Собираем:
./configure --prefix=/opt/nagios --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios
make
make install
Также по-хорошему, надо добавить этот демон (ndodb) в автозапуск, но чуть позже.
источник: http://en.doc.centreon.com/Setup:CompileNagiosPlugins и http://en.doc.centreon.com/Setup:CompileNagios и http://en.doc.centreon.com/Setup:ndoutils
Centreon - Nagios с удобным интерфейсом, конфигуратором и установкой!
Т.к. приведение Nagios в юзабельный вид задача не из простых, я решил найти альтернативу. И нашел - Centreon 2.1.4. А чем, собственно, он лучше, чем Nagios ? Вот этим: http://www.centreon.com/Centreon/product-overview.html
Но, вообще говоря, сравнивать их некорректно, т.к. Centreon построен на базе ядра Nagios. Так что если это сравнивать в более понятных сущностях, то Nagios - это двигатель Porsche, а Centreon - это сам Porsche :)
Так что это не более чем грамотно настроенный и с красивой мордочкой монстр Nagios.
Основные преимущества:
0. Красивый, удобный интерфейс, а не тот ужас, который у Nagios. Скриншоты
1. Управление через веб-интерфейс (в Nagios для этого надо редактировать конфиги, что suxx)
2. Служебные данные хранятся в MySQL, в то время как даныне мониторинга хранятся в очень оптимальном для этого формате - RRD.
3. Удобная настройка уведомлений на почту / sms.
Если кто уже рвется ставить, то вот ссылки на инсталляцию для Debian и CentOS: http://en.doc.centreon.com/Setup
Update: вопщем, радость была недолгой, очень неудобный и перегруженный интерфейс + жуткая установка.
Но, вообще говоря, сравнивать их некорректно, т.к. Centreon построен на базе ядра Nagios. Так что если это сравнивать в более понятных сущностях, то Nagios - это двигатель Porsche, а Centreon - это сам Porsche :)
Так что это не более чем грамотно настроенный и с красивой мордочкой монстр Nagios.
Основные преимущества:
0. Красивый, удобный интерфейс, а не тот ужас, который у Nagios. Скриншоты
1. Управление через веб-интерфейс (в Nagios для этого надо редактировать конфиги, что suxx)
2. Служебные данные хранятся в MySQL, в то время как даныне мониторинга хранятся в очень оптимальном для этого формате - RRD.
3. Удобная настройка уведомлений на почту / sms.
Если кто уже рвется ставить, то вот ссылки на инсталляцию для Debian и CentOS: http://en.doc.centreon.com/Setup
Update: вопщем, радость была недолгой, очень неудобный и перегруженный интерфейс + жуткая установка.
Установка Nagios 3.2 на CentOS 5 из исходников
В репозитории Epel Nagios слишком уж старый:
Поэтому поставим его из исходников:
Создаем юзера для Nagios:
Ставим зависимости:
Собираем:
Добавляем его в автозапуск:
Запускаем:
yum info nagios | grep Version
Version : 2.12
Поэтому поставим его из исходников:
cd /usr/src
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz
tar -xf nagios-3.2.0.tar.gz
cd nagios-3.2.0
Создаем юзера для Nagios:
useradd nagios
Ставим зависимости:
yum -y install gd-devel png-devel jpeg-devel
Собираем:
./configure --prefix=/opt/nagios32
make all
make install # ставим саму программу
make install-init # ставим init скрипт
make install-config # ставим конфиги Nagios
make install-webconf # ставим конфиг веб-интерфейса
Добавляем его в автозапуск:
chkconfig --add nagios
chkconfig nagios on
Запускаем:
/etc/init.d/nagios start
4 самых красивых веб-интерфейса к Nagios
1. http://www.centreon.com/ - протестировал, слишком сложная установка и перегруженный интерфейс.
2. http://www.lilacplatform.com/
3. http://www.nagiosql.org/demo.html
4. http://opsview.org
Via http://www.ducea.com/2008/01/16/10-nagios-web-frontends/
2. http://www.lilacplatform.com/
3. http://www.nagiosql.org/demo.html
4. http://opsview.org
Via http://www.ducea.com/2008/01/16/10-nagios-web-frontends/
воскресенье, 17 января 2010 г.
Sorry, but Nagios is currently not checking for external commands, so your command will not be committed!
Такая ошибка вылазит при попытке перепланировать следующую проверку сервиса.
Фиксица так:
Добавляем файлы (логики действа не понимаю, так что надо убедиться, как это делать парвильно):
Применяем:
(с) http://tutos.tangui.eu.org/22-nagios-currently-not-checking-external-commands
Фиксица так:
vi /etc/nagios3/nagios.cfg
check_external_commands=1
Добавляем файлы (логики действа не понимаю, так что надо убедиться, как это делать парвильно):
touch /var/lib/nagios3/rw/nagios.cmd
dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw
dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3
chown nagios:www-data /var/lib/nagios3/rw/nagios.cmd
Применяем:
/etc/init.d/nagios3 restart
(с) http://tutos.tangui.eu.org/22-nagios-currently-not-checking-external-commands
Мониторинг панели VDSManager посредством Nagios
Открываем конфиг:
Там добавляем:
Теперь корректируем наш сервис:
Ну вот как-то так :)
vi /etc/nagios-plugins/config/http.cfg
Там добавляем:
define command {
command_name check_https_vdsmanager
command_line /usr/lib/nagios/plugins/check_http --ssl -H '$HOSTNAME$' -I '$HOSTADDRESS$' -u manager/vdsmgr
}
Теперь корректируем наш сервис:
define service {
hostgroup_name vznodes
service_description HTTPS ISPManager
check_command check_https_vdsmanager
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
Ну вот как-то так :)
Установка Nagios на Debian 5 Lenny
Установка
Ставим сервер:
Добавляем в автозапуск:
Сразу же будет установлен веб-интерфейс, управляемый конфигом:
В веб-интерфейс можно попасть по адресу:
Но для доступа к нему необходимо создать файл паролей Апача:
Ну вот и все, мы имеем стандартно добавленную в мониторинг локальную машину.
Мониторинг удаленного http сервера
Переходим в папку с конфигом:
Пусть, наш сервер называется node1.ru входит в группу vznodes и имеет на себе только 1 сервис - http.
Открываем конфиг групп:
Открываем конфиг нового хоста:
Теперь создаем открываем файл со списком сервисов для хост-групп и добавляем туда:
Список всех доступных плагинов можете найти вот здесь:
Тестируем созданный конфиг:
Применяем:
источник: http://www.myelin.co.nz/post/2008/10/30/
Ставим сервер:
apt-get install -y nagios3
Добавляем в автозапуск:
update-rc.d nagios3 defaults
Сразу же будет установлен веб-интерфейс, управляемый конфигом:
/etc/apache2/conf.d/nagios3.conf
В веб-интерфейс можно попасть по адресу:
https://xx.xx.xx.xx/nagios3
Но для доступа к нему необходимо создать файл паролей Апача:
htpasswd -c /etc/nagios3/htpasswd.users nagiosadmin
Ну вот и все, мы имеем стандартно добавленную в мониторинг локальную машину.
Мониторинг удаленного http сервера
Переходим в папку с конфигом:
cd /etc/nagios3/conf.d
Пусть, наш сервер называется node1.ru входит в группу vznodes и имеет на себе только 1 сервис - http.
Открываем конфиг групп:
vi hostgroups_nagios2.cfg
define hostgroup {
hostgroup_name vznodes
#отображаемое имя
alias OpenVZ Servers
members node1.ru
}
Открываем конфиг нового хоста:
vi host-node1-ru.cfg
define host {
host_name node1.ru
alias OpenVZ Node1
address xx.xx.xx.xx
use generic-host
}
Теперь создаем открываем файл со списком сервисов для хост-групп и добавляем туда:
vi services_nagios2.cfg
define service {
hostgroup_name vznodes
service_description HTTPS Check
check_command check_https_hostname
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
Список всех доступных плагинов можете найти вот здесь:
ls -al /etc/nagios-plugins/config/
Тестируем созданный конфиг:
cd ..
nagios3 -v nagios.cfg
Применяем:
/etc/init.d/nginx restart
источник: http://www.myelin.co.nz/post/2008/10/30/
Подписаться на:
Сообщения
(
Atom
)