Перейти к основному содержанию
 

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

Zabbix

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

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

ipcs -q

zabbix

Требуется поднимать панику, если какая-либо очередь более 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"

zabbix

В папке /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.

zabbix

Type: "Zabbix agent".

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

Type of information: Numeric (unsigned).

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

zabbix

Expression:

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

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

Теги