Привет!
В нашей системе HelpDesk OTRS4 предусмотрен контроль за заявками, по которым было превышено «время реакции» (в OTRS это называется «эскалация — время первого ответа»). Если на заявку не прореагировали в течении 1 часа после поступления, то начальнику отдела об этом приходит уведомление на email и сотрудник HelpDesk получает пинок. Этот контроль необходимо, для того, чтобы клиент понимал, что его проблемой начали заниматься или займутся в ближайшее время; влияет на степень удовлетворения уровнем обслуживания.
Эта метрика (заявки с превышением «времени реакции») входит в KPI учитывается в конце месяца при подсчете заработной платы.
Реализовывать контроль и подсчет таких заявок будем следующим образом: данные берем из базы данных OTRS и отображаем в Zabbix. Так как особой оперативности в подсчете нам не надо, то снимать информацию о кол-ве просроченных заявок будем один раз в день. В конце месяца у нас получится общая картина по данной метрике.
Приступим:
Подключаемся к БД:
mysql -u otrs -pPASSWORD
Выбираем базу данных:
use otrs;
Смотрим таблицы в БД:
show tables;
Нас интересует таблица «ticket_history» , отобразим ее содержимое начиная с 100 записи количеством в 10 (для примера)
SELECT * FROM ticket_history limit 100, 10;
В данной таблице есть столбец «history_type_id», который показывает состояния заявки, и столбец «queue_id», который показывает в какой очереди заявка находится.
Посмотрим какие цифры, что обозначают:
SELECT * FROM ticket_history_type;
Из этого вывода становится понятно, что цифра 42 соответствует значению «EscalationResponseTimeStart», которое нам и нужно.
Смотрим значения очередей:
SELECT * FROM queue;
Здесь нам нужен номер ID очереди.
Теперь у нас есть вся нужная информация, сделаем запрос к БД по «history_type_id» равному 42 за текущий месяц, без учета очередей (т.е. посмотрим общее кол-во заявок с просроченным временем ответа)
SELECT * FROM ticket_history WHERE history_type_id IN (42) AND MONTH(`create_time`) = MONTH(NOW()) AND YEAR(`create_time`) = YEAR(NOW());
А теперь применительно к очереди «группа поддержки» с id=1:
SELECT * FROM ticket_history WHERE history_type_id IN (42) AND queue_id IN (1)AND MONTH(`create_time`) = MONTH(NOW()) AND YEAR(`create_time`) = YEAR(NOW());
Добавляем полученные запросы в конфигурационный файл zabbix агента:
Перезапускаем:
/etc/init.d/zabbix-agent restart
Идем на сервер Zabbix и проверяем, что данные поступают:
Если все получилось, то можно настраивать отображение в Zabbix:
Создаем элемент данных, с частотой опроса 1 раз (с 19.00-19.01)
Добавляем отображения на графике всех необходимых очередей:
Все, теперь в конце месяца нам достаточно посмотреть график на последний день месяца и мы увидим необходимые нам цифры для отображения в KPI