Мониторинг остатка средств Selectel в Zabbix
Ставим на мониторинг баланс счета, с графиком изменения суммы счета и триггер при критическом остатке средств. При срабатывания триггера будем получать уведомления.
Введение
Цель - держать на мониторинге баланс и быть уверенным, что денежные средства не закончились. Мониторинг будет висеть на хосте Zabbix сервера, через агента.
Установим на Zabbix сервере - jq, если он ещё не установлен, для работы с API
Создадим bash скрипт для отправки запроса и обработки полученных данных
Добавим свой user parameter для Zabbix
Добавим элемент данных, триггер, график и сделаем шаблон для импорта в Zabbix
Получение ключа API в Selectel
Заходим в личный кабинет (ЛК) Selectel и переходим в раздел “Ключи API”. Нажимаем “Новый ключ”, даём ему осмысленное название, например “Zabbix” и получаем ключ. Ключ записываем или оставляем вкладку открытой, позже к нему вернёмся.
Установка jq
Selectel отдаёт данные через API в формате json. Чтобы забрать необходимую информацию, в нашем случае, общий суммарный баланс, на сервере устанавливаем jq:
Debian/Ubuntu:
apt-get install jq
Проверяем что jq установился, отправив команду на вывод версии:
jq -V
#Если команда выполнилась и вышла версия, то идём дальше, например:
jq-1.6
Создание скрипта
Создадим папку, если её ещё нет и проверьте что у Zabbix есть права доступа на каталог и файлы внутри:
mkdir /etc/zabbix/scripts
Создадим файл скрипта в папке /etc/zabbix/scripts/:
mcedit /etc/zabbix/scripts/selectel_balance.sh
И пишем скрипт в данном файле, единственное указываем в selectel_token свой ключ, который ранее получили:
#!/bin/bash
#Var
selectel_token="abc_123"
#Request & formatting a number
curl -s \
-H "X-Token: $selectel_token" \
-H 'Content-Type: application/json' \
https://api.selectel.ru/v3/balances | jq -r '.data.billings[].balances_values_sum' | sed 's/..$/.&/g'
Сохраняем и даём права на выполнение:
chmod +x /etc/zabbix/scripts/selectel_balance.sh
Подключаем скрипт к Zabbix агенту
Создаём файл selectel_api.conf в каталоге /etc/zabbix/zabbix_agentd.d/, с нашим user parameter, чтобы Zabbix мог с помощью него вызывать скрипт:
mcedit /etc/zabbix/zabbix_agentd.d/selectel_api.conf
Содержание конфига, обратите внимание файл не должен заканчиваться с новой строки, иначе будет ошибка в Zabbix:
UserParameter=billings.balances_values_sum, /bin/bash /etc/zabbix/scripts/selectel_balance.sh
Скрипт отправляет запрос, оставляет только информацию по общему балансу.
Уведомления будут приходить при срабатывания триггера, если у вас настроены хотя бы один из доступных каналов.
Импорт шаблона для Zabbix
В шаблоне заготовлен график, item, и триггер который срабатывает если баланс ниже 1500. Триггер рекомендую отредактировать на необходимую вам сумму. Загрузить файл шаблона можно здесь. Скачиваем файл, заходим в Zabbix Server в шаблоны и импортируем файл со всеми параметрами по умолчанию, подробнее можно прочитать здесь и подключаем шаблон к Zabbix серверу в моём случае.
На каких версиях работает шаблон?
Шаблон вместе со скриптом проверен и работает на Zabbix 5.x и на Zabbix 7.2.x.