<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Артём Плетнёв: заметки с тегом d-link</title>
<link>https://artirmpletnev.ru/tags/d-link/</link>
<description>инженер-электрик, программист</description>
<author>Артём Плетнёв</author>
<language>ru</language>
<generator>E2 (v3860; Aegea)</generator>

<itunes:owner>
<itunes:name>Артём Плетнёв</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>инженер-электрик, программист</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Мониторинг доступности ip-камер</title>
<guid isPermaLink="false">9</guid>
<link>https://artirmpletnev.ru/all/monitorim-ip-kamery/</link>
<pubDate>Wed, 04 May 2022 13:34:49 +0000</pubDate>
<author>Артём Плетнёв</author>
<comments>https://artirmpletnev.ru/all/monitorim-ip-kamery/</comments>
<description>
&lt;p&gt;Столкнулся с проблемой, что камеры видеонаблюдения &lt;a href="https://hikvision.ru/products/ipcam"&gt;HIKVISION&lt;/a&gt;, которые питаются по &lt;a href="https://ru.wikipedia.org/wiki/Power_over_Ethernet"&gt;PоE&lt;/a&gt; от коммутатора &lt;a href="https://www.dlink.ru/ru/products/1/2222.html"&gt;D-Link DGS-1210-10P&lt;/a&gt;, временами становятся недоступны. Восстановить работу камер помогает их перезагрузка по питанию.&lt;/p&gt;
&lt;p&gt;В связи с этим появилась необходимость настроить мониторинг доступности камер и, при необходимости, их автоматическую перезагрузку. В качестве средства мониторинга я буду использовать Zabbix.&lt;/p&gt;
&lt;h2&gt;Стучимся по SNMP&lt;/h2&gt;
&lt;p&gt;DGS-1210-10P поддерживает протокол SNMP. Таким образом, существует возможность удаленного управления PoE на каждом порту коммутатора. С этого и начнем. Убедимся, что SNMP включен на коммутаторе и существует «SNMP Community» с правами чтения и записи.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1280" data-ratio="2.3880597014925"&gt;
&lt;img src="https://artirmpletnev.ru/pictures/image927.png" width="1280" height="536" alt="" /&gt;
&lt;img src="https://artirmpletnev.ru/pictures/image941.png" width="1280" height="526" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Веб-интерфейс DGS-1210-10P&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Теперь проверим, что на хосте с Zabbix установлены и корректно работают инструменты &lt;a href="https://ru.wikipedia.org/wiki/Net-SNMP"&gt;Net-SNMP&lt;/a&gt;, например, вызвав команду snmpwalk. Если PoE включен на каждом порту, то вывод snmpwalk должен выглядеть так:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;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
iso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.1 = INTEGER: 1
iso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.2 = INTEGER: 1
iso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.3 = INTEGER: 1
iso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.4 = INTEGER: 1
iso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.5 = INTEGER: 1
iso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.6 = INTEGER: 1
iso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.7 = INTEGER: 1
iso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.8 = INTEGER: 1&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В случае, если PoE на каком-то порту отключен, то вместо «INTEGER: 1» мы увидим «INTEGER: 2».&lt;/p&gt;
&lt;h2&gt;SNMP и PoE&lt;/h2&gt;
&lt;p&gt;Для дистанционной перезагрузки камер по питанию я написал &lt;a href="https://github.com/ensoelectric/zbx_ipcam_monitoring/blob/master/dgs_portreset.sh"&gt;bash-скрипт&lt;/a&gt;, принцип работы которого предельно прост. По SNMP он узнает, включено ли PoE на указанном порту, и отключает его, если это так. Затем, спустя пять секунд, скрипт снова включает PoE на этом порту.&lt;/p&gt;
&lt;p&gt;Например, перезагрузка камеры, подключенной к восьмому порту коммутатора, выглядит так:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;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
iso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.8 = INTEGER: 2
iso.3.6.1.4.1.171.10.76.12.22.1.1.3.1.8 = INTEGER: 1&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;Настраиваем мониторинг&lt;/h2&gt;
&lt;p&gt;Переместим &lt;a href="https://github.com/ensoelectric/zbx_ipcam_monitoring/blob/master/dgs_portreset.sh"&gt;dgs_portreset.sh&lt;/a&gt; в /usr/lib/zabbix/externalscripts, а через веб-интерфейс Zabbix создадим скрипт &lt;i&gt;PoE switch&lt;/i&gt;. Теперь добавим действие &lt;i&gt;IPCam POE reset&lt;/i&gt;, которое выполнит &lt;i&gt;PoE switch&lt;/i&gt; при поднятии триггера с тегом &lt;i&gt;ipcam&lt;/i&gt;.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1281" data-ratio="1.9292168674699"&gt;
&lt;img src="https://artirmpletnev.ru/pictures/monitorim-ip-kamery-8.png" width="1281" height="664" alt="" /&gt;
&lt;img src="https://artirmpletnev.ru/pictures/monitorim-ip-kamery-1.png" width="1281" height="579" alt="" /&gt;
&lt;img src="https://artirmpletnev.ru/pictures/monitorim-ip-kamery-2.png" width="1284" height="569" alt="" /&gt;
&lt;img src="https://artirmpletnev.ru/pictures/monitorim-ip-kamery-3.png" width="1280" height="649" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Создаем скрипт &lt;i&gt;PoE switch&lt;/i&gt; и настраиваем действие &lt;i&gt;IPCam POE reset&lt;/i&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Доступность камер будем определять банальным пингом. Для удобства добавления камер я подготовил &lt;a href="https://github.com/ensoelectric/zbx_ipcam_monitoring/blob/master/zbx_ipcam_ping_templates.yaml"&gt;шаблон IPCAM_PING&lt;/a&gt;, который содержит все необходимые макросы. Элементы данных и триггеры IPCAM_PING наследует от стандартного шаблона ICMP Ping.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1573" data-ratio="2.0643044619423"&gt;
&lt;img src="https://artirmpletnev.ru/pictures/monitorim-ip-kamery-6-1.png" width="1573" height="762" alt="" /&gt;
&lt;img src="https://artirmpletnev.ru/pictures/monitorim-ip-kamery-7-1.png" width="1572" height="762" alt="" /&gt;
&lt;img src="https://artirmpletnev.ru/pictures/monitorim-ip-kamery-4-1.png" width="1555" height="721" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Шаблон IPCAM_PING для Zabbix 5.2.2&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;После импорта шаблона  IPCAM_PING триггеру &lt;i&gt;ICMP Ping: Unavailable by ICMP ping&lt;/i&gt; потребуется добавить тег &lt;i&gt;ipcam&lt;/i&gt;.&lt;/p&gt;
&lt;h2&gt;Добавляем камеру в мониторинг&lt;/h2&gt;
&lt;p&gt;Чтобы начать мониторинг доступности камеры, необходимо создать узел сети с интерфейсом типа агент и IP-адресом видеокамеры. К узлу сети необходимо присоединить шаблон IPCAM_PING и заполнить значения макросов {$SWITCH_IP}, {$SNMP_COMMUNITY} и {$OID}. Значением последнего является SNMP OID запись состояния PoE конкретного порта коммутатора.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1365" data-ratio="2.2159090909091"&gt;
&lt;img src="https://artirmpletnev.ru/pictures/monitorim-ip-kamery.png" width="1365" height="616" alt="" /&gt;
&lt;img src="https://artirmpletnev.ru/pictures/monitorim-ip-kamery-4.png" width="1364" height="615" alt="" /&gt;
&lt;img src="https://artirmpletnev.ru/pictures/monitorim-ip-kamery-5.png" width="1366" height="605" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Камера с адресом 192.168.3.64, подключенная к 11 порту коммутатора DGS-1210-28P с адресом 10.90.90.60&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Производительность&lt;/h2&gt;
&lt;p&gt;В процессе добавления видеокамер появились проблемы с производительностью: «Zabbix icmp pinger processes more than 75% busy». Решить проблему помогло увеличение значения параметра &lt;a href="https://www.zabbix.com/documentation/6.0/en/manual/appendix/config/zabbix_server?hl=StartPingers"&gt;StartPingers&lt;/a&gt;.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://artirmpletnev.ru/pictures/graph-(3).png" width="1818" height="295" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Изменение StartPingers позволило снизить &lt;i&gt;Utilization of icmp pinger data collector processes&lt;/i&gt; с 78 до 24%&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Снизить нагрузку на сервер возможно и изменением частоты обновления элементов данных. По умолчанию этот интервал составляет одну минуту.&lt;/p&gt;
&lt;h2&gt;Заключение&lt;/h2&gt;
&lt;p&gt;Такой мониторинг сетевых камер я применял с несколькими моделями коммутаторов D-Link.  Ниже используемые мной OID:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.dlink.ru/ru/products/1/2222.html"&gt;DGS-1210-10P&lt;/a&gt;: 1.3.6.1.4.1.171.10.76.12.22.1.1.3.1.[1-8]&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dlink.ru/ru/products/1/2221.html"&gt;DGS-1210-28P&lt;/a&gt;: 1.3.6.1.4.1.171.10.76.21.1.22.1.1.3.1.[1-24]&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dlink.ru/ru/products/1/709.html"&gt;DES-3052P&lt;/a&gt;: 1.3.6.1.4.1.171.12.24.3.1.1.2.[1-48]&lt;/li&gt;
&lt;/ul&gt;
</description>
</item>


</channel>
</rss>