В блоге Zabbix некоторое время назад вышла заметка про мониторинг видеопотоков. Я её невнимательно посмотрел и не понял основную идею. Увидел, что предлагают запускать mplayer и мониторить его работу. Подумал, что не очень удобно, а решение показалось каким-то сильно костыльным, требующим ставить иксы и запускать просмотр потока.
На днях внимательнее посмотрел статью и понял, что ошибся. Там на самом деле описан нормальный способ, который не требует ни иксов, ни проигрывания потока. Идея там следующая.
Допустим, у нас есть несколько камер и мы хотим мониторить наличие видеопотоков, которые с них идут. Для этого на сервер ставим mplayer:
# apt install mplayer
И запускаем его без вывода видеопотока. Это можно сделать в обычной консоли, без графического окружения:
# mplayer -vo null http://158.58.130.148/mjpg/video.mjpg
Это рабочая ссылка, привожу её для примера. На ней можно тестить. Если у вас свои камеры и вы хотите мониторить rtsp поток, то запускаем так:
# mplayer -vo null 'rtsp://user:[email protected]/rtsp'
Если поток живой, то процесс с mplayer будет запущен. Как только поток отваливается, mplayer завершает работу. На основе этих данных создаётся айтем и триггер в Zabbix. Если камера одна, то можно использовать функцию айтема proc.num, как в примере в статье. Если камер много, то надо будет придумать какую-то другую проверку. В любом случае это не трудно, дело техники. Главное идея.
Я давно размышлял на тему того, как мониторить не просто работу камеры по пингу или ответу по http, а именно проверять наличие видеопотока. Вот хороший и простой в настройке способ. И главное, ровно то, что нужно.
В статье дополнительно даётся совет, как получить скриншот с камеры во время движения. Mplayer умеет принимать внешние команды. Если есть датчик движения, необходимо с него каким-то образом отправлять сигнал на Zabbix Server. Реализация будет зависеть от возможностей датчика. После этого Zabbix Server будет выполнять удалённую команду, посылая mplayer информацию о том, что надо сделать скриншот потока и положить его в какую-то директорию. Если её подключить к веб серверу, то картинку можно добавить на дашборд Zabbix через URL виджет. Схема сложная, но в целом рабочая. Не вижу каких-то серьёзных затруднений с реализацией.
Если вам приходилось настраивать мониторинг видеопотоков в Zabbix, расскажите, как реализовывали это.
#zabbix