понедельник, 26 декабря 2016 г.

Мониторинг состояния сервера VMware ESXi средствами zabbix (VMware Health Status, Zabbix)

Данная статья описывает настройку мониторинга состояния сервера с VMware ESXi средствами Zabbix.


В моем случае используется zabbix 3.2 на ОС CentOS 7. Было протестировано с серверами на VMware ESXi 4.1 и 5.5.

Данный мануал предполагает, что у вас уже есть рабочая и настроенная система мониторинга zabbix 3.2, и далее будет описываться только подключение узла VMware ESXi к системе мониторинга. Про первичную установку и настройку zabbix 3.2 на CentOS 7 можно прочесть например тут: http://serveradmin.ru/ustanovka-i-nastroyka-zabbix-3-2-na-centos-7/



1.     Первое, что нам необходимо будет сделать – это внести изменения в настройки zabbix. Открываем файл zabbix-server.conf (на CentOS 7 он расположен по пути /etc/zabbix/zabbix-server.conf), и раскомментируем и изменим следующие параметры:

StartVMwareCollectors=5
VMwareFrequency=60
VMwareCacheSize=16M

Сохраняем изменения и перезапускаем zabbix server. В CentOS 7 это делается так:

# systemctl restart zabbix-server.service

2.  Далее необходимо создать пользователя на сервере VMware ESXi с правами Read-Only. Для этого заходим в VMware vSphere Client и подключаемся к необходимому серверу VMware ESXi.

Заходим во вкладку Local Users & Groups (как показано на картинке ниже).



Щелкаем правой кнопкой мыши на поле со списком пользователей и в появившемся меню выбираем «Add…» (как показано на картинке).



В открывшемся окне заполняем поля «Login» - имя пользователя, «User Name» - более полное название пользователя (служит просто для информации и не является обязательным для заполнения) и в поля «Password» и «Confirm» вводим пароль. В конце нажимаем кнопку «OK».



Далее идем во вкладку «Permissions». Щелкаем на поле с пользователями правой кнопкой мыши и в открывшемся меню выбираем «Add Permission…».



В открывшемся окне нажимаем кнопку «Add…».



В еще одном открывшемся окне выделяем созданного нами пользователя и нажимаем кнопку «Add». После этого данный пользователь должен появится в поле «Users:». Далее жмем кнопку «OK».



В оставшемся окне проверяем, что выбранный нами пользователь появился в левой колонке и права выставлены Read-only. После этого нажимаем кнопку «OK».



Настройки на сервере VMware ESXi закончены и можно закрыть VMware vSphere Client.


3. Далее необходимо добавить в zabbix шаблоны для VMware. Для этого проходим по ссылке https://www.zabbix.org/wiki/Zabbix_Templates/Official_Templates и скачиваем шаблоны. Необходимы 3 шаблона под вашу версию. В моем случае это:
Template_Virt_VMware-3.2.0.xml
Template_Virt_VMware_Hypervisor-3.2.0.xml
Template_Virt_VMware_Guest-3.2.0.xml

Для загрузки шаблонов заходим в WEB-интерфейс мониторинга zabbix. Далее Настройка -> Шаблоны.


  
В открывшейся форме нажимаем «Выберите файл» и выбираем один из скачанных шаблонов. Все галочки оставляем по умолчанию и нажимаем кнопку «Импорт». Данное действие необходимо будет повторить для всех 3-х шаблонов.
  

  

После загрузки шаблонов они должны появиться в списке шаблонов (Настройка -> Шаблоны), проверяем:
Template Virt VMware
Template Virt VMware Hypervisor
Template Virt VMware Guest


4.   Далее необходимо узнать UUID нашего сервера с VMware ESXi, он будет необходим при добавлении узла сети. Для этого проходимо пройти по ссылке https://127.0.0.1/mob/?moid=ha-host&doPath=hardware.systemInfo (127.0.0.1 необходимо заменить на ip адрес сервера VMware ESXi), в появившемся окне запроса вбиваем имя пользователя и пароль, которые мы создали во 2-м пункте. Должна отобразиться страница следующего вида:


UUID необходимо скопировать (без кавычек).

  
5.   Добавляем новый узел. Для этого заходим в Настройка -> Узлы сети -> «Создать узел сети» (показано на картинке).




В открывшейся форме в «Имя узла сети» вбиваем UUID полученный в 4-м пункте, в поле «Видимое имя» вбиваем название сервера (произвольное, оно будет отображаться в списке узлов сети). Выбираем к какой группе будет принадлежать данный сервер (в моем случае «Hypervisors»), и в «IP адрес» вместо 127.0.0.1 вписываем ip адрес сервера VMware ESXi (показано на рисунке ниже).



