Заявки с превышение времени реакции в Zabbix

Привет!

В нашей системе 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;

ticket_history

В данной таблице есть столбец «history_type_id», который показывает состояния заявки, и столбец «queue_id», который показывает в какой очереди заявка находится.

Посмотрим какие цифры, что обозначают:

SELECT * FROM ticket_history_type;

значение 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

Vladimir

Добавить комментарий