У нас в организации в качестве системы HelpDesk используется система OTRS4 Free.Сейчас встал вопрос разработки KPI и SLA (об этом будет другая статья) и это потянуло за собой вопрос мониторинга и отчетности. Одной из метрик будет «количество открытых заявок», т.е. те заявки, которые «висят» в работе. Это количество будет оговорено в KPI и влиять на размер премии.Мониторинг будем делать на системе Zabbix 3.2. получая информацию из базы данных MySQL с которой работает OTRS4.
Поэтому нам будет нужен пароль, имя учетной записи (по умолчанию «otrs»), название базы данных (по умолчанию «otrs») эти данные можно получить из файла config.pm программы (у меня путь на сервере где установлен OTRS: /opt/otrs/Kernel/Config/config.pm).
Когда мы узнали пароль, имя учетной записи и название базы , нужно понять в какой таблицы и какого столбца в этой таблице находятся нужные нам данные:
Подключаемся:
mysql -u otrs -ppassword
-ppassword ключ «-p»пишется слитно с паролем «password»
смотрим какие есть базы данных:
SHOW databases;
выбираем нужную:
USE otrs;
смотрим какие есть таблицы в базе otrs
SHOW tables;
нас интересует таблица «ticket», посмотрим какая там содержится информация:
Select * from ticket limit 3;
(посмотреть какие колонки есть с ограничением 3 строки)
понятно, что в столбце «ticket_state_id» отображается состояние заявок (1- новая, 4 открытые, 6 — ожидают напоминания). На снимке приведены остальные state_id заявки:
select * from ticket_state;
Пишем запрос (на рисунке цифры для примера):
SELECT count(*) FROM ticket WHERE ticket_state_id IN (1, 4, 6 );
Тут выводятся интересующие типы заявок по всем очередям, а что если все очереди не нужны? Тогда смотрим id интересующих нас очередей:
select * from queue;
Мне понадобилось отображать очереди с id: 1 — «Группа поддержки»,2 — «Начальник ИТ, 4- «системный администратор», 5- «главный специалист»
Итак у нас есть вся необходимая информация для реализации мониторинга в Zabbix. Исходим из того, что zabbix-agent уже установлен на OTRS. Пишем в файле (на сервере где установлен OTRS) /etc/zabbix/zabbix_agent.d , в самом конце файла:
UserParameter=mysql.query, echo "SELECT count(*) FROM ticket WHERE ticket_state_id IN (1, 4, 6 ) AND queue_id IN (1,2,4,5)" | mysql -N -u otrs -ppassword otrs
На сервере Zabbix можно проверить приходят ли по созданному нами параметру данные:
zabbix_get -s 192.168.0.6 -p 10050 -k "mysql.query"
Можно сравнить полученную цифру с информацией в дашборде в OTRS, чтобы убедиться, что получили правильные данные.
Переходим в веб интерфейс Zabbix и создаем элемент данных «открытые заявки»:
и график:
Получаем результат:
В дальнейшем таким способом можно добавить и другие данные, необходимые для учета в KPI отдела по направлению HelpDesk.