Переходим на вкладку «Шаблоны» и выбираем наши 3 ранее добавленных шаблона, нажав на кнопку «Выбрать». После выбора нажимаем кнопку «Добавить», которая подчеркнута красным на рисунке ниже.



После этого шаблоны должны присоединиться, о чем будет свидетельствовать информация «Присоединенные шаблоны», как показано ниже на рисунке:

  

Переходим на вкладку «Макросы». Жмем на кнопку «Добавить», которая подчеркнута красным на рисунке ниже, чтобы увеличить возможно добавления количества макросов до 3-х полей. В поля вбиваем следующие значения:
{$URL}  - https://127.0.0.1/sdk (вместо 127.0.0.1 должен быть ip адрес вашего сервера);
{$USERNAME} – имя пользователя, которые мы создали во 2-м пункте;
{$PASSWORD} – пароль вышеуказанного пользователя.
  


По окончанию нажимаем кнопку «Добавить», выделенную красным овалом. После этого узел должен добавиться и появиться в списке Настройка -> Узлы сети.


6. Если все настроено корректно, не менее чем через 60 минут мы должны увидеть приходящие с сервера данные. Просмотреть их можно в Мониторинг –> Последние данные -> выбрать нужный узел сети в «Узлы сети» и нажать «Применить».

Также в данных шаблонах применяется автоматическое обнаружение виртуальных машин сервера. Увидеть их можно в Настройка -> Узлы сети, все их названия будут начинаться с «Discover VMware VMs: название_VM» и принадлежать они будут группе «vm» (еще раз обращу внимание, что произойдет это не ранее чем через 60 минут после добавления узла сети).


7.   Добавление триггера к шаблону.
Для меня стояла задача мониторинга общего состояния сервера VMware ESXi и оповещения в случае каких-либо проблем с ним. Задачи мониторинга виртуальных машин средствами VMware ESXi не стояло, т.к. на каждой виртуальной машине стоит свой клиент zabbix. Поэтому я создал 1 триггер который смотрит за параметром Health Status (vmware.hv.status[]).

Нормальное значение данного параметра равно 1, если с сервером возникаю какие-либо проблемы – то это значение меняется (то на что оно измениться зависит от критичности проблемы). Для выяснения конкретики проблемы с сервером я смотрю уже VMware vSphere Client (Configuration -> Health Status).

Итак, для создания триггера заходим в Настройка -> Шаблоны. Далее находим нужный нам шаблон «Template Virt VMware Hypervisor» и нажимаем на «Тригеры».
  



Нажимаем на «Создать триггер», как показано на картинке ниже.



В открывшейся форме вписываем имя триггера, которые будет отображаться в списке неисправностей. Используем {HOST.NAME}, чтобы взять имя хоста, на котором произошла проблема. Ставим необходимую важность (в моем случае «Высокая»). И жмем кнопку «Добавить» около поля «Выражение».



В открывшейся форме жмем «Выбрать».



В открывшейся форме выбираем параметр «Overall status».




Значение «Функция» выбираем «Последнее (самое новое) T значение NOT N» и в поле «N» пишем цифру 1. Далее жмем «Вставить».



После этого, поле «Выражение» должно заполниться как показано ниже на картинке. Если все верно – жмем кнопку «Добавить».




Все! Триггер успешно создан.


3 комментария:

  1. Все сделал как указано (у меня правда версия esxi 6.5)
    Но в списке элементов данных созданного узла в конце строки каждого из них написано что соединение не установлено, якобы неверный логин или пароль (проверил несколько раз, даже закопипастил пароль и в заббиксе его поставил и в пользователе в vmware) - не помогло. Как можно быстро проверить, есть ли доступ к необходимым данным на хосте?

    ОтветитьУдалить
    Ответы
    1. Добрый день. По esxi 6.5 не подскажу и нет установленного, чтобы проверить. Чтобы проверить правильность логина и пароля, необходимо проделать пункт 4, только вместо адреса 127.0.0.1 необходимо вбить ip адрес вашего esxi сервера. Так как раз вылезет форма запроса логина и пароля.

      Удалить
  2. Добрый день.
    В шаблоне мониторится параметр vmware.hv.status[,], который на гипервизорах на оборудовании HP Proliant остается зеленым даже при наличии аппаратных проблем, например при деградации дисковых массивов.
    Для решения этой проблемы я бы порекомендовал дополнительно мониторить параметр vmware.hv.sensor.health.state[,], которого нет в шаблоне. Он легко добавляется в шаблон "Template Virt VMware Hypervisor" и в этом же шаблоне к нему желательно подключить триггер, срабатывающий по условию <>1, это позволит мониторить аппаратные проблемы точнее.
    Информация о других ключах мониторинга ESX находится здесь:
    https://www.zabbix.com/documentation/3.0/ru/manual/config/items/itemtypes/simple_checks/vmware_keys

    ОтветитьУдалить