Поступила задача мониторить очереди сообщений в Linux. Стандартными средствами сделать можно только через system.run(), однако, она по умолчанию отключена и использовать её небезопасно. Будем делать с помощью пользовательских переменных. Нас интересует последний столбик, который выдаёт команда: ipcs -q Требуется поднимать панику, если какая-либо очередь более 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" В папке /etc/zabbix/zabbix_agentd.d создаём файл userparamet