Zabbix агент позволяет собирать множество параметров с узла, но если чего-то не хватает на помощью могут прийти пользовательские параметры.
Создание скриптов
Вообще пользовательские параметры очень часто используются, чтобы выполнить какой-нибудь самописный скрипт и результат передать на сервер мониторинга. Я для примера возьму самые простые скрипты. Первый будет с помощью ping проверять доступность узла, а второй с помощью curl доступность сайта. У вас могут быть более сложные скрипты, например проверка файловых систем, точек монтирования, баз данных, или ещё чего-нибудь, что вы хотите мониторить.
Первый скрипт будет проверять доступность узла с помощью ping.
# nano /etc/zabbix/ping-check.sh #!/bin/bash if [ -z "$1" ]; then echo "Missing ip" exit fi ping -c 3 $1 &> /dev/null if [ $? -eq 0 ]; then echo "up" else echo "down" fi
Второй скрипт будет проверять доступность узла с помощью curl, по протоколу http.
# nano /etc/zabbix/http-check.sh #!/bin/bash if [ -z "$1" ]; then echo "Missing url" exit fi curl -Is --connect-timeout 1 $1 &> /dev/null if [ $? -eq 0 ]; then echo "up" else echo "down" fi
Сменим владельца скриптов на пользователя Zabbix, и дадим скриптам право выполняться только от этого владельца:
# chown zabbix:zabbix /etc/zabbix/ping-check.sh # chown zabbix:zabbix /etc/zabbix/http-check.sh # chmod u+x /etc/zabbix/ping-check.sh # chmod u+x /etc/zabbix/http-check.sh
А вот пример работы этих скриптов:
# /etc/zabbix/ping-check.sh sysadminium.ru up # /etc/zabbix/http-check.sh sysadminium.ru up
Создание пользовательских параметров
Теперь создадим пользовательские параметры Zabbix. Делаются они в конфиге zabbix-агента на том узле, на котором они будут выполняться. Я буду выполнять эти проверки на самом Zabbix сервере, но их можно выполнять с любого другого узла, на котором установлен агент.
# nano /etc/zabbix/zabbix_agentd.conf UserParameter=up.http[*],/etc/zabbix/http-check.sh "$1" UserParameter=up.ping[*],/etc/zabbix/ping-check.sh "$1"
Звездочка в квадратных скобках означает возможность передавать дополнительные опции этим параметрам.
Добавление элементов данных
Пришло время подключить подготовленные элементы данных к наблюдаемому узлу.
Первый элемент это проверка с помощью curl.
- Имя — придумайте сами.
- Тип — Zabbix агент.
- Ключ — up.http[https://какой_нибудь_сайт]
- Тип информации — текст
Второй элемент — это проверка с помощью ping.
- Имя — придумайте сами.
- Тип — Zabbix агент.
- Ключ — up.ping[ip_или_имя]
- Тип информации — текст.
Добавление триггеров
- Имя — будет взято из элемента данных.
- Имя события — придумаете сами.
- Выражение —
count(/Zabbix server/up.http[https://<сайт>],5m,,"down")>3
.
В моём случае, если в течении 5 минут (это 10 проверок), мы 3 раза получили «down», то сработает триггер.
- Имя — будет взято из элемента данных.
- Имя события — придумаете сами.
- Выражение —
last(/Zabbix server/up.ping[<ip>])<>"up"
.
То есть, если последнее значение не «up», сразу сработает триггер.
Про пользовательские параметры можете почитать в официальной документации.
Другие, мои, статьи по Zabbix доступны здесь.
Если понравилась статья, подпишись на мой канал в VK.