На сегодняшний день, далеко не каждый доволен используемой системой мониторинга ИТ инфраструктуры, а у некоторых она попросту отсутствует. Многие из них имеют явные проблемы с удобством использования, сложностью конфигурации и невысокой производительностью. Именно поэтому, предлагаю взглянуть на новый форк Nagios — Icinga 2, который готов порадовать нас модульной архитектурой, удобным web-интерфейсом, генерацией отчетов и превосходной скорость работы!
О самой системе
На первый взгляд Icinga 2 сразу располагает к себе приятным на вид веб интерфейсом, с большим количеством различных представлений хостов и сервисов (различные списки, календарь, сетка), но это далеко не все плюсы данной системы мониторинга.
Стиль конфигурации отличается от её предыдущей версии, он имеет обьектно-ориентированный формат (схож с Puppet) и позволяет определять host/service зависимости и отношения parent/child для хостов. Зависимости в Icinga 2 являются прямыми, они могут быть определены как host-host, service-service или смешанными host-service и service-host. Обьем конфигурации может быть сведен к минимуму путем применения шаблонов к обьектам. В процессе эксплуатации системы вы поймете, насколько это удобно. Лично я, всегда был недоволен отсутствием возможности настройки мониторинга через веб интерфейс, в виду запутанности конфигурационных файлов, но в данном случае этому рад.
Icinga2 построена с ориентацией на производительность, имеет многопоточный дизайн и может выполнять тысячи проверок в секунду. Сама система может быть установлена в виде высокодоступного кластера или одиночного экземпляра.
Так же высокодоступные кластеры могут быть объединены в распределенную установку, в которой операции рассредоточены по нескольким сайтам. Репликация может быть изолирована для её осуществления только между основной и вторичной зоной. Вторичные зоны могут быть как полноценными экземплярами Icinga 2, с локальной базой данных IDO и пользовательским интерфейсом, так и простыми экземплярами выполняющими проверки.
Icinga 2 поставляется с несколькими движками и практически любой аддон может быть легко интегрирован, в частности модуль Perfdata включен изначально. Например, Icinga 2 предлагает интеграцию популярных инструментов графического отображения производительности, таких как PNP4Nagios, inGraph и Graphite.
Настройка
Установку самой Icinga 2 рассматривать нет смысла, так как она проста и предельно понятно описана в документации, в моем случае она установлена на CentOS 7 и PostgreSQL. Вначале, не забудьте установить EPEL:
yum install epel-release
Так же при её настройке через веб интерфейс необходимо использовать две базы, а не одну (иначе возникнет ошибка создания пользователя).
Для полноценного мониторинга средствами WMI нам понадобится несколько плагинов и подготовленный Windows Server.
Вначале установим wmic и Сheck WMI Plus используя пошаговое руководство, располагающееся здесь.
Далее потребуется подготовить Windows Server к обработке входящих WMI запросов, для этого вводим в командной строке:
winrm quickconfig
Пользователь от имени которого будем подключаться к серверу должен находиться в группе локальных администраторов, а так же не забываем про межсетевой экран.
Для проверки, два раза запускаем:
/opt/nagios/bin/plugins/check_wmi_plus.pl -m checkcpu -H HOST -u USER -p PASS
Теперь перейдем к конфигурации самой Icinga 2.
Основные конфигурационные файлы располагаются в /etc/icinga2/conf.d/
Подготовим группу для наших Windows серверов, добавив в файл groups.conf следующее:
object HostGroup "windows-servers" { display_name = "Windows Servers" assign where host.vars.os == "Windows" }
В данную группу будут попадать все хосты в конфигурации которых присутствует элемент:
host.vars.os = "Windows"
Опишем использование плагина Check WMI Plus, для этого откроем commands.conf и добавим следующее содержимое:
object CheckCommand "check_wmi" { import "plugin-check-command" command = [ WmiPluginDir + "/check_wmi_plus.pl" ] arguments = { "--inidir" = "$wmi_inidir$" "-H" = "$host.name$" "-A" = "$wmi_authfile_path$" "-m" = "$check_mode$" "-s" = "$wmi_submode$" "-a" = "$wmi_arg1$" "-o" = "$wmi_arg2$" "-3" = "$wmi_arg3$" "-4" = "$wmi_arg4$" "-y" = "$wmi_delay$" "-w" = "$wmi_warn$" "-c" = "$wmi_crit$" "--nodatamode" = { set_if = "$wmi_nodatamode$" } } vars.wmi_authfile_path = "/etc/icinga2/wmi.auth" vars.wmi_inidir = "/opt/nagios/bin/plugins/check_wmi_plus.d" vars.wmi_nodatamode = false }
Создадим файл авторизации для плагина (/etc/icinga2/wmi.auth) со следующим содержимым:
username=user@domain.domain password=pass domain=
Зададим значение константе в файле constants.conf:
const WmiPluginDir = "/opt/nagios/bin/plugins"
Создадим шаблон для наших сервисов в templates.conf:
template Service "wmi-service" { import "generic-service" check_command = "check_wmi" check_interval = 1m retry_interval = 1m }
Здесь можно задать желаемый интервал проверок.
На странице плагина есть примеры конфигурации сервисов для Nagios, нам же, остается немного их отредактировать.
Например, добавим в файл services.conf следующий сервис:
apply Service "MSSQL: General Statistics" { import "wmi-service" vars.check_mode = "checksql" vars.wmi_submode = "general" vars.wmi_arg1 = host.vars.sql assign where host.vars.sql ignore where host.vars.disable_wmi }
Добавим хост в файл hosts.conf:
object Host "sql" { address = "X.X.X.X" check_command = "hostalive" vars.os = "Windows" vars.sql = "MSSQL***_MSSQL***" } # *** - название экземпляра SQL сервера
В данном примере сервис «MSSQL: General Statistics» будет применяться к хосту, у которого в конфигурации задана переменная vars.sql, а её значение будет использовано в WMI запросе, в качестве аргумента.
Остается только сделать графическое представление собираемых данных, для этого нам потребуется Graphite и его веб-модуль для нашей Icinga 2.
Установим Graphite:
yum install graphite-web /usr/bin/graphite-manage syncdb --noinput /usr/bin/graphite-build-index /usr/bin/chown -R apache:apache /var/lib/graphite-web yum install python-carbon python-whisper systemctl enable carbon-cache systemctl start carbon-cache systemctl restart httpd
Редактируем настройки apache для vhost по своему усмотрению.
Включаем использование Graphite в Icinga 2:
icinga2 feature enable graphite systemctl restart icinga2
Скачиваем веб-модуль отсюда. Распаковываем в папку /usr/share/icingaweb2/modules и переименовываем корневую папку модуля в graphite(иначе возникнет ошибка). Создаем конфигурационный файл со следующим содержимым:
[graphite] metric_prefix = icinga base_url = http://172.18.200.15/render?
Теперь остается включить веб-модуль (Configuration -> Modules -> graphite -> enable) и насладиться результатом:
PS: В следующей части рассмотрим мониторинг сетевого оборудования.
ссылка на оригинал статьи http://habrahabr.ru/post/262115/
Добавить комментарий