Мониторинг ESXi в Icinga2. Часть 1.

Main

Оценка: 84.34% - 15 Голосов

Общая

Сегодня мы рассмотрим как можно поставить на мониторинг сервера под управлением 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
  • Просмотров: 12772
Добавить комментарий