Найти тему

Zabbix — мониторинг очередей сообщений в Linux

Оглавление

Поступила задача мониторить очереди сообщений в Linux. Стандартными средствами сделать можно только через system.run(), однако, она по умолчанию отключена и использовать её небезопасно. Будем делать с помощью пользовательских переменных.

Нас интересует последний столбик, который выдаёт команда:

ipcs -q
-2

Требуется поднимать панику, если какая-либо очередь более 4. По сути, нужно выводить в заббикс максимальное значение из всех очередей.

На сервере

На сервере с zabbix-агентом создаём папку /etc/zabbix/scripts. В ней файлик ipsc.sh с правами на выполнение.

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

#!/bin/bash

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

a=(`ipcs -q | grep -v "msqid" | awk -F" " '{ print $6}' `)
m=-1

for i in ${!a[@]}; do
if [[ ${a[$i]} -gt $m ]]; then
m=${a[$i]}
fi
done

echo "$m"
-3

В папке /etc/zabbix/zabbix_agentd.d создаём файл userparameter_ipcs.conf содержимым:

UserParameter=ipcs.q,/etc/zabbix/scripts/ipcs.sh

Убеждаемся что в файле /etc/zabbix/zabbix_agentd.conf есть раскоментированная строка:

Include=/etc/zabbix/zabbix_agentd.d/

Перезапускаем сервис заббикс агента:

service zabbix-agent restart

В заббиксе

Переходим к заббиксу. Создаём item.

-4

Type: "Zabbix agent".

Key: ipcs.q - название ключа мы задавали в файле userparameter_ipcs.conf.

Type of information: Numeric (unsigned).

Навешиваем триггер.

-5

Expression:

{ваш_шаблон:ipcs.q.last()}>4

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

Источник:
https://internet-lab.ru/zabbix_ipcs_queue

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.