System.run в Zabbix на примере мониторинга кластера Proxmox

System.run довольная простая, но в то же время очень полезная проверка. Прямо в гуе заббикса в активной проверке указываем system.run(команда) и получаем её вывод. Получается, с помощью этой проверки мы можем получать какие угодно метрики и состояния, которые можем получить из комадной строки. И это всё "от и до" в веб-гуе заббикса, в отличие от UserParameter.

Самое важное, что можем узнать о кластере из комманды pvecm:

  • Статус кластера
  • Количество нод в кластере
  • Активные ноды
  • Зафейленые ноды

Все значения переменных я получал эксперементальным путём, выключая ноды.

Статус кластера можем получить из состояния переменной Quorate. Если Yes - всё ок, No - не ок. Нужное значение отфильтруем с помощью регулярного выражения

Но текстовое значение нам не нужно, нужно 1 либо 0. Параметр "-с" grep даёт количество строк, которое соответствует запрошенному значению, при grep -c Yes, мы как раз получим то, что нужно

Вешаем триггер, проверяющим последнее значение, если последнее значение не будет равно 1 - триггер загорится

За общее количество нод отвечает переменная Expected votes

За количество активных нод отвечает переменная Nodes

Переменной, которая показывает зафейленые ноды в promox версии 5.2, нет. Поэтому будем вычитать из общего количества нод активные ноды. С помощью комманды paste делаем выражение и скармливаем его bc, которое уже делает вычитание

Так же вешаем простой тригер. Он сработает, если это значение больше нуля

Ещё надо проверять службы pve-manager и pve-cluster. Zabbix 3.4 ещё пока не умеет смотреть статус служб в systemd. Поэтому и здесь используем system.run

Уверен, что можно не вызывать два раза grep каждый раз. Если знаете как - прошу в комментарии.

 

 

Закладка Постоянная ссылка.

Отправить ответ

avatar
  Subscribe  
Notify of