SNMP: что это такое, как работает и как настроить мониторинг сети
<p>Есть такая категория технологий, которые существуют везде, используются всеми, но мало кто может с ходу объяснить, как именно они работают. <strong>SNMP</strong> — один из таких протоколов. Он живёт в вашем Cisco-коммутаторе, в UPS под столом серверной, в NAS в углу, в принтере на третьем этаже и в паре IoT-девайсов, о существовании которых вы уже забыли. Если в вашей <a title="DHCP Snooping - что это такое и как защитить сеть от Rogue DHCP сервера" href="https://it-apteka.com/dhcp-snooping-chto-jeto-takoe-i-kak-zashhitit-set-ot-rogue-dhcp-servera-2/" target="_blank" rel="noopener" data-wpil-monitor-id="734">сети больше десяти устройств —</a> вы уже используете инфраструктуру, которую SNMP способен мониторить. Вопрос только в том, настроили ли вы это.</p>
<p>В этой статье разберём <strong>SNMP с нуля до продакшна</strong>: что это за протокол, как он работает, чем отличаются версии, что такое SNMP-карта для UPS, как настроить SNMP на Cisco и <a class="wpil_keyword_link" href="https://it-apteka.com/category/windows-server/" target="_blank" rel="noopener" title="Windows Server" data-wpil-keyword-link="linked" data-wpil-monitor-id="739">Windows</a>, как подключить всё это к Zabbix — и пять реальных кейсов из жизни системного администратора. Готовые команды, минимум воды.</p>
<h2>Что такое SNMP и зачем он нужен</h2>
<p><strong>SNMP (Simple </strong><a title="DHCP Snooping - What It Is and How to Protect Your Network from a Rogue" href="https://it-apteka.com/dhcp-snooping-chto-jeto-takoe-i-kak-zashhitit-set-ot-rogue-dhcp-servera/" target="_blank" rel="noopener" data-wpil-monitor-id="735">Network Management Protocol) —</a> протокол прикладного уровня для мониторинга и управления сетевыми устройствами. Разработан в конце 1980-х и с тех пор практически не исчез из IT-инфраструктуры. Название обманчивое: «Simple» в названии означает простую модель данных, а не простоту настройки — с этим у SNMP бывают нюансы.</p>
<p>SNMP позволяет системе мониторинга централизованно собирать данные с сотен устройств, не устанавливая на каждое из них отдельный агент с проприетарным протоколом. Производители сетевого оборудования договорились поддерживать единый стандарт — и это решение оказалось на удивление живучим.</p>
<h3>Где используется SNMP</h3>
<p>Короче спросить, где он <em>не</em> используется. SNMP поддерживают:</p>
<ul>
<li><strong>Маршрутизаторы и коммутаторы</strong> — Cisco, Juniper, Huawei, MikroTik, D-Link, Eltex</li>
<li><strong>UPS (источники бесперебойного питания)</strong> — APC, Eaton, Ippon, Powercom</li>
<li><strong>Серверы</strong> — через IPMI/iDRAC/iLO или ОС</li>
<li><strong>NAS-устройства</strong> — Synology, QNAP, NetApp</li>
<li><strong>Принтеры</strong> — HP, Xerox, Canon (да, и принтеры тоже)</li>
<li><strong>PDU (распределители питания в стойке)</strong></li>
<li><strong>Системы кондиционирования и климат-контроля</strong></li>
<li><strong>IoT-устройства</strong> — промышленные контроллеры, датчики</li>
<li><strong>ОС</strong> — Windows, Linux, FreeBSD, NetBSD</li>
</ul>
<p>Если устройство имеет сетевой интерфейс и хоть какое-то управление — с вероятностью 80% там есть SNMP.</p>
<figure><figcaption><img class="aligncenter size-full wp-image-1399" src="https://it-apteka.com/wp-content/uploads/2026/03/snmp-monitoring1.jpg.jpg" alt="" width="1061" height="500" /></figcaption></figure>
<h2>Как работает SNMP: механика без воды</h2>
<p>Архитектура SNMP строится на трёх ключевых компонентах.</p>
<h3>SNMP Manager (менеджер)</h3>
<p>Это ваша система мониторинга — Zabbix, Nagios, PRTG, Prometheus с SNMP exporter. Менеджер инициирует запросы к устройствам и собирает данные. Он знает, что спрашивать и у кого.</p>
<h3>SNMP Agent (агент)</h3>
<p>Это программный компонент на самом устройстве — маршрутизаторе, коммутаторе, сервере. Агент отвечает на запросы менеджера и сам инициирует уведомления (трапы) при наступлении событий. На большинстве сетевых устройств агент встроен в прошивку.</p>
<h3>MIB и OID</h3>
<p><strong>MIB (Management Information Base)</strong> — это база данных, описывающая, какие параметры можно запросить у устройства. Что-то вроде словаря: вот список всего, о чём можно спросить агента, и в каком формате придёт ответ.</p>
<p><strong>OID (Object Identifier)</strong> — уникальный числовой адрес каждого параметра в дереве MIB. Например, OID <code>1.3.6.1.2.1.1.1.0</code> — это sysDescr, описание системы. Каждая точка в строке — это уровень иерархии, как путь в файловой системе, только цифрами.</p>
<h3>Polling и Traps</h3>
<p>SNMP работает в двух режимах взаимодействия:</p>
<ul>
<li><strong>Polling (опрос)</strong> — менеджер регулярно спрашивает агента: «Какая у тебя загрузка CPU? Сколько трафика прошло через интерфейс?» Агент отвечает. Это основной режим мониторинга.</li>
<li><strong>Traps (ловушки)</strong> — агент сам отправляет уведомление менеджеру при наступлении события: упал интерфейс, UPS перешёл на батарею, температура превысила порог. Не нужно ждать следующего опроса — оповещение приходит сразу.</li>
</ul>
<p>Схема взаимодействия выглядит так:</p>
<pre><code class="language-bash">
Zabbix (Manager) ──GET Request──→ SNMP Agent (Cisco, UPS, Server)
Zabbix (Manager) ←──Response──── SNMP Agent
SNMP Agent ──────Trap─────────→ Zabbix (Manager)
</code></pre>
<p>Порты: агент слушает <strong>UDP 161</strong> (запросы), менеджер принимает трапы на <strong>UDP 162</strong>. Запомните эти два числа <a title="Docker Compose - установка, команды и настройка контейнеров" href="https://it-apteka.com/docker-compose-ustanovka-komandy-i-nastrojka-kontejnerov/" target="_blank" rel="noopener" data-wpil-monitor-id="732">— они пригодятся при настройке</a> файрвола.</p>
<figure><img alt="Архитектура SNMP: схема взаимодействия SNMP Manager, SNMP Agent, MIB и OID" /><figcaption>Архитектура SNMP: менеджер опрашивает агентов по OID, агенты отправляют трапы при событиях</figcaption></figure>
<h2>Версии SNMP: v1, v2c и v3 — в чём разница</h2>
<p>За 30+ лет существования SNMP прошёл через три версии. Каждая следующая исправляла проблемы предыдущей — в основном в части безопасности.</p>
<h3>SNMP v1</h3>
<p>Самая первая версия, 1988 год. Использует <strong>community string</strong> — строку-пароль, передаваемую в открытом виде. Никакого шифрования, никакой авторизации. По современным меркам — дыра в безопасности размером с ворота. Встречается только на очень старом оборудовании, использовать не рекомендуется.</p>
<h3>SNMP v2c</h3>
<p>Самая распространённая версия сегодня. Добавила bulk-запросы (получить сразу много данных одним запросом) и улучшила обработку ошибок. Community string по-прежнему передаётся в открытом виде — <a class="wpil_keyword_link" href="https://it-apteka.com/category/security/" target="_blank" rel="noopener" title="Безопасность" data-wpil-keyword-link="linked" data-wpil-monitor-id="738">безопасность</a> не улучшилась. Но скорость работы выросла, и именно поэтому v2c до сих пор используется в большинстве инфраструктур.</p>
<h3>SNMP v3</h3>
<p>Версия с настоящей безопасностью. Добавила:</p>
<ul>
<li><strong>Аутентификацию</strong> — пользователи с паролями (MD5 или SHA)</li>
<li><strong>Шифрование трафика</strong> — DES, 3DES, AES</li>
<li><strong>Защиту от replay-атак</strong></li>
</ul>
<p>Настраивать v3 чуть сложнее, но в любой инфраструктуре, выходящей за пределы домашней лаборатории, использование v3 — это не опция, а необходимость.</p>
<h3>Сравнительная таблица версий SNMP</h3>
<table>
<thead>
<tr>
<th>Характеристика</th>
<th>SNMP v1</th>
<th>SNMP v2c</th>
<th>SNMP v3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Год появления</td>
<td>1988</td>
<td>1993</td>
<td>2004</td>
</tr>
<tr>
<td>Аутентификация</td>
<td>Community string</td>
<td>Community string</td>
<td>Пользователь + пароль</td>
</tr>
<tr>
<td>Шифрование</td>
<td>❌ Нет</td>
<td>❌ Нет</td>
<td>✅ AES/3DES</td>
</tr>
<tr>
<td>Bulk-запросы</td>
<td>❌ Нет</td>
<td>✅ Есть</td>
<td>✅ Есть</td>
</tr>
<tr>
<td>Безопасность</td>
<td>Никакой</td>
<td>Слабая</td>
<td>Хорошая</td>
</tr>
<tr>
<td>Сложность настройки</td>
<td>Минимальная</td>
<td>Низкая</td>
<td>Средняя</td>
</tr>
<tr>
<td>Рекомендуется</td>
<td>❌ Нет</td>
<td>⚠️ Для изолированных сетей</td>
<td>✅ Да</td>
</tr>
</tbody>
</table>
<h2>SNMP-карта: что это и зачем она нужна</h2>
<p>Отдельная история — <strong>SNMP-карты (SNMP cards)</strong>. Это платы расширения или встроенные модули, которые добавляют SNMP-функциональность устройствам, у которых её нет нативно или которым нужен выделенный канал управления.</p>
<p>Чаще всего SNMP-карты встречаются в <strong>UPS (источниках бесперебойного питания)</strong>. Сам UPS умеет работать с питанием, но для удалённого мониторинга и управления нужна именно SNMP-карта управления — отдельный модуль со своим сетевым интерфейсом, процессором и прошивкой.</p>
<h3>Что умеет SNMP-карта для UPS</h3>
<ul>
<li>Мониторинг заряда батареи и времени автономной работы</li>
<li>Контроль входного и выходного напряжения</li>
<li>Мониторинг нагрузки (в ваттах и процентах от номинала)</li>
<li>Контроль температуры внутри UPS</li>
<li>Отправка SNMP Traps при переходе на батарею, перегрузке, критическом заряде</li>
<li>Удалённое управление — выключение, перезагрузка, управление розетками (PDU-функции)</li>
<li>Уведомления по email (SMTP)</li>
<li>Веб-интерфейс для ручного управления</li>
<li>Интеграция с системами мониторинга (Zabbix, PRTG, Nagios)</li>
</ul>
<h3>Популярные производители SNMP-карт</h3>
<p><strong>APC (Schneider Electric)</strong> — карты серии AP9630/AP9631 (<a class="wpil_keyword_link" href="https://it-apteka.com/category/networks/" target="_blank" rel="noopener" title="Сети" data-wpil-keyword-link="linked" data-wpil-monitor-id="740">Network</a> Management Card 2) и AP9640/AP9641 (NMC3). Самые распространённые в корпоративном сегменте. Богатый функционал, хорошая документация, интеграция с PowerChute.</p>
<p><strong>Eaton</strong> — карты серии Gigabit Network Card (NETWORK-M2). Поддерживают SNMP v1/v2c/v3, ModBus, веб-интерфейс.</p>
<p><strong>Ippon</strong> — SNMP-карты для линеек Smart Winner и Smart Power. Более бюджетный вариант, но достаточный для базового мониторинга. <strong>Ippon SNMP</strong> поддерживает стандартные MIB UPS-MIB (RFC 1628) и часто имеет собственный MIB производителя.</p>
<figure><img alt="SNMP карта управления для UPS: плата расширения с Ethernet интерфейсом для удалённого мониторинга" /><figcaption>SNMP-карта управления для UPS — отдельный модуль с Ethernet, веб-интерфейсом и поддержкой SNMP v1/v2c/v3</figcaption></figure>
<h2>SNMP для UPS: мониторинг источников бесперебойного питания</h2>
<p>Мониторинг UPS через SNMP — один из самых важных кейсов для серверной. Представьте: ночью пропало питание, UPS перешёл на батарею, заряд упал до 10% — а система мониторинга молчит, потому что SNMP не настроен. Итог предсказуем.</p>
<h3>Что мониторят в UPS через SNMP</h3>
<p>Стандартный MIB для UPS — <strong>UPS-MIB (RFC 1628)</strong>. Ключевые OID:</p>
<table>
<thead>
<tr>
<th>Параметр</th>
<th>OID</th>
<th>Описание</th>
</tr>
</thead>
<tbody>
<tr>
<td>Статус UPS</td>
<td>1.3.6.1.2.1.33.1.4.1.0</td>
<td>On-line, On-battery, и др.</td>
</tr>
<tr>
<td>Заряд батареи</td>
<td>1.3.6.1.2.1.33.1.2.4.0</td>
<td>Процент заряда</td>
</tr>
<tr>
<td>Время автономии</td>
<td>1.3.6.1.2.1.33.1.2.3.0</td>
<td>Оставшееся время в сотых долях секунды</td>
</tr>
<tr>
<td>Нагрузка</td>
<td>1.3.6.1.2.1.33.1.4.4.1.5</td>
<td>Процент нагрузки на выходе</td>
</tr>
<tr>
<td>Температура батареи</td>
<td>1.3.6.1.2.1.33.1.2.7.0</td>
<td>Температура в градусах Цельсия</td>
</tr>
<tr>
<td>Входное напряжение</td>
<td>1.3.6.1.2.1.33.1.3.3.1.3</td>
<td>Вольты на входе</td>
</tr>
</tbody>
</table>
<p>Проверить доступность и получить данные с UPS:</p>
<pre><code class="language-bash">
# Проверяем что UPS отвечает на SNMP
snmpwalk -v2c -c public 192.168.1.100
# Получаем заряд батареи
snmpget -v2c -c public 192.168.1.100 1.3.6.1.2.1.33.1.2.4.0
# Получаем статус UPS
snmpget -v2c -c public 192.168.1.100 1.3.6.1.2.1.33.1.4.1.0
</code></pre>
<h3>Интерфейсы подключения SNMP для UPS</h3>
<p>SNMP-карты и модули для UPS подключаются по-разному в зависимости от модели и задачи:</p>
<p><strong>SNMP Ethernet</strong> — самый распространённый вариант. Карта устанавливается в слот расширения UPS и подключается к сети патч-кордом. Поддерживает полный функционал: SNMP, веб-интерфейс, email-уведомления.</p>
<p><strong>SNMP USB</strong> — часто используется в небольших UPS начального уровня, где нет слота для SNMP-карты. Подключается к серверу через USB, сервер выступает как SNMP-прокси. Типичный пример — NUT (<a title="NetDiag: Free Portable Network Diagnostic Tool for Windows" href="https://it-apteka.com/network-test-portable-2/" target="_blank" rel="noopener" data-wpil-monitor-id="731">Network UPS Tools</a>) на Linux: читает данные с UPS через USB и публикует их через SNMP.</p>
<p><strong>SNMP RS232</strong> — встречается на старых моделях UPS. Последовательный порт, адаптер RS232-Ethernet или RS232-USB. Используется в legacy-инсталляциях, где замена UPS нецелесообразна.</p>
<h2>Настройка SNMP на Cisco: пошаговая инструкция</h2>
<p>Коммутаторы и маршрутизаторы Cisco — самое частое применение SNMP в корпоративных сетях. Настройка занимает несколько минут.</p>
<h3>Базовая настройка SNMP v2c на Cisco IOS</h3>
<pre><code class="language-bash">
conf t
! Включаем SNMP community только для чтения
snmp-server community public RO
snmp-server community monitoring RO
! Описание устройства для системы мониторинга
snmp-server location ServerRoom-Rack3
snmp-server contact admin@example.com
! Ограничиваем доступ только с IP системы мониторинга
! (рекомендуется всегда!)
ip access-list standard SNMP-ACCESS
permit 192.168.10.50
deny any
snmp-server community monitoring RO SNMP-ACCESS
! Включаем отправку трапов на сервер мониторинга
snmp-server host 192.168.10.50 version 2c monitoring
snmp-server enable traps
end
write memory
</code></pre>
<p>Несколько важных замечаний:</p>
<ul>
<li>Никогда не оставляйте community string как <code>public</code> в продакшне — это первое что проверяют сканеры безопасности.</li>
<li>Всегда ограничивайте доступ через ACL — только с IP вашей системы мониторинга.</li>
<li>Для read-only мониторинга достаточно RO — не давайте RW без необходимости.</li>
</ul>
<h3>Настройка SNMP v3 на Cisco IOS</h3>
<p>SNMPv3 требует больше команд, но обеспечивает реальную безопасность:</p>
<pre><code class="language-bash">
conf t
! Создаём группу с аутентификацией и шифрованием
snmp-server group MONITOR v3 priv
! Создаём пользователя в группе
! auth sha - алгоритм аутентификации SHA
! priv aes 128 - шифрование AES-128
snmp-server user zabbix MONITOR v3 \
auth sha MyAuthPassword2024 \
priv aes 128 MyPrivPassword2024
! Разрешаем трапы для SNMPv3
snmp-server host 192.168.10.50 version 3 priv zabbix
end
write memory
</code></pre>
<p>Параметры безопасности SNMPv3:</p>
<table>
<thead>
<tr>
<th>Уровень</th>
<th>Команда</th>
<th>Что даёт</th>
</tr>
</thead>
<tbody>
<tr>
<td>noAuthNoPriv</td>
<td>v3 noauth</td>
<td>Нет аутентификации, нет шифрования</td>
</tr>
<tr>
<td>AuthNoPriv</td>
<td>v3 auth</td>
<td>Аутентификация, трафик открытый</td>
</tr>
<tr>
<td>AuthPriv</td>
<td>v3 priv</td>
<td>Аутентификация + шифрование трафика</td>
</tr>
</tbody>
</table>
<p>Для продакшна — только <code>priv</code>. Остальное — компромисс.</p>
<h3>Проверка настройки SNMP на Cisco</h3>
<pre><code class="language-bash">
! Смотрим текущую конфигурацию SNMP
show snmp
show snmp community
show snmp user
show snmp group
</code></pre>
<h2>SNMP в Windows: включение и настройка службы</h2>
<p>Windows Server поддерживает SNMP через системную службу. По умолчанию не установлена — нужно добавить.</p>
<h3>Установка SNMP Service на Windows Server</h3>
<p>Через Server Manager:</p>
<ol>
<li>Server Manager → <strong>Manage</strong> → <strong>Add Roles and Features</strong></li>
<li>Features → отмечаем <strong>SNMP Service</strong></li>
<li>Устанавливаем</li>
</ol>
<p>Через PowerShell (быстрее):</p>
<pre><code class="language-bash">
# Установка SNMP Service
Add-WindowsFeature SNMP-Service
# Установка SNMP WMI Provider (опционально, для дополнительных данных)
Add-WindowsFeature SNMP-WMI-Provider
</code></pre>
<h3>Настройка SNMP Service в Windows</h3>
<pre><code class="language-bash">
# Через реестр (для автоматизации)
# Community string
reg add "HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities" `
/v "monitoring" /t REG_DWORD /d 4 /f
# 4 = READ ONLY, 8 = READ WRITE
# Разрешённые хосты для SNMP
reg add "HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers" `
/v "1" /t REG_SZ /d "192.168.10.50" /f
# Перезапускаем службу
Restart-Service SNMP
</code></pre>
<p>Либо через GUI: <strong>services.msc</strong> → SNMP Service → Properties → Security. Здесь настраиваем community strings и список разрешённых хостов.</p>
<h3>Полезные OID для мониторинга Windows через SNMP</h3>
<pre><code class="language-bash">
# Загрузка CPU
snmpwalk -v2c -c monitoring 192.168.1.10 1.3.6.1.2.1.25.3.3.1.2
# Использование памяти
snmpwalk -v2c -c monitoring 192.168.1.10 1.3.6.1.2.1.25.2.3.1
# Список процессов
snmpwalk -v2c -c monitoring 192.168.1.10 1.3.6.1.2.1.25.4.2.1.2
# Сетевые интерфейсы
snmpwalk -v2c -c monitoring 192.168.1.10 1.3.6.1.2.1.2.2.1
</code></pre>
<h2>Настройка SNMP на Linux</h2>
<p>На Linux SNMP-агент реализован через пакет <strong>net-snmp</strong>.</p>
<pre><code class="language-bash">
# <a title="Настройка статического IP в Ubuntu 22.04-24.04 и Debian 12-13: Новый мир Netplan" href="https://it-apteka.com/nastrojka-staticheskogo-ip-v-ubuntu-22-04-24-04-i-debian-12-13-nov/" target="_blank" rel="noopener" data-wpil-monitor-id="736">Ubuntu / Debian</a>
sudo apt install snmpd snmp
# RHEL / Fedora / Rocky
sudo dnf install net-snmp net-snmp-utils
# Конфигурационный файл
sudo nano /etc/snmp/snmpd.conf
</code></pre>
<p>Минимальная конфигурация <code>/etc/snmp/snmpd.conf</code> для v2c:</p>
<pre><code class="language-bash">
# Разрешаем доступ только с сервера мониторинга
agentAddress udp:161
# Community string только для чтения
rocommunity monitoring 192.168.10.50
# Описание системы
sysLocation ServerRoom
sysContact admin@example.com
# Разрешаем <a class="wpil_keyword_link" href="https://it-apteka.com/category/monitoring/" target="_blank" rel="noopener" title="Мониторинг" data-wpil-keyword-link="linked" data-wpil-monitor-id="741">мониторинг</a> всей системы
view systemonly included .1
</code></pre>
<pre><code class="language-bash">
# Запускаем и добавляем в автозагрузку
sudo systemctl enable snmpd
sudo systemctl start snmpd
# Проверяем локально
snmpwalk -v2c -c monitoring localhost
</code></pre>
<h2>SNMP мониторинг через Zabbix</h2>
<p>Zabbix — один из самых популярных инструментов мониторинга с отличной поддержкой SNMP. Разберём, как добавить SNMP-устройство и что с ним делать дальше.</p>
<h3>Добавление SNMP-устройства в Zabbix</h3>
<ol>
<li>Переходим в <strong>Configuration → Hosts → Create Host</strong></li>
<li>На вкладке <strong>Host</strong> заполняем имя и группу</li>
<li>Добавляем интерфейс: тип <strong>SNMP</strong>, IP-адрес устройства, порт 161</li>
<li>На вкладке <strong>Macros</strong> задаём:
<ul>
<li><code>{$SNMP_COMMUNITY}</code> = monitoring (для v2c)</li>
<li>Или параметры v3: <code>{$SNMP_USER}</code>, <code>{$SNMP_AUTH_PASSWORD}</code>, <code>{$SNMP_PRIV_PASSWORD}</code></li>
</ul>
</li>
<li>На вкладке <strong>Templates</strong> привязываем подходящий шаблон</li>
</ol>
<figure><img alt="Zabbix SNMP мониторинг: настройка SNMP интерфейса для коммутатора Cisco в Zabbix" /><figcaption>Zabbix: добавление SNMP-устройства — выбор интерфейса SNMP и привязка шаблона мониторинга</figcaption></figure>
<h3>Готовые шаблоны Zabbix для SNMP</h3>
<p>Zabbix поставляется с большим набором готовых SNMP-шаблонов:</p>
<ul>
<li><strong>Cisco IOS SNMP</strong> — CPU, память, интерфейсы, температура</li>
<li><strong>APC UPS SNMP</strong> — заряд батареи, нагрузка, статус, время автономии</li>
<li><strong>Generic SNMP</strong> — базовые системные параметры по стандартным OID</li>
<li><strong>Windows SNMP</strong> — базовый мониторинг Windows-хостов</li>
<li><strong>Linux SNMP</strong> — через net-snmp</li>
</ul>
<p>Не нашли шаблон для вашего оборудования в стандартной поставке — загляните на <a href="https://www.zabbix.com/integrations" target="_blank" rel="noopener">Zabbix Integrations</a>: там тысячи шаблонов от сообщества.</p>
<h3>Создание SNMP-элемента данных вручную в Zabbix</h3>
<pre><code class="language-bash">
# Пример для ручного добавления элемента
# Тип: SNMP agent
# OID: 1.3.6.1.2.1.33.1.2.4.0
# Имя: UPS Battery Charge
# Тип данных: Numeric (unsigned)
# Единицы: %
</code></pre>
<h2>Полезные инструменты для работы с SNMP</h2>
<p>Прежде чем настраивать Zabbix, полезно освоить CLI-инструменты для ручной диагностики. Пакет <code>snmp</code> (на Linux) содержит всё необходимое.</p>
<pre><code class="language-bash">
# <a href="https://it-apteka.com/zapusk-bash-skriptov-v-linux-cherez-terminal-cron-python-windows-i-raspberry-pi/" title="Запуск bash скриптов в Linux: через терминал, cron, Python, Windows и Raspberry Pi" target="_blank" rel="noopener" data-wpil-monitor-id="794">Ubuntu / Debian</a>
sudo apt install snmp snmp-mibs-downloader
# RHEL
sudo dnf install net-snmp-utils
</code></pre>
<h3>snmpwalk — обход всего дерева OID</h3>
<pre><code class="language-bash">
# Получить всё что отдаёт устройство по SNMP v2c
snmpwalk -v2c -c public 192.168.1.1
# С расшифровкой имён OID (нужны MIB-файлы)
snmpwalk -v2c -c public -m ALL 192.168.1.1
# Только системная информация
snmpwalk -v2c -c public 192.168.1.1 system
# SNMPv3
snmpwalk -v3 -l authPriv \
-u zabbix \
-a SHA -A MyAuthPassword2024 \
-x AES -X MyPrivPassword2024 \
192.168.1.1
</code></pre>
<h3>snmpget — получить конкретный OID</h3>
<pre><code class="language-bash">
# Получить описание системы
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.1.0
# Получить uptime
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.3.0
# Получить имя хоста
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.5.0
</code></pre>
<h3>snmptranslate — перевод OID в человекочитаемый формат</h3>
<pre><code class="language-bash">
# OID в имя
snmptranslate 1.3.6.1.2.1.1.1.0
# Результат: SNMPv2-MIB::sysDescr.0
# Имя в OID
snmptranslate -On SNMPv2-MIB::sysDescr.0
# Результат: .1.3.6.1.2.1.1.1.0
</code></pre>
<h3>snmpbulkwalk — быстрый обход (SNMP v2c/v3)</h3>
<pre><code class="language-bash">
# Значительно быстрее snmpwalk для больших таблиц
snmpbulkwalk -v2c -c public 192.168.1.1 interfaces
</code></pre>
<h2>Пять практических кейсов из жизни администратора</h2>
<h3>Кейс 1: Мониторинг UPS через SNMP-карту — чтобы не узнать о разряде постфактум</h3>
<p><strong>Ситуация:</strong> В серверной стоит APC Smart-UPS 3000 с SNMP-картой NMC2. Нужно мониторить заряд, нагрузку и получать алерты при переходе на батарею.</p>
<p><strong>Шаг 1:</strong> Проверяем что UPS отвечает на SNMP:</p>
<pre><code class="language-bash">
snmpwalk -v2c -c public 192.168.1.100 .1.3.6.1.4.1.318
# .1.3.6.1.4.1.318 - OID APC (PowerNet-MIB)
</code></pre>
<p><strong>Шаг 2:</strong> В Zabbix добавляем хост с SNMP-интерфейсом, привязываем шаблон <strong>APC UPS by SNMP</strong>. Шаблон автоматически настраивает мониторинг:</p>
<ul>
<li>Заряд батареи (<code>upsAdvBatteryCapacity</code>)</li>
<li>Статус UPS (<code>upsBasicOutputStatus</code>)</li>
<li>Нагрузка в процентах (<code>upsAdvOutputLoad</code>)</li>
<li>Время автономии (<code>upsAdvBatteryRunTimeRemaining</code>)</li>
<li>Температура батарейного блока (<code>upsAdvBatteryTemperature</code>)</li>
</ul>
<p><strong>Шаг 3:</strong> Настраиваем триггеры: алерт при заряде ниже 30%, критический при ниже 15%, алерт при переходе на батарею. Теперь система сама позвонит раньше, чем UPS успеет умереть.</p>
<h3>Кейс 2: Мониторинг Cisco-коммутатора — трафик, загрузка, температура</h3>
<p><strong>Ситуация:</strong> Нужно мониторить ядровой Cisco Catalyst 3850: загрузку CPU, память, температуру, трафик на аплинк-портах.</p>
<p><strong>Настройка на коммутаторе:</strong></p>
<pre><code class="language-bash">
conf t
snmp-server community monitoring RO
snmp-server host 192.168.10.50 version 2c monitoring
snmp-server enable traps cpu threshold
snmp-server enable traps envmon temperature
end
</code></pre>
<p><strong>Проверка с хоста мониторинга:</strong></p>
<pre><code class="language-bash">
# CPU load
snmpget -v2c -c monitoring 192.168.1.1 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1
# Температура
snmpwalk -v2c -c monitoring 192.168.1.1 1.3.6.1.4.1.9.9.13.1.3
# Трафик на интерфейсе GigabitEthernet1/0/1 (ifIndex = 1)
snmpget -v2c -c monitoring 192.168.1.1 1.3.6.1.2.1.2.2.1.10.1 # In octets
snmpget -v2c -c monitoring 192.168.1.1 1.3.6.1.2.1.2.2.1.16.1 # Out octets
</code></pre>
<p>В Zabbix привязываем шаблон <strong>Cisco IOS SNMP</strong> — и получаем готовые графики трафика, CPU, памяти и температуры без ручного прописывания OID.</p>
<h3>Кейс 3: Контроль температуры в серверной через SNMP</h3>
<p><strong>Ситуация:</strong> В серверной установлен датчик температуры с SNMP-интерфейсом (например, Netbotz или аналог). Нужно получать алерты при перегреве.</p>
<pre><code class="language-bash">
# Получаем показания датчика
snmpwalk -v2c -c public 192.168.1.200 1.3.6.1.4.1.XXXX
# Узнаём нужный OID через полный обход
snmpwalk -v2c -c public 192.168.1.200 | grep -i temp
</code></pre>
<p>В Zabbix создаём элемент данных с нужным OID, задаём триггеры:</p>
<ul>
<li>Предупреждение: температура выше 27°C</li>
<li>Критический: температура выше 35°C</li>
</ul>
<p>Дополнительно: настраиваем медиа-уведомления в Zabbix — при критическом алерте приходит SMS и email. Ночью в серверной кондиционер встал — вы узнаете раньше, чем железо начнёт дросселировать.</p>
<h3>Кейс 4: Автоматическое выключение серверов при разряде UPS</h3>
<p><strong>Ситуация:</strong> UPS на батарее, питание не появляется, серверам нужно корректно выключиться до того, как UPS отключится аварийно.</p>
<p><strong>Решение:</strong> NUT (Network UPS Tools) + SNMP. NUT читает данные с UPS и при заряде ниже порога запускает <code>upssched</code>, который рассылает команды на все подключённые серверы.</p>
<pre><code class="language-bash">
# Установка NUT на Ubuntu
sudo apt install nut nut-snmp
# /etc/nut/ups.conf - описание UPS
[myups]
driver = snmp-ups
port = 192.168.1.100
community = public
snmp_version = v2c
# /etc/nut/upsmon.conf - настройка мониторинга
MONITOR myups@localhost 1 admin password master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h +0"
# Запуск
sudo systemctl enable nut-server nut-monitor
sudo systemctl start nut-server nut-monitor
</code></pre>
<p>Теперь при падении заряда ниже настроенного порога сервер сам корректно выключится, не дожидаясь аварийного отключения питания.</p>
<h3>Кейс 5: Мониторинг NAS через SNMP</h3>
<p><strong>Ситуация:</strong> В инфраструктуре стоит Synology NAS. Нужно мониторить: состояние дисков, статус RAID, нагрузку CPU, использование памяти и объём хранилища.</p>
<p><strong>Включение SNMP на Synology:</strong> Control Panel → Terminal & SNMP → SNMP. Задаём community string, указываем версию.</p>
<p><strong>Полезные OID Synology (SYNOLOGY-SYSTEM-MIB):</strong></p>
<pre><code class="language-bash">
# Температура системы
snmpget -v2c -c monitoring 192.168.1.150 1.3.6.1.4.1.6574.1.2.0
# Статус вентилятора
snmpget -v2c -c monitoring 192.168.1.150 1.3.6.1.4.1.6574.1.4.1.0
# Статус RAID (1 = нормально, 2 = деградировано и т.д.)
snmpwalk -v2c -c monitoring 192.168.1.150 1.3.6.1.4.1.6574.3
# Статус диска
snmpwalk -v2c -c monitoring 192.168.1.150 1.3.6.1.4.1.6574.2
</code></pre>
<p>В Zabbix доступен шаблон <strong>Synology NAS SNMP</strong> — привязываем и получаем полный дашборд состояния NAS за пять минут.</p>
<h2>Типичные проблемы SNMP и как их решить</h2>
<table>
<thead>
<tr>
<th>Симптом</th>
<th>Вероятная причина</th>
<th>Решение</th>
</tr>
</thead>
<tbody>
<tr>
<td>Timeout при snmpwalk</td>
<td>Firewall блокирует UDP 161</td>
<td>Открыть UDP 161 с IP системы мониторинга</td>
</tr>
<tr>
<td>«No such object» на все OID</td>
<td>Неправильный community string</td>
<td>Проверить community на устройстве и в запросе</td>
</tr>
<tr>
<td>Пустой ответ на OID</td>
<td>OID не поддерживается устройством</td>
<td>Сделать snmpwalk и найти актуальный OID</td>
</tr>
<tr>
<td>SNMPv3: Authentication failure</td>
<td>Несовпадение алгоритма или пароля</td>
<td>Проверить auth (MD5/SHA) и пароли на обоих концах</td>
</tr>
<tr>
<td>Трапы не приходят в Zabbix</td>
<td>UDP 162 закрыт на сервере мониторинга</td>
<td>Открыть UDP 162 входящий на Zabbix-сервер</td>
</tr>
<tr>
<td>SNMP работает, но данные некорректны</td>
<td>Неправильный MIB или единицы измерения</td>
<td>Проверить документацию вендора, загрузить MIB</td>
</tr>
<tr>
<td>В Zabbix «SNMP agent is not available»</td>
<td>Неправильный IP или порт, либо timeout</td>
<td>Проверить доступность через snmpget с сервера Zabbix</td>
</tr>
</tbody>
</table>
<h3>Быстрая диагностика проблем SNMP</h3>
<pre><code class="language-bash">
# Проверяем открыт ли порт
nc -zu 192.168.1.1 161 && echo "Port open" || echo "Port closed"
# Или через nmap
nmap -sU -p 161 192.168.1.1
# Минимальный тест доступности
snmpget -v2c -c public -t 5 -r 1 192.168.1.1 1.3.6.1.2.1.1.1.0
# Смотрим что слушает агент на Linux
ss -ulnp | grep 161
</code></pre>
<h2>Порты SNMP: что открывать в файрволе</h2>
<ul>
<li><strong>UDP 161</strong> — основной порт агента. Менеджер отправляет GET-запросы на этот порт устройства. <em>Открывать входящий на устройстве, только с IP системы мониторинга.</em></li>
<li><strong>UDP 162</strong> — порт для приёма трапов. Агент отправляет трапы на этот порт менеджера. <em>Открывать входящий на сервере мониторинга.</em></li>
</ul>
<pre><code class="language-bash">
# Открыть SNMP на Linux (iptables)
iptables -A INPUT -p udp --dport 161 -s 192.168.10.50 -j ACCEPT
iptables -A INPUT -p udp --dport 162 -j ACCEPT
# Или через firewalld (RHEL/Fedora)
firewall-cmd --add-port=161/udp --permanent
firewall-cmd --add-port=162/udp --permanent
firewall-cmd --reload
# UFW (Ubuntu)
ufw allow from 192.168.10.50 to any port 161 proto udp
ufw allow 162/udp
</code></pre>
<h2>Заключение: SNMP — скучный протокол, который спасает серверные</h2>
<p>SNMP не модный. На него не пишут стартапы и не делают доклады на конференциях. Но он работает везде, поддерживается всеми производителями и интегрируется в любую систему мониторинга. Пока существует сетевое оборудование — SNMP никуда не денется.</p>
<p>Мы разобрали: как устроен протокол, чем отличаются v1/v2c/v3, что такое SNMP-карта для UPS, как настроить SNMP на Cisco, <a title="NSLOOKUP: шпаргалка IT-инженера с примерами для Windows и Linux" href="https://it-apteka.com/nslookup-shpargalka-it-inzhenera-s-primerami-dlja-windows-i-linux/" target="_blank" rel="noopener" data-wpil-monitor-id="733">Windows и Linux</a>, как подключить всё это к Zabbix — и пять кейсов из реальной жизни. Теперь у вас есть всё, чтобы настроить мониторинг инфраструктуры через SNMP без лишних приключений.</p>
<p>Мониторите серверную? Столкнулись с нестандартным OID или упрямым вендорским MIB? Пишите в комментарии — разберём.</p>
Есть такая категория технологий, которые существуют везде, используются всеми, но мало кто может с ходу объяснить, как именно они работают. SNMP — один из таких протоколов. Он живёт в вашем Cisco-коммутаторе, в UPS под столом серверной, в NAS в углу, в принтере на третьем этаже и в паре IoT-девайсов, о существовании которых вы уже забыли. Если в вашей сети больше десяти устройств — вы уже используете инфраструктуру, которую SNMP способен мониторить. Вопрос только в том, настроили ли вы это.
В этой статье разберём SNMP с нуля до продакшна: что это за протокол, как он работает, чем отличаются версии, что такое SNMP-карта для UPS, как настроить SNMP на Cisco и Windows, как подключить всё это к Zabbix — и пять реальных кейсов из жизни системного администратора. Готовые команды, минимум воды.
Что такое SNMP и зачем он нужен
SNMP (Simple Network Management Protocol) — протокол прикладного уровня для мониторинга и управления сетевыми устройствами. Разработан в конце 1980-х и с тех пор практически не исчез из IT-инфраструктуры. Название обманчивое: «Simple» в названии означает простую модель данных, а не простоту настройки — с этим у SNMP бывают нюансы.
SNMP позволяет системе мониторинга централизованно собирать данные с сотен устройств, не устанавливая на каждое из них отдельный агент с проприетарным протоколом. Производители сетевого оборудования договорились поддерживать единый стандарт — и это решение оказалось на удивление живучим.
Где используется SNMP
Короче спросить, где он не используется. SNMP поддерживают:
Маршрутизаторы и коммутаторы — Cisco, Juniper, Huawei, MikroTik, D-Link, Eltex
Если устройство имеет сетевой интерфейс и хоть какое-то управление — с вероятностью 80% там есть SNMP.
Как работает SNMP: механика без воды
Архитектура SNMP строится на трёх ключевых компонентах.
SNMP Manager (менеджер)
Это ваша система мониторинга — Zabbix, Nagios, PRTG, Prometheus с SNMP exporter. Менеджер инициирует запросы к устройствам и собирает данные. Он знает, что спрашивать и у кого.
SNMP Agent (агент)
Это программный компонент на самом устройстве — маршрутизаторе, коммутаторе, сервере. Агент отвечает на запросы менеджера и сам инициирует уведомления (трапы) при наступлении событий. На большинстве сетевых устройств агент встроен в прошивку.
MIB и OID
MIB (Management Information Base) — это база данных, описывающая, какие параметры можно запросить у устройства. Что-то вроде словаря: вот список всего, о чём можно спросить агента, и в каком формате придёт ответ.
OID (Object Identifier) — уникальный числовой адрес каждого параметра в дереве MIB. Например, OID 1.3.6.1.2.1.1.1.0 — это sysDescr, описание системы. Каждая точка в строке — это уровень иерархии, как путь в файловой системе, только цифрами.
Polling и Traps
SNMP работает в двух режимах взаимодействия:
Polling (опрос) — менеджер регулярно спрашивает агента: «Какая у тебя загрузка CPU? Сколько трафика прошло через интерфейс?» Агент отвечает. Это основной режим мониторинга.
Traps (ловушки) — агент сам отправляет уведомление менеджеру при наступлении события: упал интерфейс, UPS перешёл на батарею, температура превысила порог. Не нужно ждать следующего опроса — оповещение приходит сразу.
Порты: агент слушает UDP 161 (запросы), менеджер принимает трапы на UDP 162. Запомните эти два числа — они пригодятся при настройке файрвола.
Архитектура SNMP: менеджер опрашивает агентов по OID, агенты отправляют трапы при событиях
Версии SNMP: v1, v2c и v3 — в чём разница
За 30+ лет существования SNMP прошёл через три версии. Каждая следующая исправляла проблемы предыдущей — в основном в части безопасности.
SNMP v1
Самая первая версия, 1988 год. Использует community string — строку-пароль, передаваемую в открытом виде. Никакого шифрования, никакой авторизации. По современным меркам — дыра в безопасности размером с ворота. Встречается только на очень старом оборудовании, использовать не рекомендуется.
SNMP v2c
Самая распространённая версия сегодня. Добавила bulk-запросы (получить сразу много данных одним запросом) и улучшила обработку ошибок. Community string по-прежнему передаётся в открытом виде — безопасность не улучшилась. Но скорость работы выросла, и именно поэтому v2c до сих пор используется в большинстве инфраструктур.
SNMP v3
Версия с настоящей безопасностью. Добавила:
Аутентификацию — пользователи с паролями (MD5 или SHA)
Шифрование трафика — DES, 3DES, AES
Защиту от replay-атак
Настраивать v3 чуть сложнее, но в любой инфраструктуре, выходящей за пределы домашней лаборатории, использование v3 — это не опция, а необходимость.
Сравнительная таблица версий SNMP
Характеристика
SNMP v1
SNMP v2c
SNMP v3
Год появления
1988
1993
2004
Аутентификация
Community string
Community string
Пользователь + пароль
Шифрование
❌ Нет
❌ Нет
✅ AES/3DES
Bulk-запросы
❌ Нет
✅ Есть
✅ Есть
Безопасность
Никакой
Слабая
Хорошая
Сложность настройки
Минимальная
Низкая
Средняя
Рекомендуется
❌ Нет
⚠️ Для изолированных сетей
✅ Да
SNMP-карта: что это и зачем она нужна
Отдельная история — SNMP-карты (SNMP cards). Это платы расширения или встроенные модули, которые добавляют SNMP-функциональность устройствам, у которых её нет нативно или которым нужен выделенный канал управления.
Чаще всего SNMP-карты встречаются в UPS (источниках бесперебойного питания). Сам UPS умеет работать с питанием, но для удалённого мониторинга и управления нужна именно SNMP-карта управления — отдельный модуль со своим сетевым интерфейсом, процессором и прошивкой.
Что умеет SNMP-карта для UPS
Мониторинг заряда батареи и времени автономной работы
Контроль входного и выходного напряжения
Мониторинг нагрузки (в ваттах и процентах от номинала)
Контроль температуры внутри UPS
Отправка SNMP Traps при переходе на батарею, перегрузке, критическом заряде
Удалённое управление — выключение, перезагрузка, управление розетками (PDU-функции)
Уведомления по email (SMTP)
Веб-интерфейс для ручного управления
Интеграция с системами мониторинга (Zabbix, PRTG, Nagios)
Популярные производители SNMP-карт
APC (Schneider Electric) — карты серии AP9630/AP9631 (Network Management Card 2) и AP9640/AP9641 (NMC3). Самые распространённые в корпоративном сегменте. Богатый функционал, хорошая документация, интеграция с PowerChute.
Eaton — карты серии Gigabit Network Card (NETWORK-M2). Поддерживают SNMP v1/v2c/v3, ModBus, веб-интерфейс.
Ippon — SNMP-карты для линеек Smart Winner и Smart Power. Более бюджетный вариант, но достаточный для базового мониторинга. Ippon SNMP поддерживает стандартные MIB UPS-MIB (RFC 1628) и часто имеет собственный MIB производителя.
SNMP-карта управления для UPS — отдельный модуль с Ethernet, веб-интерфейсом и поддержкой SNMP v1/v2c/v3
SNMP для UPS: мониторинг источников бесперебойного питания
Мониторинг UPS через SNMP — один из самых важных кейсов для серверной. Представьте: ночью пропало питание, UPS перешёл на батарею, заряд упал до 10% — а система мониторинга молчит, потому что SNMP не настроен. Итог предсказуем.
Что мониторят в UPS через SNMP
Стандартный MIB для UPS — UPS-MIB (RFC 1628). Ключевые OID:
Параметр
OID
Описание
Статус UPS
1.3.6.1.2.1.33.1.4.1.0
On-line, On-battery, и др.
Заряд батареи
1.3.6.1.2.1.33.1.2.4.0
Процент заряда
Время автономии
1.3.6.1.2.1.33.1.2.3.0
Оставшееся время в сотых долях секунды
Нагрузка
1.3.6.1.2.1.33.1.4.4.1.5
Процент нагрузки на выходе
Температура батареи
1.3.6.1.2.1.33.1.2.7.0
Температура в градусах Цельсия
Входное напряжение
1.3.6.1.2.1.33.1.3.3.1.3
Вольты на входе
Проверить доступность и получить данные с UPS:
# Проверяем что UPS отвечает на SNMP
snmpwalk -v2c -c public 192.168.1.100
# Получаем заряд батареи
snmpget -v2c -c public 192.168.1.100 1.3.6.1.2.1.33.1.2.4.0
# Получаем статус UPS
snmpget -v2c -c public 192.168.1.100 1.3.6.1.2.1.33.1.4.1.0
Интерфейсы подключения SNMP для UPS
SNMP-карты и модули для UPS подключаются по-разному в зависимости от модели и задачи:
SNMP Ethernet — самый распространённый вариант. Карта устанавливается в слот расширения UPS и подключается к сети патч-кордом. Поддерживает полный функционал: SNMP, веб-интерфейс, email-уведомления.
SNMP USB — часто используется в небольших UPS начального уровня, где нет слота для SNMP-карты. Подключается к серверу через USB, сервер выступает как SNMP-прокси. Типичный пример — NUT (Network UPS Tools) на Linux: читает данные с UPS через USB и публикует их через SNMP.
SNMP RS232 — встречается на старых моделях UPS. Последовательный порт, адаптер RS232-Ethernet или RS232-USB. Используется в legacy-инсталляциях, где замена UPS нецелесообразна.
Настройка SNMP на Cisco: пошаговая инструкция
Коммутаторы и маршрутизаторы Cisco — самое частое применение SNMP в корпоративных сетях. Настройка занимает несколько минут.
Базовая настройка SNMP v2c на Cisco IOS
conf t
! Включаем SNMP community только для чтения
snmp-server community public RO
snmp-server community monitoring RO
! Описание устройства для системы мониторинга
snmp-server location ServerRoom-Rack3
snmp-server contact admin@example.com
! Ограничиваем доступ только с IP системы мониторинга
! (рекомендуется всегда!)
ip access-list standard SNMP-ACCESS
permit 192.168.10.50
deny any
snmp-server community monitoring RO SNMP-ACCESS
! Включаем отправку трапов на сервер мониторинга
snmp-server host 192.168.10.50 version 2c monitoring
snmp-server enable traps
end
write memory
Несколько важных замечаний:
Никогда не оставляйте community string как public в продакшне — это первое что проверяют сканеры безопасности.
Всегда ограничивайте доступ через ACL — только с IP вашей системы мониторинга.
Для read-only мониторинга достаточно RO — не давайте RW без необходимости.
Настройка SNMP v3 на Cisco IOS
SNMPv3 требует больше команд, но обеспечивает реальную безопасность:
conf t
! Создаём группу с аутентификацией и шифрованием
snmp-server group MONITOR v3 priv
! Создаём пользователя в группе
! auth sha - алгоритм аутентификации SHA
! priv aes 128 - шифрование AES-128
snmp-server user zabbix MONITOR v3 \
auth sha MyAuthPassword2024 \
priv aes 128 MyPrivPassword2024
! Разрешаем трапы для SNMPv3
snmp-server host 192.168.10.50 version 3 priv zabbix
end
write memory
Параметры безопасности SNMPv3:
Уровень
Команда
Что даёт
noAuthNoPriv
v3 noauth
Нет аутентификации, нет шифрования
AuthNoPriv
v3 auth
Аутентификация, трафик открытый
AuthPriv
v3 priv
Аутентификация + шифрование трафика
Для продакшна — только priv. Остальное — компромисс.
Проверка настройки SNMP на Cisco
! Смотрим текущую конфигурацию SNMP
show snmp
show snmp community
show snmp user
show snmp group
SNMP в Windows: включение и настройка службы
Windows Server поддерживает SNMP через системную службу. По умолчанию не установлена — нужно добавить.
Установка SNMP Service на Windows Server
Через Server Manager:
Server Manager → Manage → Add Roles and Features
Features → отмечаем SNMP Service
Устанавливаем
Через PowerShell (быстрее):
# Установка SNMP Service
Add-WindowsFeature SNMP-Service
# Установка SNMP WMI Provider (опционально, для дополнительных данных)
Add-WindowsFeature SNMP-WMI-Provider
Настройка SNMP Service в Windows
# Через реестр (для автоматизации)
# Community string
reg add "HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities" `
/v "monitoring" /t REG_DWORD /d 4 /f
# 4 = READ ONLY, 8 = READ WRITE
# Разрешённые хосты для SNMP
reg add "HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers" `
/v "1" /t REG_SZ /d "192.168.10.50" /f
# Перезапускаем службу
Restart-Service SNMP
Либо через GUI: services.msc → SNMP Service → Properties → Security. Здесь настраиваем community strings и список разрешённых хостов.
Полезные OID для мониторинга Windows через SNMP
# Загрузка CPU
snmpwalk -v2c -c monitoring 192.168.1.10 1.3.6.1.2.1.25.3.3.1.2
# Использование памяти
snmpwalk -v2c -c monitoring 192.168.1.10 1.3.6.1.2.1.25.2.3.1
# Список процессов
snmpwalk -v2c -c monitoring 192.168.1.10 1.3.6.1.2.1.25.4.2.1.2
# Сетевые интерфейсы
snmpwalk -v2c -c monitoring 192.168.1.10 1.3.6.1.2.1.2.2.1
Настройка SNMP на Linux
На Linux SNMP-агент реализован через пакет net-snmp.
# <a title="Настройка статического IP в Ubuntu 22.04-24.04 и Debian 12-13: Новый мир Netplan" href="https://it-apteka.com/nastrojka-staticheskogo-ip-v-ubuntu-22-04-24-04-i-debian-12-13-nov/" target="_blank" rel="noopener" data-wpil-monitor-id="736">Ubuntu / Debian</a>
sudo apt install snmpd snmp
# RHEL / Fedora / Rocky
sudo dnf install net-snmp net-snmp-utils
# Конфигурационный файл
sudo nano /etc/snmp/snmpd.conf
Минимальная конфигурация /etc/snmp/snmpd.conf для v2c:
# Разрешаем доступ только с сервера мониторинга
agentAddress udp:161
# Community string только для чтения
rocommunity monitoring 192.168.10.50
# Описание системы
sysLocation ServerRoom
sysContact admin@example.com
# Разрешаем мониторинг всей системы
view systemonly included .1
Zabbix — один из самых популярных инструментов мониторинга с отличной поддержкой SNMP. Разберём, как добавить SNMP-устройство и что с ним делать дальше.
Добавление SNMP-устройства в Zabbix
Переходим в Configuration → Hosts → Create Host
На вкладке Host заполняем имя и группу
Добавляем интерфейс: тип SNMP, IP-адрес устройства, порт 161
На вкладке Macros задаём:
{$SNMP_COMMUNITY} = monitoring (для v2c)
Или параметры v3: {$SNMP_USER}, {$SNMP_AUTH_PASSWORD}, {$SNMP_PRIV_PASSWORD}
На вкладке Templates привязываем подходящий шаблон
Zabbix: добавление SNMP-устройства — выбор интерфейса SNMP и привязка шаблона мониторинга
Готовые шаблоны Zabbix для SNMP
Zabbix поставляется с большим набором готовых SNMP-шаблонов:
Cisco IOS SNMP — CPU, память, интерфейсы, температура
APC UPS SNMP — заряд батареи, нагрузка, статус, время автономии
Generic SNMP — базовые системные параметры по стандартным OID
Windows SNMP — базовый мониторинг Windows-хостов
Linux SNMP — через net-snmp
Не нашли шаблон для вашего оборудования в стандартной поставке — загляните на Zabbix Integrations: там тысячи шаблонов от сообщества.
Создание SNMP-элемента данных вручную в Zabbix
# Пример для ручного добавления элемента
# Тип: SNMP agent
# OID: 1.3.6.1.2.1.33.1.2.4.0
# Имя: UPS Battery Charge
# Тип данных: Numeric (unsigned)
# Единицы: %
Полезные инструменты для работы с SNMP
Прежде чем настраивать Zabbix, полезно освоить CLI-инструменты для ручной диагностики. Пакет snmp (на Linux) содержит всё необходимое.
# Получить всё что отдаёт устройство по SNMP v2c
snmpwalk -v2c -c public 192.168.1.1
# С расшифровкой имён OID (нужны MIB-файлы)
snmpwalk -v2c -c public -m ALL 192.168.1.1
# Только системная информация
snmpwalk -v2c -c public 192.168.1.1 system
# SNMPv3
snmpwalk -v3 -l authPriv \
-u zabbix \
-a SHA -A MyAuthPassword2024 \
-x AES -X MyPrivPassword2024 \
192.168.1.1
snmpget — получить конкретный OID
# Получить описание системы
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.1.0
# Получить uptime
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.3.0
# Получить имя хоста
snmpget -v2c -c public 192.168.1.1 1.3.6.1.2.1.1.5.0
snmptranslate — перевод OID в человекочитаемый формат
# OID в имя
snmptranslate 1.3.6.1.2.1.1.1.0
# Результат: SNMPv2-MIB::sysDescr.0
# Имя в OID
snmptranslate -On SNMPv2-MIB::sysDescr.0
# Результат: .1.3.6.1.2.1.1.1.0
snmpbulkwalk — быстрый обход (SNMP v2c/v3)
# Значительно быстрее snmpwalk для больших таблиц
snmpbulkwalk -v2c -c public 192.168.1.1 interfaces
Пять практических кейсов из жизни администратора
Кейс 1: Мониторинг UPS через SNMP-карту — чтобы не узнать о разряде постфактум
Ситуация: В серверной стоит APC Smart-UPS 3000 с SNMP-картой NMC2. Нужно мониторить заряд, нагрузку и получать алерты при переходе на батарею.
Шаг 1: Проверяем что UPS отвечает на SNMP:
snmpwalk -v2c -c public 192.168.1.100 .1.3.6.1.4.1.318
# .1.3.6.1.4.1.318 - OID APC (PowerNet-MIB)
Шаг 2: В Zabbix добавляем хост с SNMP-интерфейсом, привязываем шаблон APC UPS by SNMP. Шаблон автоматически настраивает мониторинг:
Заряд батареи (upsAdvBatteryCapacity)
Статус UPS (upsBasicOutputStatus)
Нагрузка в процентах (upsAdvOutputLoad)
Время автономии (upsAdvBatteryRunTimeRemaining)
Температура батарейного блока (upsAdvBatteryTemperature)
Шаг 3: Настраиваем триггеры: алерт при заряде ниже 30%, критический при ниже 15%, алерт при переходе на батарею. Теперь система сама позвонит раньше, чем UPS успеет умереть.
Кейс 2: Мониторинг Cisco-коммутатора — трафик, загрузка, температура
Ситуация: Нужно мониторить ядровой Cisco Catalyst 3850: загрузку CPU, память, температуру, трафик на аплинк-портах.
Настройка на коммутаторе:
conf t
snmp-server community monitoring RO
snmp-server host 192.168.10.50 version 2c monitoring
snmp-server enable traps cpu threshold
snmp-server enable traps envmon temperature
end
Проверка с хоста мониторинга:
# CPU load
snmpget -v2c -c monitoring 192.168.1.1 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1
# Температура
snmpwalk -v2c -c monitoring 192.168.1.1 1.3.6.1.4.1.9.9.13.1.3
# Трафик на интерфейсе GigabitEthernet1/0/1 (ifIndex = 1)
snmpget -v2c -c monitoring 192.168.1.1 1.3.6.1.2.1.2.2.1.10.1 # In octets
snmpget -v2c -c monitoring 192.168.1.1 1.3.6.1.2.1.2.2.1.16.1 # Out octets
В Zabbix привязываем шаблон Cisco IOS SNMP — и получаем готовые графики трафика, CPU, памяти и температуры без ручного прописывания OID.
Кейс 3: Контроль температуры в серверной через SNMP
Ситуация: В серверной установлен датчик температуры с SNMP-интерфейсом (например, Netbotz или аналог). Нужно получать алерты при перегреве.
# Получаем показания датчика
snmpwalk -v2c -c public 192.168.1.200 1.3.6.1.4.1.XXXX
# Узнаём нужный OID через полный обход
snmpwalk -v2c -c public 192.168.1.200 | grep -i temp
В Zabbix создаём элемент данных с нужным OID, задаём триггеры:
Предупреждение: температура выше 27°C
Критический: температура выше 35°C
Дополнительно: настраиваем медиа-уведомления в Zabbix — при критическом алерте приходит SMS и email. Ночью в серверной кондиционер встал — вы узнаете раньше, чем железо начнёт дросселировать.
Кейс 4: Автоматическое выключение серверов при разряде UPS
Ситуация: UPS на батарее, питание не появляется, серверам нужно корректно выключиться до того, как UPS отключится аварийно.
Решение: NUT (Network UPS Tools) + SNMP. NUT читает данные с UPS и при заряде ниже порога запускает upssched, который рассылает команды на все подключённые серверы.
# Установка NUT на Ubuntu
sudo apt install nut nut-snmp
# /etc/nut/ups.conf - описание UPS
[myups]
driver = snmp-ups
port = 192.168.1.100
community = public
snmp_version = v2c
# /etc/nut/upsmon.conf - настройка мониторинга
MONITOR myups@localhost 1 admin password master
POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h +0"
# Запуск
sudo systemctl enable nut-server nut-monitor
sudo systemctl start nut-server nut-monitor
Теперь при падении заряда ниже настроенного порога сервер сам корректно выключится, не дожидаясь аварийного отключения питания.
Кейс 5: Мониторинг NAS через SNMP
Ситуация: В инфраструктуре стоит Synology NAS. Нужно мониторить: состояние дисков, статус RAID, нагрузку CPU, использование памяти и объём хранилища.
Включение SNMP на Synology: Control Panel → Terminal & SNMP → SNMP. Задаём community string, указываем версию.
Полезные OID Synology (SYNOLOGY-SYSTEM-MIB):
# Температура системы
snmpget -v2c -c monitoring 192.168.1.150 1.3.6.1.4.1.6574.1.2.0
# Статус вентилятора
snmpget -v2c -c monitoring 192.168.1.150 1.3.6.1.4.1.6574.1.4.1.0
# Статус RAID (1 = нормально, 2 = деградировано и т.д.)
snmpwalk -v2c -c monitoring 192.168.1.150 1.3.6.1.4.1.6574.3
# Статус диска
snmpwalk -v2c -c monitoring 192.168.1.150 1.3.6.1.4.1.6574.2
В Zabbix доступен шаблон Synology NAS SNMP — привязываем и получаем полный дашборд состояния NAS за пять минут.
Типичные проблемы SNMP и как их решить
Симптом
Вероятная причина
Решение
Timeout при snmpwalk
Firewall блокирует UDP 161
Открыть UDP 161 с IP системы мониторинга
«No such object» на все OID
Неправильный community string
Проверить community на устройстве и в запросе
Пустой ответ на OID
OID не поддерживается устройством
Сделать snmpwalk и найти актуальный OID
SNMPv3: Authentication failure
Несовпадение алгоритма или пароля
Проверить auth (MD5/SHA) и пароли на обоих концах
Трапы не приходят в Zabbix
UDP 162 закрыт на сервере мониторинга
Открыть UDP 162 входящий на Zabbix-сервер
SNMP работает, но данные некорректны
Неправильный MIB или единицы измерения
Проверить документацию вендора, загрузить MIB
В Zabbix «SNMP agent is not available»
Неправильный IP или порт, либо timeout
Проверить доступность через snmpget с сервера Zabbix
Быстрая диагностика проблем SNMP
# Проверяем открыт ли порт
nc -zu 192.168.1.1 161 && echo "Port open" || echo "Port closed"
# Или через nmap
nmap -sU -p 161 192.168.1.1
# Минимальный тест доступности
snmpget -v2c -c public -t 5 -r 1 192.168.1.1 1.3.6.1.2.1.1.1.0
# Смотрим что слушает агент на Linux
ss -ulnp | grep 161
Порты SNMP: что открывать в файрволе
UDP 161 — основной порт агента. Менеджер отправляет GET-запросы на этот порт устройства. Открывать входящий на устройстве, только с IP системы мониторинга.
UDP 162 — порт для приёма трапов. Агент отправляет трапы на этот порт менеджера. Открывать входящий на сервере мониторинга.
# Открыть SNMP на Linux (iptables)
iptables -A INPUT -p udp --dport 161 -s 192.168.10.50 -j ACCEPT
iptables -A INPUT -p udp --dport 162 -j ACCEPT
# Или через firewalld (RHEL/Fedora)
firewall-cmd --add-port=161/udp --permanent
firewall-cmd --add-port=162/udp --permanent
firewall-cmd --reload
# UFW (Ubuntu)
ufw allow from 192.168.10.50 to any port 161 proto udp
ufw allow 162/udp
Заключение: SNMP — скучный протокол, который спасает серверные
SNMP не модный. На него не пишут стартапы и не делают доклады на конференциях. Но он работает везде, поддерживается всеми производителями и интегрируется в любую систему мониторинга. Пока существует сетевое оборудование — SNMP никуда не денется.
Мы разобрали: как устроен протокол, чем отличаются v1/v2c/v3, что такое SNMP-карта для UPS, как настроить SNMP на Cisco, Windows и Linux, как подключить всё это к Zabbix — и пять кейсов из реальной жизни. Теперь у вас есть всё, чтобы настроить мониторинг инфраструктуры через SNMP без лишних приключений.
Мониторите серверную? Столкнулись с нестандартным OID или упрямым вендорским MIB? Пишите в комментарии — разберём.
Руководитель ИТ / Кризис-менеджер 25 лет в IT: от инженера в МегаФоне до руководителя отдела. Знаю, как выглядит бардак: нестабильные сети, устаревшая инфраструктура, конфликты в команде, раздутые сроки. Помогаю бизнесу выходить из кризиса: навожу порядок в легаси, стабилизирую то, что разваливается, выстраиваю прогнозируемые процессы. Не раз возвращал к жизни ИТ-структуры — знаю цену хаосу. 📍 Ищу проект для полной реорганизации / стабилизации. 📬 Telegram: @over_dude ✉️ mail@it-apteka.com
Оставайтесь на связи
Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.