Тут я устанавливал Icinga 2: http://blog.amet13.name/2015/11/icinga-2-postgresql-nginx.html
Тут я рассказал, как подключить удаленный хост к мониторингу: http://blog.amet13.name/2015/11/icinga-2.html
Тут я когда-то устанавливал самописный плагин для Nagios: http://blog.amet13.name/2014/06/nagios.html
В этой заметке я расскажу, как добавить сервисы для мониторинга и подключу самописный плагин к Icinga 2.
Icinga 2 обратно совместима с Nagios, поэтому плагины под Nagios будут работать и в Icinga 2.
Условные обозначения хостнйемов: master - непосредственно нода мониторинга, satellite - удаленный хост, который мониторится.
Если плагины Nagios не установлены, то установим их:
satellite ~# yum install nagios-plugins-all
Список всех настроенных сервисов можно найти тут:
satellite ~# cat /usr/share/icinga2/include/command-plugins.conf | grep 'object CheckCommand' | cut -f3 -d' '
А сами плагины находятся тут:
satellite ~# ls /usr/lib64/nagios/plugins/
Учтите, что в конфиге могут быть прописаны команды, но плагина для этого сервиса в системе может и не быть.
Пример добавления нового плагина проверки DNS на удаленном хосте:
satellite ~# vim /etc/icinga2/conf.d/services.conf
...
apply Service "dns" {
import "generic-service"
check_command = "dns"
vars.dns_lookup = "site.ru"
vars.dns_server = "8.8.8.8"
vars.dns_expected_answer = "1.2.3.4"
assign where host.name == NodeName
}
Имена переменных (vars.{name}) можно посмотреть в конфиге /usr/share/icinga2/include/command-plugins.conf.
Можно вручную проверить команду:
satellite ~# /usr/lib64/nagios/plugins/check_dns -H site.ru -s 8.8.8.8
DNS OK: 0.049 seconds response time. site.ru returns 1.2.3.4|time=0.048978s;;;0.000000
Применяем изменения:
satellite ~# systemctl restart icinga2
На мастере клонируем изменения в репозиторий и перезапускаем сервис:
master ~# systemctl restart icinga2
master ~# icinga2 node update-config
...
Adding service 'dns'
check_command = "dummy"
host_name = "site.ru"
import = [ "satellite-service" ]
zone = "site.ru"
master ~# systemctl restart icinga2
Проверяем в вебморде, все ли в порядке.
Далее для примера подключу самописный плагин.
У меня почему-то некорректно работает плагин check_mailq, поэтому я написал свой, который будет проверять количество писем в очереди.
satellite ~# cd /usr/lib64/nagios/plugins/
satellite ~# vim check_eximq
#!/bin/bash
e_ok=0
e_warning=1
e_critical=2
e_unknown=3
usage="Invalid command line usage. Use for example ./check_eximq -w 5 -c 10"
if [ -z $1 ]; then
echo $usage
exit $e_unknown
fi
while getopts ":w:c:" options
do
case $options in
w ) warning=$OPTARG ;;
c ) critical=$OPTARG ;;
* ) echo $usage
exit $e_unknown ;;
esac
done
# determine queue size
qsize=$(exim -bpc)
if [ -z $qsize ]
then
exit $e_unknown
fi
if [ $qsize -ge $critical ]; then
retval=$e_critical
echo "QUEUE CRITICAL - $qsize mails in queue"
elif [ $qsize -ge $warning ]; then
retval=$e_warning
echo "QUEUE WARNING - $qsize mails in queue"
elif [ $qsize -lt $warning ]; then
retval=$e_ok
echo "QUEUE OK - $qsize mails in queue"
fi
exit $retval
Проверяем его работоспособность:
satellite ~# ./check_eximq -w 50 -c 400
QUEUE WARNING - 311 mails in queue
Добавляем новый сервис:
satellite ~# vim /usr/share/icinga2/include/command-plugins.conf
object CheckCommand "eximq" {
import "plugin-check-command"
command = [ PluginDir + "/check_eximq" ]
arguments = {
"-w" = "$eximq_warning$"
"-c" = "$eximq_critical$"
}
}
Применяем новый сервис:
satellite ~# vim /etc/icinga2/conf.d/services.conf
apply Service "eximq" {
import "generic-service"
check_command = "eximq"
vars.eximq_warning = 400
vars.eximq_critical = 1000
assign where host.name == NodeName
}
Для того чтобы юзер icinga мог мог запустить exim, нужно добавить его в группу exim:
satellite ~# usermod -a -G exim icinga
satellite ~# cat /etc/group | grep icinga | grep exim
exim:x:93:clamscan,icinga
satellite ~# su icinga -s /bin/bash
bash-4.2$ exim -bpc
314
Иначе будет ошибка: Permission denied.
Проверяем на конфиги ошибки и ребутаем сервис:
satellite ~# icinga2 daemon -C
satellite ~# systemctl restart icinga2
На мастере тянем изменения в репозиторий:
master ~# systemctl restart icinga2
master ~# icinga2 node update-config
master ~# systemctl restart icinga2
Проверяем:
Тут я рассказал, как подключить удаленный хост к мониторингу: http://blog.amet13.name/2015/11/icinga-2.html
Тут я когда-то устанавливал самописный плагин для Nagios: http://blog.amet13.name/2014/06/nagios.html
В этой заметке я расскажу, как добавить сервисы для мониторинга и подключу самописный плагин к Icinga 2.
Icinga 2 обратно совместима с Nagios, поэтому плагины под Nagios будут работать и в Icinga 2.
Условные обозначения хостнйемов: master - непосредственно нода мониторинга, satellite - удаленный хост, который мониторится.
Если плагины Nagios не установлены, то установим их:
satellite ~# yum install nagios-plugins-all
Список всех настроенных сервисов можно найти тут:
satellite ~# cat /usr/share/icinga2/include/command-plugins.conf | grep 'object CheckCommand' | cut -f3 -d' '
А сами плагины находятся тут:
satellite ~# ls /usr/lib64/nagios/plugins/
Учтите, что в конфиге могут быть прописаны команды, но плагина для этого сервиса в системе может и не быть.
Пример добавления нового плагина проверки DNS на удаленном хосте:
satellite ~# vim /etc/icinga2/conf.d/services.conf
...
apply Service "dns" {
import "generic-service"
check_command = "dns"
vars.dns_lookup = "site.ru"
vars.dns_server = "8.8.8.8"
vars.dns_expected_answer = "1.2.3.4"
assign where host.name == NodeName
}
Имена переменных (vars.{name}) можно посмотреть в конфиге /usr/share/icinga2/include/command-plugins.conf.
Можно вручную проверить команду:
satellite ~# /usr/lib64/nagios/plugins/check_dns -H site.ru -s 8.8.8.8
DNS OK: 0.049 seconds response time. site.ru returns 1.2.3.4|time=0.048978s;;;0.000000
Применяем изменения:
satellite ~# systemctl restart icinga2
На мастере клонируем изменения в репозиторий и перезапускаем сервис:
master ~# systemctl restart icinga2
master ~# icinga2 node update-config
...
Adding service 'dns'
check_command = "dummy"
host_name = "site.ru"
import = [ "satellite-service" ]
zone = "site.ru"
master ~# systemctl restart icinga2
Проверяем в вебморде, все ли в порядке.
Далее для примера подключу самописный плагин.
У меня почему-то некорректно работает плагин check_mailq, поэтому я написал свой, который будет проверять количество писем в очереди.
satellite ~# cd /usr/lib64/nagios/plugins/
satellite ~# vim check_eximq
#!/bin/bash
e_ok=0
e_warning=1
e_critical=2
e_unknown=3
usage="Invalid command line usage. Use for example ./check_eximq -w 5 -c 10"
if [ -z $1 ]; then
echo $usage
exit $e_unknown
fi
while getopts ":w:c:" options
do
case $options in
w ) warning=$OPTARG ;;
c ) critical=$OPTARG ;;
* ) echo $usage
exit $e_unknown ;;
esac
done
# determine queue size
qsize=$(exim -bpc)
if [ -z $qsize ]
then
exit $e_unknown
fi
if [ $qsize -ge $critical ]; then
retval=$e_critical
echo "QUEUE CRITICAL - $qsize mails in queue"
elif [ $qsize -ge $warning ]; then
retval=$e_warning
echo "QUEUE WARNING - $qsize mails in queue"
elif [ $qsize -lt $warning ]; then
retval=$e_ok
echo "QUEUE OK - $qsize mails in queue"
fi
exit $retval
Делаем файл исполняемым:
satellite ~# chmod +x check_eximqПроверяем его работоспособность:
satellite ~# ./check_eximq -w 50 -c 400
QUEUE WARNING - 311 mails in queue
Добавляем новый сервис:
satellite ~# vim /usr/share/icinga2/include/command-plugins.conf
object CheckCommand "eximq" {
import "plugin-check-command"
command = [ PluginDir + "/check_eximq" ]
arguments = {
"-w" = "$eximq_warning$"
"-c" = "$eximq_critical$"
}
}
Применяем новый сервис:
satellite ~# vim /etc/icinga2/conf.d/services.conf
apply Service "eximq" {
import "generic-service"
check_command = "eximq"
vars.eximq_warning = 400
vars.eximq_critical = 1000
assign where host.name == NodeName
}
Для того чтобы юзер icinga мог мог запустить exim, нужно добавить его в группу exim:
satellite ~# usermod -a -G exim icinga
satellite ~# cat /etc/group | grep icinga | grep exim
exim:x:93:clamscan,icinga
satellite ~# su icinga -s /bin/bash
bash-4.2$ exim -bpc
314
Иначе будет ошибка: Permission denied.
Проверяем на конфиги ошибки и ребутаем сервис:
satellite ~# icinga2 daemon -C
satellite ~# systemctl restart icinga2
На мастере тянем изменения в репозиторий:
master ~# systemctl restart icinga2
master ~# icinga2 node update-config
master ~# systemctl restart icinga2
Проверяем:
Комментариев нет:
Отправить комментарий