Найти в Дзене
Записки сисадмина

Zabbix. Мониторинг. Создаем свои метрики.

Захотелось чего-то особенного. Вот чтобы не как у всех. Бывало такое, да? А когда это самое «особенное» - это часть твоей работы, начинается мозговой штурм. Вот подключили мы клиентов к системе мониторинга, даже шаблоны стандартные прописали, а все равно метрик не хватает. В принципе, можно углубиться в вопрос, поискать в репозиториях другие шаблоны. А можно написать метрики самому. Ведь наши золотые руки работают быстрее и надежнее. А как эти метрики прикрутить к zabbix серверу? Давайте разбираться. mkdir /etc/zabbix/scripts chown -R zabbix:zabbix /etc/zabbix/scripts/ touch /etc/zabbix/scripts/test_metric.sh #!/bin/bash echo $((1 + $RANDOM % 10)) chmod 777 /etc/zabbix/scripts/test_metric.sh chown zabbix:zabbix /etc/zabbix/scripts/test_metric.sh UserParameter=Custom_metric,/etc/zabbix/scripts/test_metric.sh systemctl restart zabbix-agent Имя - Указываем то имя, которое будет понятно лично нам. Тип - Оставляем "Zabbix агент", так метрика будет запрашиваться у агента. Ключ - Указываем
Оглавление

Захотелось чего-то особенного. Вот чтобы не как у всех. Бывало такое, да? А когда это самое «особенное» - это часть твоей работы, начинается мозговой штурм.

Вот подключили мы клиентов к системе мониторинга, даже шаблоны стандартные прописали, а все равно метрик не хватает.

В принципе, можно углубиться в вопрос, поискать в репозиториях другие шаблоны. А можно написать метрики самому. Ведь наши золотые руки работают быстрее и надежнее. А как эти метрики прикрутить к zabbix серверу?

Давайте разбираться.

Настраиваем клиента

  • Создадим папку, в которой будут лежать скрипты, собирающие метрики:
mkdir /etc/zabbix/scripts
  • Выдадим права zabbix на эту папку:
chown -R zabbix:zabbix /etc/zabbix/scripts/
  • Создадим наш скрипт:
touch /etc/zabbix/scripts/test_metric.sh
  • Для теста - добавим в него генерацию случайных чисел от 1 до 10
#!/bin/bash
echo $((1 + $RANDOM % 10))
  • Сделаем наш скрипт исполняемым и выдадим zabbix права на его запуск:
chmod 777 /etc/zabbix/scripts/test_metric.sh
chown zabbix:zabbix /etc/zabbix/scripts/test_metric.sh
  • В /etc/zabbix/zabbix_agentd.conf в самом низу дописываем нашу новую метрику в формате UserParameter=[ключ метрики],[скрипт, который будет выдавать значение]
-2
UserParameter=Custom_metric,/etc/zabbix/scripts/test_metric.sh
  • Перезапускаем zabbix agent на клиенте:
systemctl restart zabbix-agent

Добавляем метрику на сервер

  • На сервере заходим в Сбор данных -> Узлы сети -> Наш клиент -> Элементы данных и нажимаем сверху справа кнопку "Создать элемент данных".
-3

Имя - Указываем то имя, которое будет понятно лично нам.

Тип - Оставляем "Zabbix агент", так метрика будет запрашиваться у агента.

Ключ - Указываем тот же, что и в UserParameter на клиенте.

Тип информации - В нашем случае - целое положительное, так как это было указано в скрипте. Если вы укажете целое, но zabbix сервер получит дробное число, метрика упадет в ошибку. Будьте внимательны!

Интервал обновления - по умолчанию 1 минута, можно выставить свое значение.

  • После заполнения можно нажать на "Тест" и проверить, отрабатывает ли наша новая метрика.
-4

Если все сделали правильно, при нажатии кнопки "получить значение и протестировать" вы увидите изменения в поле "Значение".

Создаем триггер

Логично предположить, что если нам понадобилось мониторить свою особенную метрику, нам нужно как-то реагировать на ее аномальные изменения. Соответственно, нам нужно оповещать ответственных. А в zabbix именно триггеры запускают процесс оповещения.

Давайте же создадим триггер, который будет реагировать в том случае, если наша метрика превысит значение 5.

  • Заходим в Сбор данных -> Узлы сети -> Наш клиент -> Триггеры и нажимаем сверху справа кнопку "Создать триггер".
-5

Имя - Как и в имени элемента данных, мы вписываем то, что будет нам интуитивно понятно.

Важность - Указываем, насколько наш триггер критичен.

Выражение - Самое важное. Советую использовать конструктор выражений:

-6
  • После того, как в конструкторе мы собрали все условие, нажимаем кнопку "добавить" под окном конструктора выражения.
-7
  • Сохраняем наш триггер и ждем оповещения:
-8

В конструкторе выражения триггеров есть очень много вариаций логических условий, которые вы можете применять к своим элементам данных. Советую на досуге разобраться с ними.

Так мы создали свою новую метрику, которой не было в шаблоне и настроили оповещение о ее аномально высоком значении.