- Установка и настройка SNMP в CentOS
- Установка агента SNMP и утилит диагностики в CentOS Linux
- Настройка SNMP агента в CentOS
- Опрос SNMP агента с помощью утилиты snmpwalk
- Настройка протокола SNMP v3 в CentOS
- SNMP MIBs и как их готовить
- Предыстория
- Установка MIBs
- Программное обеспечение
- Итого
- Примеры snmpwalk для Windows и Linux
- Как работает SNMP?
- Что такое snmpwalk?
- Установка snmpwalk в Windows
- Установка snmpwalk в Linux
- Параметры и параметры Snmpwalk в Windows и Linux
- Как минимизировать информацию, которую вы видите с помощью snmpwalk
- Примеры Snmpwalk
- Экономьте время с snmpwalk
- Использование MIB с агентом SNMP
- Мониторинг SNMP, MIB и OID Paessler с помощью PRTG (БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯ)
Установка и настройка SNMP в CentOS
Протокол SNMP (Simple Network Management Protocol) используется для получения информации о текущем состоянии серверов, сетевых устройств, принтеров и другого IP оборудования (можно собирать различные метрики: загрузка CPU, количество процессов, состояние служб и многое другое). Основные преимущества SNMP – он поддерживается практически на любых устройствах и не требует установки отдельного агента системы мониторинга. В этой статье мы рассмотрим, как установить и настроить SNMP агент (и SNMP v3) на сервере под управлением Linux CentOS 8.
Установка агента SNMP и утилит диагностики в CentOS Linux
Перед установкой пакетов SNMP, сначала установите на сервере последние обновления с помощью пакетного менеджера dnf (yum):
Затем установите агент SNMP и дополнительные утилиты из стандартного репозитория:
# dnf install net-snmp net-snmp-utils -y
Настройка SNMP агента в CentOS
Перед началом настройки параметров SNMP сервиса, создайте копию оригинального конфигурационного файла:
# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
Теперь отредактируйте настройки SNMP агента:
Добавьте следующие строки:
Сохраните файл (локацию и почтовый ящик желательно указать корректные). Теперь нужно добавить в автозагрузку сервис snmpd и запустить его:
# systemctl enable snmpd.service
# systemctl start snmpd
Проверьте, что сервис запущен:
# systemctl status snmpd
Если на сервере используется файерволл, нужно разрешить подключение к портам 161 и 162 TCP/UDP. Для firewalld в CentOS можно выполнить такие команды:
# firewall-cmd —zone=public —add-port=161/udp —permanent
# firewall-cmd —zone=public —add-port=161/tcp –permanent
# firewall-cmd —zone=public —add-port=162/udp —permanent
# firewall-cmd —zone=public —add-port=162/tcp —permanent
# firewall-cmd —reload
Опрос SNMP агента с помощью утилиты snmpwalk
С помощью утилиты snmpwalk вы можете опросить SNMP агент. Для локальной проверки службы по протоколу SMMPv2 используется команда:
# snmpwalk -v 2c -c public -O e 127.0.0.1
Если SNMP настроен корректно, вы получите от агента набор SNMP данных.
Решилось она очисткой всего конфигурационного файла и добавлением только тех строчек, которые я указал в статье. Если вам нужны будут какие-то специфичные настройки, внимательно проверяйте все, так как сам сервис запускается без проблем, но фактически он не работает.
Также вы можете опросить сервер локально командой:
# snmpwalk -v2c -c public localhost system
Затем проверьте, что ваш SNMP агент доступен удаленно. Выполните следующую команду с другого сервера (нужно предварительно установить утилиты snmp):
# snmpwalk -v2c -c public 10.10.22.225 system
Как видите, удаленный сервер получил с сервера информацию по протоколу SNMP. Теперь вы можете добавить сервер в любую из систем мониторинга, работающую по SNMP (например, Zabbix или Cacti).
Настройка протокола SNMP v3 в CentOS
В первой части статьи мы рассматривали, как настроить SNMP агент, который работает по версиям протокола 1 и 2. SNMPv3 – это более современная и безопасная версия протокола. Оно из преимуществ которого — возможность аутентификации и шифрования. Для настройки SNMPv3 вам нужно создать отдельного пользователя с паролем, задать пароль шифрования, права доступа и алгоритм шифрования (MD5 или SHA).
Чтобы создать пользователя для SNMP v3, нужно остановить сервис snmpd:
# systemctl stop snmpd
Теперь можно создать пользователя:
# net-snmp-create-v3-user -ro -A 123456789 -a SHA -X 1234567890 -x AES snmpuser
net-snmp-create-v3-user [-ro] [-A authpass] [-a MD5|SHA] [-X privpass][-x DES|AES] [username]
- -ro — read-only, то есть пользователь только для чтения
- Authpass — пароль аутентификации
- Privpass — приватный ключ
- Username — пользователь
После запуска команды, у вас будет создан пользователь с заданными паролем и ключом:
# systemctl start snmpd
Попробуйте опросить SNMP агент с помощью утилиты snmpwalk (обратите внимание, для опроса по SNMPv3 нужно указывать имя пользователя, пароль и ключ).
# snmpwalk -v3 -a SHA -A 123456789 -x AES -X 1234567890 -l authPriv -u snmpuser localhost | head
Теперь вы смело можете добавлять свой сервер в любую систему мониторинга, работающую по SNMP.
Источник
SNMP MIBs и как их готовить
Доброго времени суток, читатель.
Предыстория
Установка MIBs
Стандартные
MIBs обычно распространяются в виде архива с пачкой файлов. Многие из них, составленные в iana и ietf, повторяются в каждом архиве, но передаются для совместимости.
Для работы в системе по умолчанию (конкретно для Debian) они должны лежать примерно в /usr/share/mibs
Для начала установим стандартные mibs в систему.
В файле конфигурации /etc/snmp/snmp.conf включить нужные. Пример:
mibs :ALL включает все, что не совсем хорошо. Рекомендую для каждого оборудования иметь папку с mib’ами, т.к. они могут отличаться из одной прошивки к другой.
Частный случай
После распаковки структура следующая:
Программное обеспечение
D-View
Net-SNMP
Возвращаюсь к тому, с чего начинал пост:
Мы скачали архив с MIBs и будем использовать утилиту snmptranslate из пакета Net-SNMP. Для удобства складываем все mibs в одну директорию, но это все равно не хватает:
Чтобы долго не мучатся скопируем недостающие файлы из mibs коммутатора des-3200 с опцией не перезаписывать существующие. И здесь мы уже получаем положительный результат:
UPD: Можно не копировать файлы, а указывать директории локальную и стандартные из системы -M ./:/usr/share/mibs/ietf:/usr/share/mibs/iana (для удобства можно делать alias в шелле)
О флагах:
- -M Указывает на директорию, где искать mibs (можно перечислять, разделяя символом «:»)
Таким образом можно было не складывать все MIBS в одну директорию, но тогда нужно с флагом -M указать все каталоги из первоначального архива. - -m Указывает какой модуль активируем (можно перечислять, разделяя символом «:»)
Без указания модуля будут использоваться те, которые прописаны в /etc/snmp/snmp.conf
% snmptranslate -m ./ -Ln 1.3.6.1.4.1.171.11.117.1.3.2.100.1.2.0.1
RFC1155-SMI::enterprises.171.11.117.1.3.2.100.1.2.0.1 - -Ln Избавляет нас от бесконечной портянки ошибок в иерархии mibs. Точнее -Ln отключает errors в stdout
Теперь, когда трансляция работает, можно вкусить всю прелесть иерархии OIDs. Для этого есть флаги:
Примеры использования
Можно просканировать все mibs и увидеть, что swL2macNotifyInfo есть и на других коммутаторах
Подводные камни D-Link
Еще есть особенность в mibs для 3200, что в них присутствует Object Name loop_detect. Символ «_» в net-snmp не поддерживается, так что для профилактики делаем: % sed -i ‘s/_/-/’ * в директории с mibs. Ошибку об этом символе можно увидеть, если вернуть вывод ошибок (убрать ключ -Ln):
Здесь мы видим, что иерархия не сложилась до конца.
После исправления становится так:
UPD: Можно использовать флаг -P u (-P MIBOPTS Toggle various defaults controlling mib parsing: u: allow the use of underlines in MIB symbols)
Нужно заметить, что я указал конкретный MIB, в котором искать (остальные «подтянутся» из директории ./). В этом случае не возникает ошибок, ну и скорость работы выше.
Если не указать конкретный MIB, то получим ошибки в других mibs
Еще пример
Здесь мы видим тот mib, который ранее использовали в ключе -m DES3200-10-L2MGMT-MIB
SNMPv2-MIB::sysORID.49 = OID: DES3200-10-L2MGMT-MIB::swL2MgmtMIB
Еще бонус в виде команды snmptable
Итого
В данный момент, я перевожу OID SNMP Traps с коммутаторов в понятный для оператора формат. Это послужит основой для системы регистрации событий на оборудовании. Использовать MIBs в приложении мы не собираемся по причине непереносимости и не универсальности. Думаю подавляющее большинство библиотек используют для трансляции OID системные базы MIBs и конфиг /etc/snmp/snmp.conf (их использует Net-SNMP, а библиотека обращется к последнему), а глобально включать эти модули MIBs мы не хотим. Эти данные можно использовать для экспериментов и добиться более универсального варианта по использованию MIBs, но для меня этого достаточно.
UPD:
Полезные ключи:
-TB ищет в MIBs Object Name по regexp
-On выводит Object ID
Примеры:
Источник
Примеры snmpwalk для Windows и Linux
В конце 1980-х, SNMP или Простой протокол управления сетью впервые возник как решение для управления узлами в сети. С тех пор данные SNMP использовались для измерения производительности устройств среди бесчисленных поставщиков, чтобы обеспечить работоспособность сетей. Сегодня SNMP является одним из самых популярных сетевых протоколов в мире и snmpwalk стал методом сканирования для сканирования нескольких узлов одновременно.
Как работает SNMP?
Однако, прежде чем мы рассмотрим команду snmpwalk, нам сначала нужно посмотреть, как работает SNMP. На устройствах с поддержкой SNMP Агент SNMP собирает информацию с устройства и хранит его в База управленческой информации (MIB) где хранятся эти данные, чтобы к ним можно было обращаться каждый раз, когда менеджер SNMP опрашивает агента SNMP.
Когда SNMP Manager запрашивает SNMP-агент, данные берутся из MIB и отправляются в SNMP Manager, где их можно просматривать с помощью инструмента сетевого мониторинга. Существует много разных команд, которые вы можете использовать для запроса агента SNMP. Наиболее распространенными способами являются использование ПОЛУЧИТЬ или GET-Next команда. Команда GET используется для Идентификатор объекта (OID) Из MIB. Команда GET-Next немного более продвинута и проходит через дерево MIB от OID до OID, получая информацию. Здесь приходит snmpwalk.
Что такое snmpwalk?
snmpwalk это имя, данное приложение SNMP, которое автоматически выполняет несколько запросов GETNEXT. Запрос SNMP GETNEXT используется для запроса устройства и получения данных SNMP с устройства. Команда snmpwalk используется потому, что она позволяет пользователю объединять запросы GETNEXT вместе, не вводя уникальные команды для каждого OID или узла в поддереве..
snmpwalk выдается корневому узлу поддерева так что информация собирается из каждого подключенного узла. Это предоставляет вам эффективный способ сбора информации с различных устройств, таких как маршрутизаторы и коммутаторы. Собираемая вами информация поступает в форме OID. OID — это объект, который является частью MIB в устройстве с поддержкой SNMP.
Установка snmpwalk в Windows
Для пользователей Windows процесс установки snmpwalk в Windows невероятно прост.
- Сначала вам нужно скачать и извлечь следующий файл из zip-файла:
https://sourceforge.net/projects/net-snmp/files/net-snmp/ - Когда у вас есть файл snmpwalk.exe на вашем компьютере, нажмите Начало > поиск CMD и нажмите Войти. Это покажет окно командной строки.
- Перетащите snmpwalk.exe файл в черное окно.
Если вы не хотите запускать файл из командной строки, вы можете скачать установщик .exe по этой ссылке здесь (обратите внимание, что вы хотите выбрать самую последнюю версию, которую можете): http://sourceforge.net/projects/net-snmp/files/net-snmp/
Установка snmpwalk в Linux
На устройствах Linux snmpwalk доступен в виде пакета для установки. Процесс этого зависит от вашего дистрибутива Linux. Однако вы можете установить Linux, введя следующие команды:
- Redhat / Fedora / CentOs: yum install net-snmp-utils
- Ubuntu: apt-get установить snmp
Параметры и параметры Snmpwalk в Windows и Linux
Snmpwalk имеет ряд различных параметров, которые вы можете использовать. К ним относятся следующие:
- имя хоста — Имя агента SNMP.
- сообщество -Тип читаемого сообщества.
- object_id — Укажите идентификатор объекта для возврата всех объектов SNMP под ним. Если NULL, то корень объектов SNMP принимается как object_id.
- Тайм-аут — количество микросекунд до первого таймаута.
- повторы — Сколько раз повторить попытку подключения в случае тайм-аута.
- -Операционные системы — Показывает последний символический элемент OID.
- -с -Устанавливает строку сообщества.
- -v — указывает версию SNMP, которую вы хотите использовать.
Как минимизировать информацию, которую вы видите с помощью snmpwalk
Первое, что вы заметите при запуске snmpwalk, — это слишком много результатов, чтобы вы могли их прочитать. Вы можете легко получить тысячи разных результатов. Чтобы обойти это, поставщики помогут вам, предоставив вам MIB файл. Файл MIB используется для указания того, какие OID доступны на устройстве.. Многие поставщики предоставляют вам MIB-файл для каждого вашего устройства. Наличие файла MIB позволяет вам выполнить запрос, специфичный для этого файла, а не проходить через все.
Смотрите также: Инструменты SMNP
Примеры Snmpwalk
При использовании snmpwalk на устройстве агент SNMP предоставит вам диапазон значений. Вы будете проходить через OID от вашего начального OID и далее. Если вы введете команду snmpwalk на устройстве, отобразится результат, подобный следующему:
$ snmpwalk -v1 -c public 10.10.1.224
SNMPv2-MIB :: sysDescr.0 = STRING: APC Web / Карта управления SNMP
SNMPv2-MIB :: sysObjectID.0 = OID: SNMPv2-SMI :: enterprises.318.1.3.7
SNMPv2-MIB :: sysUpTime.0 = Timeticks: (47372422) 5 дней, 11: 35: 24.22
SNMPv2-MIB :: sysContact.0 = STRING: Comparitech
SNMPv2-MIB :: sysName.0 = STRING: APC-3425
SNMPv2-MIB :: sysLocation.0 = sTRING: 3425EDISON
SNMPv2-MIB :: sysServices.0 = INTEGER: 72
IF-MIB :: ifNumber.0 = INTEGER: 1
IF-MIB :: ifIndex.1 = INTEGER: 1
IF-MIB :: ifDescr.1 = STRING: veya
.
SNMPv2-MIB :: snmpOutGetResponses.0 = Counter32: 338
SNMPv2-MIB: snmpOutTraps.0 = Counter32: 0
SNMPv2-MIB :: snmpEnableAuthenTraps.0 = INTEGER: 0
$
Как видите, много информации генерируется одной командой. Большинство строк состоит из информации, полученной из MIB.
В приведенном ниже примере вы можете увидеть пример snmpwalk без MIB. Второе число в первой строке или .1.3.6.1.4.1.318 — это OID, с которого мы начали.
$ snmpwalk -v1 -c public 10.10.1.224 .1.3.6.1.4.1.318
SNMPv2-SMI :: enterprises.318.1.1.1.1.1.1.0 = STRING: «Silcon DP340E»
SNMPv2-SMI :: enterprises.318.1.1.1.1.1.2.0 = STRING: «UPS_IDEN»
SNMPv2-SMI :: enterprises.318.1.1.1.1.2.1.0 = STRING: «314.10.D
.
Однако, если у вас есть определенный MIB, вы можете получить более подробную информацию, возвращенную вам из объектов, которые вы хотите просмотреть. В приведенном ниже примере команда -m обозначает MIB, который будет запрашиваться.
$ snmpwalk -v1 -c public -m «./APC-POWERNET.txt» 10.10.1.224 apc
PowerNet-MIB :: upsBasicIdentModel.0 = STRING: «Silcon DP340E»
PowerNet-MIB :: upsBasicIdentName.0 = STRING: «UPS_IDEN»
PowerNet-MIB :: upsAdvIdentFirmwareRevision.0 = STRING: «314.10.D»
.
Ниже приведен пример команды snmpwalk для Linux. Как вы можете видеть, эта функция работает примерно так же, проходя через OID для извлечения соответствующей информации из подключенных устройств:
#% snmpwalk-v 1 локальная публичная система # system.sysDescr.o = «SunOS name sun4c»
# system.sysObjectID.o = OID: enterprises.ucdavis.ucdSnmpAgent.sunos4
# system.sys.UpTime.o = Timeticks (595637548) 68 дней, 22:32:55
# system.sysContact.o = «[email protected]>»
# system.sysName.o = «Ridyadh_o8_WS»
# system.sysLocation.o = «Ридьяд, КСА»
# system.sysServices.o = 72
Экономьте время с snmpwalk
snmpwalk кажется сложной концепцией, но на самом деле это не так. Команда snmpwalk просто сокращенный способ использовать несколько запросов GETNEXT без необходимости вводить множество различных команд. С помощью одной команды snmpwalk вы можете запустить множество различных GETNEXT и просмотреть состояние своей инфраструктуры..
Если вы используете команду snmpwalk, важно помнить, чтобы максимально сократить объем получаемой информации. Указание MIB позволит вам видеть конкретную информацию, а не данные, собранные из всей базы данных идентификаторов объектов!
Таким образом, получая данные SNMP с устройств по всей вашей сети, вы можете быть уверены, что не пропустите ничего важного в вашей сети. В конце концов, есть команда snmpwalk, которая поможет вам максимально эффективно извлекать данные SNMP с устройств в вашей сети..
Использование MIB с агентом SNMP
Агенты SNMP собирают информацию о сетевых устройствах и сохраняют ее в базе управляющей информации (MIB) и становятся доступными для мощных инструментов SNMP.
Мониторинг SNMP, MIB и OID Paessler с помощью PRTG (БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯ)
С Paessler’s PRTG Сетевой монитор, Вы можете развернуть SNMP, MIBS и OID с одной интуитивно понятной панели. PRTG использует SNMP для мониторинга вашей сети и для обработки ваших MIB и OID. После настройки PRTG может начать сбор всех соответствующих данных на каждом из устройств в вашей сети и на программном обеспечении, с которым они работают. Информация хранится в древовидной и ветвистой структуре, при этом каждый поставщик составляет ветвь дерева, помогая вам идентифицировать и устранять неполадки на каждом из устройств в вашей сети..
Сетевой монитор PRTG доступен на 30-дневной бесплатной пробной версии..
Мониторинг SNMP, MIB и OID Paessler с помощью PRTG Загрузить 30-дневную бесплатную пробную версию
Смотрите также: Лучшие инструменты мониторинга SNMP
Источник