В предыдущей статье рассматривался способ мониторинга заявок находящихся в работе (открытых) из системы OTRS в системе мониторинга Zabbix .Сейчас возникла необходимость отображать заявки закрытые в течении рабочего дня.
Это нужно, скорее, для общего понимания, что HelpDesk работает и что-то делает. Возможно позже и метрика будет. К тому же в дашборде OTRS эта информация отображается в виде графика за 7 дней, а что если нам нужно будет узнать среднее значение за месяц? в код лезть и менять параметры ?
По предыдущей статье мы знаем, что необходимые данные содержаться в базе данных «otrs» таблице «ticket». Колонка «ticket_state_id» отображает состояния заявок. Нам нужны заявки с id =2 (закрытые).
Так же нужно учесть очередь в которых заявки закрываются. Я вот не хочу учитывать очередь «Спам» «Полиграфия» и «1С» (для них позже сделаю отдельный график, если потребуется)
select * from queue;
Время изменения заявки определяется в колонке «change_time».
select * from ticket limit 610,3;
Так как рабочий день у нас 8 часов +1 час обеда (с 08:00 по 17:00) интервал будет выбирать за последние 9 часов.
В итоге у меня получился запрос:
SELECT count(*) FROM ticket WHERE ticket_state_id IN (2) AND queue_id IN (1,2,4,5) AND DATE(change_time) >= DATE_SUB(CURRENT_DATE, INTERVAL 9 HOUR)
Записываем его в файл (на сервере где установлен OTRS) /etc/zabbix/zabbix_agent.d , в самом конце файла:
UserParameter=mysql.query.oneday, echo "SELECT count(*) FROM ticket WHERE ticket_state_id IN (2) AND queue_id IN (1,2,4,5) AND DATE(change_time) >= DATE_SUB(CURRENT_DATE, INTERVAL 9 HOUR)" | mysql -N -u otrs -ppassword otrs
Создаем элемент данных и график в Zabbix:
При создании элемента данных указываем период мониторинга в «пользовательских интервалах» с понедельника по пятницу с 7 до 19 (я взял с запасом):
Получаем график:
Теперь добавим возможность мониторинга созданных заявок за рабочий день (за 9 часов), время создания заявки определяется в колонке «create_time» из таблицы «ticket»
По аналогии с вышеописанным способом получаем запрос:
SELECT count(*) FROM ticket WHERE ticket_state_id AND queue_id IN (1,2,4,5) AND DATE(create_time) >= DATE_SUB(CURRENT_DATE, INTERVAL 9 HOUR)
Записываем его в файл (на сервере где установлен OTRS) /etc/zabbix/zabbix_agent.d , в самом конце файла:
UserParameter=mysql.query.oneday, echo "SELECT count(*) FROM ticket WHERE ticket_state_id AND queue_id IN (1,2,4,5) AND DATE(create_time) >= DATE_SUB(CURRENT_DATE, INTERVAL 9 HOUR)" | mysql -N -u otrs -ppassword otrs
Создаем элемент данных и график в Zabbix. Вот пример как это выглядит у меня — в виде комплексного экрана: