{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Артём Плетнёв: заметки с тегом hikvision",
    "_rss_description": "инженер-электрик, программист",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/artirmpletnev.ru\/tags\/hikvision\/",
    "feed_url": "https:\/\/artirmpletnev.ru\/tags\/hikvision\/json\/",
    "icon": "https:\/\/artirmpletnev.ru\/user\/userpic@2x.jpg?1650373814",
    "author": {
        "name": "Артём Плетнёв",
        "url": "https:\/\/artirmpletnev.ru\/",
        "avatar": "https:\/\/artirmpletnev.ru\/user\/userpic@2x.jpg?1650373814"
    },
    "items": [
        {
            "id": "9",
            "url": "https:\/\/artirmpletnev.ru\/all\/monitorim-ip-kamery\/",
            "title": "Мониторинг доступности ip-камер",
            "content_html": "<p>Столкнулся с проблемой, что камеры видеонаблюдения <a href=\"https:\/\/hikvision.ru\/products\/ipcam\">HIKVISION<\/a>, которые питаются по <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Power_over_Ethernet\">PоE<\/a> от коммутатора <a href=\"https:\/\/www.dlink.ru\/ru\/products\/1\/2222.html\">D-Link DGS-1210-10P<\/a>, временами становятся недоступны. Восстановить работу камер помогает их перезагрузка по питанию.<\/p>\n<p>В связи с этим появилась необходимость настроить мониторинг доступности камер и, при необходимости, их автоматическую перезагрузку. В качестве средства мониторинга я буду использовать Zabbix.<\/p>\n<h2>Стучимся по SNMP<\/h2>\n<p>DGS-1210-10P поддерживает протокол SNMP. Таким образом, существует возможность удаленного управления PoE на каждом порту коммутатора. С этого и начнем. Убедимся, что SNMP включен на коммутаторе и существует «SNMP Community» с правами чтения и записи.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1280\" data-ratio=\"2.3880597014925\">\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/image927.png\" width=\"1280\" height=\"536\" alt=\"\" \/>\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/image941.png\" width=\"1280\" height=\"526\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Веб-интерфейс DGS-1210-10P<\/div>\n<\/div>\n<p>Теперь проверим, что на хосте с Zabbix установлены и корректно работают инструменты <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Net-SNMP\">Net-SNMP<\/a>, например, вызвав команду snmpwalk. Если PoE включен на каждом порту, то вывод snmpwalk должен выглядеть так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">pletnev@zabbixhost:~$ snmpwalk -c public -v 2c 10.90.90.90 1.3.6.1.4.1.171.10.76.12.22.1.1.3\r\niso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.1 = INTEGER: 1\r\niso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.2 = INTEGER: 1\r\niso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.3 = INTEGER: 1\r\niso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.4 = INTEGER: 1\r\niso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.5 = INTEGER: 1\r\niso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.6 = INTEGER: 1\r\niso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.7 = INTEGER: 1\r\niso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.8 = INTEGER: 1<\/code><\/pre><p>В случае, если PoE на каком-то порту отключен, то вместо «INTEGER: 1» мы увидим «INTEGER: 2».<\/p>\n<h2>SNMP и PoE<\/h2>\n<p>Для дистанционной перезагрузки камер по питанию я написал <a href=\"https:\/\/github.com\/ensoelectric\/zbx_ipcam_monitoring\/blob\/master\/dgs_portreset.sh\">bash-скрипт<\/a>, принцип работы которого предельно прост. По SNMP он узнает, включено ли PoE на указанном порту, и отключает его, если это так. Затем, спустя пять секунд, скрипт снова включает PoE на этом порту.<\/p>\n<p>Например, перезагрузка камеры, подключенной к восьмому порту коммутатора, выглядит так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">pletnev@zabbixhost:~$ .\/dgs_portreset.sh 10.90.90.90 public 1.3.6.1.4.1.171.10.76.12.22.1.1.3.1.8\r\niso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.8 = INTEGER: 2\r\niso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.8 = INTEGER: 1<\/code><\/pre><h2>Настраиваем мониторинг<\/h2>\n<p>Переместим <a href=\"https:\/\/github.com\/ensoelectric\/zbx_ipcam_monitoring\/blob\/master\/dgs_portreset.sh\">dgs_portreset.sh<\/a> в \/usr\/lib\/zabbix\/externalscripts, а через веб-интерфейс Zabbix создадим скрипт <i>PoE switch<\/i>. Теперь добавим действие <i>IPCam POE reset<\/i>, которое выполнит <i>PoE switch<\/i> при поднятии триггера с тегом <i>ipcam<\/i>.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1281\" data-ratio=\"1.9292168674699\">\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-8.png\" width=\"1281\" height=\"664\" alt=\"\" \/>\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-1.png\" width=\"1281\" height=\"579\" alt=\"\" \/>\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-2.png\" width=\"1284\" height=\"569\" alt=\"\" \/>\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-3.png\" width=\"1280\" height=\"649\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Создаем скрипт <i>PoE switch<\/i> и настраиваем действие <i>IPCam POE reset<\/i><\/div>\n<\/div>\n<p>Доступность камер будем определять банальным пингом. Для удобства добавления камер я подготовил <a href=\"https:\/\/github.com\/ensoelectric\/zbx_ipcam_monitoring\/blob\/master\/zbx_ipcam_ping_templates.yaml\">шаблон IPCAM_PING<\/a>, который содержит все необходимые макросы. Элементы данных и триггеры IPCAM_PING наследует от стандартного шаблона ICMP Ping.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1573\" data-ratio=\"2.0643044619423\">\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-6-1.png\" width=\"1573\" height=\"762\" alt=\"\" \/>\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-7-1.png\" width=\"1572\" height=\"762\" alt=\"\" \/>\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-4-1.png\" width=\"1555\" height=\"721\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Шаблон IPCAM_PING для Zabbix 5.2.2<\/div>\n<\/div>\n<p>После импорта шаблона  IPCAM_PING триггеру <i>ICMP Ping: Unavailable by ICMP ping<\/i> потребуется добавить тег <i>ipcam<\/i>.<\/p>\n<h2>Добавляем камеру в мониторинг<\/h2>\n<p>Чтобы начать мониторинг доступности камеры, необходимо создать узел сети с интерфейсом типа агент и IP-адресом видеокамеры. К узлу сети необходимо присоединить шаблон IPCAM_PING и заполнить значения макросов {$SWITCH_IP}, {$SNMP_COMMUNITY} и {$OID}. Значением последнего является SNMP OID запись состояния PoE конкретного порта коммутатора.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1365\" data-ratio=\"2.2159090909091\">\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery.png\" width=\"1365\" height=\"616\" alt=\"\" \/>\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-4.png\" width=\"1364\" height=\"615\" alt=\"\" \/>\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-5.png\" width=\"1366\" height=\"605\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Камера с адресом 192.168.3.64, подключенная к 11 порту коммутатора DGS-1210-28P с адресом 10.90.90.60<\/div>\n<\/div>\n<h2>Производительность<\/h2>\n<p>В процессе добавления видеокамер появились проблемы с производительностью: «Zabbix icmp pinger processes more than 75% busy». Решить проблему помогло увеличение значения параметра <a href=\"https:\/\/www.zabbix.com\/documentation\/6.0\/en\/manual\/appendix\/config\/zabbix_server?hl=StartPingers\">StartPingers<\/a>.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/artirmpletnev.ru\/pictures\/graph-(3).png\" width=\"1818\" height=\"295\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Изменение StartPingers позволило снизить <i>Utilization of icmp pinger data collector processes<\/i> с 78 до 24%<\/div>\n<\/div>\n<p>Снизить нагрузку на сервер возможно и изменением частоты обновления элементов данных. По умолчанию этот интервал составляет одну минуту.<\/p>\n<h2>Заключение<\/h2>\n<p>Такой мониторинг сетевых камер я применял с несколькими моделями коммутаторов D-Link.  Ниже используемые мной OID:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.dlink.ru\/ru\/products\/1\/2222.html\">DGS-1210-10P<\/a>: 1.3.6.1.4.1.171.10.76.12.22.1.1.3.1.[1-8]<\/li>\n<li><a href=\"https:\/\/www.dlink.ru\/ru\/products\/1\/2221.html\">DGS-1210-28P<\/a>: 1.3.6.1.4.1.171.10.76.21.1.22.1.1.3.1.[1-24]<\/li>\n<li><a href=\"https:\/\/www.dlink.ru\/ru\/products\/1\/709.html\">DES-3052P<\/a>: 1.3.6.1.4.1.171.12.24.3.1.1.2.[1-48]<\/li>\n<\/ul>\n",
            "date_published": "2022-05-04T13:34:49+00:00",
            "date_modified": "2022-05-12T19:36:07+00:00",
            "image": "https:\/\/artirmpletnev.ru\/pictures\/image927.png",
            "_date_published_rfc2822": "Wed, 04 May 2022 13:34:49 +0000",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "9",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/jquery\/jquery.js",
                    "system\/library\/fotorama\/fotorama.css",
                    "system\/library\/fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/artirmpletnev.ru\/pictures\/image927.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/image941.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-8.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-1.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-2.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-3.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-6-1.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-7-1.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-4-1.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-4.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/monitorim-ip-kamery-5.png",
                    "https:\/\/artirmpletnev.ru\/pictures\/graph-(3).png"
                ]
            }
        }
    ],
    "_e2_version": 3860,
    "_e2_ua_string": "E2 (v3860; Aegea)"
}