Мониторинг ESXi в Icinga2. Часть 1.
Общая
Сегодня мы рассмотрим как можно поставить на мониторинг сервера под управлением VMware ESXi
Для простого наблюдения за сервером можно использовать плагин check_vmware_esx который доступен для загрузки тут.
Плагин умеет наблюдать за состоянием CPU, сети, дисковых томов и прочего.
Данный материал подходит для Debian Stretch
Подготовка Icinga2 сервера к установке
Установим необходимые компоненты:
apt update
apt upgrade
apt install rpm perl-doc libssl-dev e2fsprogs uuid-dev libxml-libxml-perl libxml2-dev libsoap-lite-perl build-essential gcc
Установим необходимые Perl модули для работы плагина
cpan Crypt::SSLeay File::Basename HTTP::Date Getopt::Long Time::Duration Archive::Zip Crypt::SSLeay Class::MethodMaker UUID Data::Dump Time::HiRes
Установка vSphere Perl SDK for vSphere
Пакет для нужной версии ESXI можно скачать тут.
Данный архив необходимо распаковать.
В ОС Debian пакет не установится если в него не внести необходимые поправки.
В файле vmware-install.pl
необходимо найти строку:
if ( direct_command("cat /etc/*-release | grep -i ubuntu") || direct_command("cat /proc/version | grep -i ubuntu") ) {
и заменить на:
if ( direct_command("cat /etc/*-release | grep -i debian") || direct_command("cat /proc/version | grep -i debian") ) {
Сохранить и запустить:
./vmware-install.pl
Подготовка ESXI сервера к работе с плагином
На сервере ESXI необходимо создать пользователя от имени которого плагин будет обращаться.
Делается это через VMware client
в разделе Local Users & Groups
.
После создания пользователю необходимо сдать права администратора в том же клиенте в разделе Permissions.
Установка плагина
Скачиваем архив и распаковываем.
В папке с распакованным плагином выполняем команду make после чего в папке появится файл check_vmware_esx который мы копируем в папку с остальными плагинами - в моем случае /usr/lib/nagios/plugins
Описание работы плагина
Создание команды для работы плагина в commands.conf
object CheckCommand "check_esxi" {
import "plugin-check-command"
command = [ PluginDir + "/check_vmware_esx" ]
timeout = 90
arguments = {
"-u" = "$esxi_user_name$"
"-p" = "$esxi_user_psswd$"
"-H" = "$esxi_host_addres$"
"-S" = "$esxi_check_mode$"
"-s" = "$esxi_check_mode_subselect$"
"-w" = "$service.vars.warn$"
"-c" = "$service.vars.crit$"
}
vars.esxi_host_addres = "$address$"
vars.esxi_user_name = "ИМЯ СОЗДАННОГО ПОЛЬЗОВАТЕЛЯ НА СЕРВЕРЕ ESXI"
vars.esxi_user_psswd = "ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ НА СЕРВЕРЕ ESXI"
}
Создание шаблона в templates.conf
template Service "esxi-service" {
import "generic-service"
check_command = "check_esxi"
check_interval = 1m
retry_interval = 1m
}
Описание сервиса в services.conf на примере мониторинга процессора
apply Service "ESXI CPU" {
import "esxi-service"
vars.esxi_check_mode = "cpu"
assign where host.vars.os == "vmware"
vars.service_type = "CPU_load"
vars.warn = "90%"
vars.crit = "95%"
}
Добавление хоста
создаем файл esxi.conf
и добавляем в него ESXI серверы
object Host "ИМЯ ОБЪЕКТА" {
address = "IP/DNS ИМЯ"
display_name = "ОТОБРАЖАЕМОЕ ИМЯ"
check_command = "hostalive"
vars.os = "vmware"
}
Проверяем конфигурацию service icinga2 checkconfig и если все ОК перезапускаем сервер service icinga2 restart.
Возможные проблемы.
В Debian 9 есть проблемы с работой модулей VMware Perl.
Если плагин выдает:
Possible precedence issue with control flow operator at /usr/share/perl/5.20/VMware/VICommon.pm line 2147.
или
Possible precedence issue with control flow operator at /usr/share/perl/5.20/VMware/VICommon.pm line 2332.
То необходимо отредактировать файл /usr/share/perl/5.20/VMware/VICommon.pm
В этом файле ищем строку (строка 2146 или 2332)
return defined $user_agent->cookie_jar and.
$user_agent->cookie_jar->as_string ne '';
И заменяем его на
return (defined $user_agent->cookie_jar and
$user_agent->cookie_jar->as_string ne '');
<Timeout exceeded.><Terminated by signal 9 (Killed).>
Net-HTTP
и libwww-perl
perl -MCPAN -e shell
o conf urllist push http://backpan.perl.org
install GAAS/Net-HTTP-6.03.tar.gz
install GAAS/libwww-perl-6.03.tar.gz
- Просмотров: 13370