Безагентный мониторинг Windows систем

Общая
Одной из возможностей системы мониторинга Icinga2 является безагентный мониторинг операционных систем Windows при помощи плагина check_wmi_plus. Как вы наверное уже поняли основывается он на инструменте управления Windows WMI.
Данный плагин находится в свободном распространении и доступен для загрузки на http://www.edcint.co.nz/checkwmiplus/
В статье рассматривается установка в ОС Debian 9.5
Подготовка к установке check_wmi_plus
Прежде всего в систему нам надо установить дополнительные компоненты для удовлетворения зависимостей работы данного плагина:
apt update
apt upgrade
apt install libmonitoring-plugin-perl pkg-config libconfig-inifiles-perl libdatetime-perl libscalar-list-utils-perl libnumber-format-perl autoconf build-essential
Для работы плагина нам понадобится WMI Client. Скачать мы его можем с https://assets.nagios.com/downloads/nagiosxi/agents/wmi-1.3.14.tar.gz
Производим загрузку:
wget http://www.openvas.org/download/wmi/wmi-1.3.14.tar.bz2
Распаковываем:
tar xvf wmi-1.3.14.tar.bz2
Переходим в папку:
cd wmi-1.3.14
Для успешной установки необходимо отредактировать файл pidl
:
nano Samba/source/pidl/pidl
583 строку заменить на:
@$pidl || die "Failed to parse $idl_file";
Компилируем данный клиент:
make "CPP=gcc -E -ffreestanding"
Компиляция займёт несколько минут.
В конце компиляции могут появится ошибки - это допустимо.
Файл wmic после компиляции появится в /bin/
Проверяем правильность работы клиента.
Для этого нам понадобится узел под управление ОС Windows.
Возможные ошибки и их устранение описаны тут.
На сервере под управлением Windows необходимо создать учётную запись с правами Администратора, от чьего имени плагин будет обращаться к ОС Windows.
Команда для проверки работоспособности WMI Клиента:
wmic -U [domain/]adminuser%password //host "select caption from Win32_OperatingSystem"
Если все сделано правильно то вывод ответа клиента будет примерно такой:
CLASS: Win32_ComputerSystem
Caption
Microsoft Windows Server 2012 R2 Standard
Возможные ошибки и их устранение.
Ошибка NT_STATUS_ACCESS_DENIED - Access denied
[wmi/wmic.c:196:main()] ERROR: Login to remote object.
NTSTATUS: NT_STATUS_ACCESS_DENIED - Access denied
1. Проверяем настройки брандмауэра Windows.
Должны быть разрешены входящие соединения для Инструментария управления Windows.
2. В том случае, если у вас не используется Active Directory то необходим проследить, что бы созданный вами пользователь, помимо группы Администраторы, входил в группу Пользователи DCOM.
Ошибка NT code 0x80041003
[wmi/wmic.c:196:main()] ERROR: Login to remote object.
NTSTATUS: NT code 0x80041003 - NT code 0x80041003
1. Данная ошибка так же появляется, если не используется Active Directory. И для ее устранения необходимо добавить созданного пользователя в группу безопасности инструментария управления Windows CIMV2 и добавить ему все возможные права.
Установка check_wmi_plus.
Скачиваем и распаковываем check_wmi_plus:
wget http://edcint.co.nz/checkwmiplus/sites/default/files/check_wmi_plus.v1.63.tar.gz
tar xzvf check_wmi_plus.v1.63.tar.gz
В данном архиве есть несколько папок и файлов:
1. Для простоты описания работы плагина файл check_wmi_plus.pl
после распаковки был помещен в /usr/lib/nagios/plugins/
;
2. Папка etc в архиве содержит папку check_wmi_plus
- ее перемещаем в /etc/
со всем ее содержимым;
3. После перемещения папки переходим /etc/check_wmi_plus
и переименовываем check_wmi_plus.conf.sample
в check_wmi_plus.conf
.
Настройка check_wmi_plus.conf
Для успешной работы плагина check_wmi_plus необходимо внести несколько изменений в /etc/check_wmi_plus/check_wmi_plus.conf
1. $base_dir=
указать папку расположения плагина. В моем случае $base_dir='/usr/lib/nagios/plugins';
2. $wmic_command=
указать путь к wmic клиенту, который мы установили выше. В моем случае:
$wmic_command="/bin/wmic";
Для проверки работоспособности плагина выполним команду:
/usr/lib/nagios/plugins/check_wmi_plus.pl -H host_address -u [domain/]adminuser -p password -s os -m info
И получим ответ на подобии:
OK - OS is Microsoft Windows 7 Профессиональная , Service Pack 1, Installation Timestamp=20161205140553.000000+180 (0.9 days old)|'OS Installation Age'=0.9days;
Описание работы плагина check_wmi_plus в commands.conf
Прежде чем описать работу плагина нам необходимо создать файл хранящий данные о авторизации на сервере Windows.
Сделаем это простым методом:
В Папке с /etc/icinga2/
создаём файл wmi.auth
и наполняем его следующими строками:
username=adminuser
password=password
domain=[domain]
Далее описываем работу плагина в файле /etc/icinga2/conf.d/commands.conf
object CheckCommand "check_wmi" {
import "plugin-check-command"
command = [ PluginDir + "/check_wmi_plus.pl" ]
arguments = {
"--inidir" = "$wmi_inidir$"
"-H" = "$host.address$"
"-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 = "/etc/check_wmi_plus/check_wmi_plus.d"
vars.wmi_nodatamode = false
}
Описываем шаблон плагина
В /etc/icinga2/conf.d/templates.conf
template Service "wmi-service" {
import "generic-service"
check_command = "check_wmi"
check_interval = 1m
retry_interval = 1m
}
Описываем сервис на примере сбора информации о версии установленной ОС
В файле /etc/icinga2/conf.d/services.conf
apply Service "Windows Version" {
import "wmi-service"
vars.check_mode = "info"
vars.wmi_submode = "os"
assign where host.vars.os == "Windows"
ignore where host.vars.disable_wmi
}
Полный перечень команд, поддерживающихся плагином можно посмотреть тут.
Ставим на мониторинг машину под управлением ОС Windows.
Так как в предыдущей статье мы решили разделять машин по операционной системе то в папке /etc/icinga2/conf.d/
создаём файл windows.conf
и добавляем в него следующие строки:
object Host "произвольное название объекта хоста" {
address = "Ip адрес или DNS имя"
display_name = "Отображаемое имя хоста в веб-интерфейсе"
check_command = "hostalive"
vars.os = "Windows"
vars.group = "windows"
}
Проверяем конфигурацию Icinga2:
service icinga2 checkconfig
Перезапускаем сервис Icinga2:
service icinga2 restart
После этого ваш узел будет добавлен в мониторинг и и вы увидите его в вашем веб-интерфейсе.
Ошибка NT code 0x80041010
Данная ошибка может указывать как на сломанные счётчики производительности Windows, так и на проблемы доступа к state-файлу на сервере Icinga2.
Проверить права доступа поможет команда:
ls -ls /tmp/*.state
https://itcrowd.top/bezagentnyj-monitoring-windows-sistem#sigProId2e813ce6be
Все выведенные файлы должны иметь право на чтение и запись для того пользователя, от чьего имени запущена Icinga2.
Файлы с неправильным доступом можно просто удалить.
rm -rf /tmp/*.state
- Просмотров: 10056
cp bin /bin/wmic нет такого файла или каталога,
вообще не компилируется, хотелось бы увидеть мануалы по настройке или на debian 9
или хотя бы рабочие под debian 8, жаль а так много полезного по данному софту.
Вариант рабочий под Debian 8 и 9 - подтверждение https://itcrowd.top/%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B5/icinga2demo. Напишите в личку
ругается на завершающий символ.
голову я себе уже сломал
* checking Icinga2 configuration. Check '/var/log/icinga2/startup.log' for details.
adman@icinga:~$ sudo service icinga2 checkconfig
* checking Icinga2 configuration
information/cli: Icinga application loader (version: r2.7.0-1)
information/cli: Loading configuration file(s).
critical/config: Error: syntax error, unexpected $end, expecting '}'
Location: in /etc/icinga2/conf.d/commands.conf: 165:1-165:1
/etc/icinga2/conf.d/commands.conf(163): vars.wmi_inidir = "/etc/check_wmi_plus/check_wmi_plus.d/"
/etc/icinga2/conf.d/commands.conf(164): vars.wmi_nodatamode = flase
/etc/icinga2/conf.d/commands.conf(165): }
^
* checking Icinga2 configuration. Check '/var/log/icinga2/startup.log' for details.
Раз выдает значит ошибка - пришлите файл на e-mail, посмотрю
RSS лента комментариев этой записи