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.

Сводка
Zabbix - пользовательские параметры агента
Имя статьи
Zabbix - пользовательские параметры агента
Описание
Zabbix агент позволяет собирать множество параметров с узла, но если чего-то не хватает на помощью могут прийти пользовательские параметры

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *