Мониторим статус процесса в Windows

Posted by

В сегодняшней части по работе с сервером мониторинга Zabbix я разберу как мониторить наличие запущенного в системе определенного процесса, к примеру: службы Web-сервера для видеонаблюдения (ПО Intellect, процесс: WebServer.run), сервера и т. д. Как всегда нужно начать с самого малого, а именно я рассмотрю как мониторить наличие запущенного процесса софтфона от МангоЦентр обработки вызовов он же ЦОВ. Имя процесса в диспетчере задач оси Windows 7 Professional SP1 значится, как mpoint.exe → только вот в их при работе программы целых два, но это ничего страшно. Данной заметкой я хочу понять, как работают встроенных средства самого Zabbix, а не задействование внешних обработок прописываемых на агентах. По возможности лучше использовать инструменты из коробки дабы потом проще было вспоминать (если конечно забудете), как и для чего используется.

Создаю новый элемент поведения:

http://IP&DNS — user&pass — Administration — General — Value mapping — Create value map —

  • Name: Статус процесса в Диспетчере задач
  • Mapping:
  • Value: 0 — Mapped to: Процесс не запущен
  • Value: 1 — Mapped to: Процесс запущен

и не забываем нажать Save для сохранения внесенных изменений.

Затем создаю в дефолтном шаблоне Template OS Windows новый элемент данных:

http://IP&DNS — user&pass — Configuration — Templates — Template OS Windows — Items — Create Item

  • Name: Check Process TSOV
  • Type: Zabbix agent
  • Key: proc.num[mpoint.exe]
  • Type of information: Numeric(unsigned)
  • Data type: decimal
  • Update interval (in sec): 30
  • History storage period (in days): 90
  • Trend storage period (in days): 365
  • Applications: Processes
  • Description: Центр обработки вызовов (ЦОВ)
  • Enabled: отмечаю галочкой

По окончании настройки нового элемента данных не забываем нажать Save.

Затем перехожу в заведенный на мониторинг хост и создаю триггер на изменение поведения нацеленного элемента данных в нем:

http://IP&DNS — user&pass — Configuration — Hosts — Group (выбираю свою группу Windows Workstation) — затем перехожу в хост W7X86Triggers — Create Trigger

Вкладка: Trigger

  • Name: Process TSOV (mpoint.exe) не запущен
  • Expression: {W7X86:proc.num[mpoint.exe].last()}<2
  • Severity: Average
  • Enabled: отмечаю галочкой

И не забываю нажать Save для применения настроек

Затем все также находясь в настройках хоста создаю описание для формирования графика по этому элементу данных:

http://IP&DNS — user&pass — Configuration — Hosts — Group (выбираю свою группу Windows Workstation) — затем перехожу в хост W7X86Graphs — Create graph

вкладка: Graph

  • Name: Check Status process TSOV
  • Y axis MIN value: Fixed = 0
  • Y asis MAX value: Fixed = 2

Items — Add — нахожу созданный шагами ранее элемент данных Check Process TSOV, отмечаю его галочкой после нажимаю Select, Save и того получается:

  • W7X86: Check Process TSOV (Function: all), Draw style: Line, Y axis side (Left) Colour: C80000

Теперь если на рабочей станции завершить процесс, то график будет следующим:

Формируемый график по работе службы на хосте

, т. е. Значение — 2 это когда в системе два запущенных процесса (а только так работает ЦОВ от Манго), а 0 — это когда ни одного процесса не запущено (т. е. Его нет в «Диспетчере задач») и также сработал trigger (триггер) на возникнувшее событие:

http://IP&DNS — user&pass — Monitoring — Dashboard

Процесс выгружен, аларм сработал

Если же нужно мониторить не количество процессов в «Диспетчере задач», то в элементе данных нужно добавить значение:

  • Show Value: выбираем тот шаблон который создали выше именуемый, как: «Статус процесса в Диспетчере задач»

В настройках триггера хоста шаблон проверки будет таким:

  • {W7X86:proc.num[mpoint.exe].last(0)}=0

А в настройках графика:

  • Name: Check Status process TSOV
  • Y axis MIN value: Fixed = 0
  • Y asis MAX value: Fixed = 2
  • Items: W7X86: Check Process TSOV (Function: all)

На заметку: лучше создать элемент данных не в дефолтном шаблоне, с создать свой ориентированный на определенную группу хостов на которых общие составляющие и триггеры с использование переменных окружения.

Шаблон триггера на свой шаблон

Вот пример для процесса WebServer.run ответственного за возможность через браузер подключиться к сервере видеонаблюдения с целью просмотра камер согласно должностным обязанностям за своими отделами:

Последние данные по двум хостам - процесс работает

Вот что мне и требовалось сделать. Для чего я именно на рабочей станции мониторю как каким-то процессом, дело в том, что у нас в компании имеется CallCenter который пользуется данным ПО для обработки звонков клиентов с последующим переводом на соответствующие отделы. А порой уже довольно часто у Манго наблюдаются различные проблемы при работе, доступ в интернет с рабочих станций на сервера Манго полный, но использование ЦОВ как софтфона это сущий геморрой по возникающим ошибкам для меня как системного администратора — я ведь ничего не могу сделать, сервис то ведь в облаке (ну где-то там и палец вверх). Обращения к поддержке результата решения не дают, а только в ответ слышу это будет исправлено в следующем релизе, давайте заведем заявку и все по такому же принципу. А так я буду уже знать что что-то уже случилось. На этом я прощаюсь, с уважением автор блога — ekzorchik.