Команда snmpwalk в linux

Обновлено: 06.07.2024

Расскажу немно о пратоколе SNMP и основах работы с трапами (TRAP) на хостах под управление ОС Linux Mint, Ubuntu, Debian и.п. Рассмотрим процесс установки и настройки необходимых утилит и демонов, таких как, snmp, snmpd и snmptrapd.

Протокол SNMP используется для удаленного мониторинга и изменения настроек различных сетевых железок, буть то сервера, коммутаторы или маршрутизаторы.

Установка snmp, snmpd snmptrapd в Ubuntu, Debian, Linux Mint

Установим 3 пакета:

1. Пакет snmp включает в себя базавый набор библиотек и утилит необходимых для работы и отладки (например утилиту snmpwalk).

2. Демон snmpd необходим для управления и получения данных с нашего хоста по протоколу snmp.

3. Демон snmptrapd необходим для получения трапов от хостов.

Настройка snmptrapd в Ubuntu, Debian, Linux Mint

Файл настроек демона snmptrapd находиться в файле "/etc/snmp/snmptrapd.conf".

1. Первым делом устанавливаем community, для этого правим файл настроек "/etc/snmp/snmptrapd.conf". В большинстве случаев в качестве community устанавливаем public, но это необязательно, можете поставить какой-нибудь свой.

2. Далее включаем опцию на автоматический запуск snmptrapd в файле настроек "/etc/default/snmptrapd".

3. Перезапускаем snmptrapd.

4. Проверяем слушет наш демон 162-q порт.

5. Для проверки запустим тестовый trap на себя (127.0.0.1), с помощю утилиты snmptrap.

Смотрим файл сислога "/var/log/syslog", должна появиться строка о получение trap-а. Для просмотра syslog-а воспользуемся утилитой tail.

Видно что хост получил трап о чем свидетельствует запись в сислоге. Также проверим приходят ли трапы с удаленных хостов.

где 192.168.2.100 -ip адрес хоста на который отправляем трап.

Смотрим еще раз последнюю строку файла сислога "/var/log/syslog", должна появиться строка о получение trap-а с удалленого хоста.

Настройка snmpd в Ubuntu, Debian, Linux Mint

Файла настроек демона snmpd находиться в "/etc/snmp/snmpd.conf". После установки snmpd, по умолчанию, он должен работать на localhost-е.

1. Проверка работы snmpd с помощю утилиты snmpwalk.

Видно что по snmp отдаються данные с localhost.

Если вам надо опрашивать ваш host с другого адреса (например с удаленного компа) или порта (нестандартного порта), то надо изменить в файле настроек "/etc/snmp/snmpd.conf" строку.

где 192.168.1.100 - ip адрес вашего хоста, 162 - порт на хосте.

2. Изменение параметров "sysLocation" и "sysContact", для более легкой идентификации трапа.

3. Изменение дефолтного значения community.

По умолчанию в качестве community установлено public, это значение можно изменить в файле настроек "/etc/snmp/snmpd.conf".

где "private" - новое значение community. Параметры "default -V systemonly" являються необязательными, я рекомендую их оставить, т.к. без них, хост будет отдавать по snmp огромное количество всякой ненужной информации.

4. Перезапускаем демон snmpd.

Вот и все. Я постарался кратко рассказать о первоначальной настройки демонов snmpd и snmptrapd. Комментируем, подписываемся ну и всем пока:)

примеры 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

snmpwalk это имя, данное приложение SNMP, которое автоматически выполняет несколько запросов GETNEXT. Запрос SNMP GETNEXT используется для запроса устройства и получения данных SNMP с устройства. Команда snmpwalk используется потому, что она позволяет пользователю объединять запросы GETNEXT вместе, не вводя уникальные команды для каждого OID или узла в поддереве..

snmpwalk выдается корневому узлу поддерева так что информация собирается из каждого подключенного узла. Это предоставляет вам эффективный способ сбора информации с различных устройств, таких как маршрутизаторы и коммутаторы. Собираемая вами информация поступает в форме OID. OID - это объект, который является частью MIB в устройстве с поддержкой SNMP.

Установка snmpwalk в Windows

Для пользователей Windows процесс установки snmpwalk в Windows невероятно прост.

Установка 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

snmpwalk кажется сложной концепцией, но на самом деле это не так. Команда snmpwalk просто сокращенный способ использовать несколько запросов GETNEXT без необходимости вводить множество различных команд. С помощью одной команды snmpwalk вы можете запустить множество различных GETNEXT и просмотреть состояние своей инфраструктуры..

Если вы используете команду snmpwalk, важно помнить, чтобы максимально сократить объем получаемой информации. Указание MIB позволит вам видеть конкретную информацию, а не данные, собранные из всей базы данных идентификаторов объектов!

Таким образом, получая данные SNMP с устройств по всей вашей сети, вы можете быть уверены, что не пропустите ничего важного в вашей сети. В конце концов, есть команда snmpwalk, которая поможет вам максимально эффективно извлекать данные SNMP с устройств в вашей сети..

Использование MIB с агентом SNMP

Агенты SNMP собирают информацию о сетевых устройствах и сохраняют ее в базе управляющей информации (MIB) и становятся доступными для мощных инструментов SNMP.

Мониторинг SNMP, MIB и OID Paessler с помощью PRTG (БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯ)

Paessler SNMP MIB и OID

С Paessler's PRTG Сетевой монитор, Вы можете развернуть SNMP, MIBS и OID с одной интуитивно понятной панели. PRTG использует SNMP для мониторинга вашей сети и для обработки ваших MIB и OID. После настройки PRTG может начать сбор всех соответствующих данных на каждом из устройств в вашей сети и на программном обеспечении, с которым они работают. Информация хранится в древовидной и ветвистой структуре, при этом каждый поставщик составляет ветвь дерева, помогая вам идентифицировать и устранять неполадки на каждом из устройств в вашей сети..

Сетевой монитор PRTG доступен на 30-дневной бесплатной пробной версии..

Мониторинг SNMP, MIB и OID Paessler с помощью PRTG Загрузить 30-дневную бесплатную пробную версию

Сбор точной информации о серверах и инфраструктуре – очень важный аспект системного администрирования. Существует множество инструментов для сбора и обработки таких данных, и многие их них основаны на технологии SNMP.

SNMP (Simple Network Management Protocol) – это средство, с помощью которого серверы могут обмениваться информацией о своем текущем состоянии, а также канал, по которому администратор может управлять параметрами сервера. Сам протокол SNMP очень простой, однако структура программ, реализующих SNMP, может быть очень сложной.

Данное руководство научит вас работать с набором инструментов net-snmp.

Примечание: Подразумевается, что вы выполнили руководство Установка и настройка демона и клиента SNMP в Ubuntu 14.04.

Клиентские команды SNMP

Набор инструментов net-snmp содержит довольно много утилит, которые помогают выполнять запросы или настраивать значения OID на удаленных хостах. Большинство инструментов используют общий синтаксис и имеют схожие шаблоны использования. Рассмотрим основы некоторых наиболее популярных инструментов.

Примечание: Руководство подразумевает, что вы знакомы с командами аутентификации net-snmp. Все данные аутентификации в приведённых ниже командах обозначены как authentication_info.

В предыдущем руководстве вы создали файл snmp.conf с настройками клиента. Теперь его можно удалить: в этом руководстве вы научитесь добавлять данные аутентификации в конфигурационный файл.

Если у вас нет конфигурационного файла snmp.conf, замените authentication_info в каждой команде информацией для подключения к удалённому демону. Аккаунт demo использует следующие данные:

-u demo -l authPriv -a MD5 -x DES -A my_new_password -X my_new_password

Примечание: Если вы используете другой аккаунт, не забудьте откорректировать учётные данные.

Извлечение значения OID с помощью SnmpGet

Это, пожалуй, самая простая команда для извлечения информации с помощью SNMP. При помощи базовых флагов аутентификации команда snmpget может прочитать любое значение OID, к которому пользователь имеет доступ.

В базовом синтаксисе нужно указать известный числовой OID. К примеру, чтобы извлечь описание системы, нужно ввести:

snmpget authentication_info host 1.3.6.1.2.1.1.1.0

Поскольку в предыдущем руководстве на менеджер был установлен пакет snmp-mibs-downloader, вы также можете сослаться на OID по имени. К примеру, ту же информацию можно получить с помощью:

snmpget authentication_info host sysDescr.0

Извлечение следующего доступного OID с помощью SnmpGetNext

Эта команда извлекает значение OID, идущего после запрашиваемого OID. Иерархия MIB позволяет извлекать значения последовательно. Используя это свойство, вы можете получить значение (и метку OID) следующего объекта с помощью любого объекта в дереве.

Ранее вы получили описание системы. Теперь попробуйте узнать следующий OID и его значение. Для этого нужно использовать:

snmpgetnext authentication_info host sysDescr.0
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

Эта команда вернёт ObjectID системы, который является следующим объектом в дереве. Эту команду можно обновлять, указывая полученный OID, и таким образом получать доступ к следующему объекту.

snmpgetnext authentication_info host sysObjectID.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (114216) 0:19:02.16

Извлечение раздела иерархии MIB с помощью SnmpWalk

С помощью команды snmpwalk можно получить доступ ко всем OID, которые подчиняются заданному OID. Эта команда выведет целое дерево, которое принадлежит указанной точке.

К примеру, чтобы получить все значения в точке system, нужно ввести:

Эта команда автоматически отправляет хосту запросы SNMP GetNext, пока не построит все дерево под запрашиваемым значением.

Чтобы вывести всё дерево MIB, выполните команду:

snmpwalk authentication_info host .

Она выведет всё доступное текущему пользователю дерево.

Эта команда в сочетании с grep позволяет искать OID по имени. Предположим, вы знаете, что OID с именем sysUpTime.0 выдает время работы SNMP на удалённых хостах, но вы также хотите узнать, как давно работает сам сервер.

Команда snmpwalk может вывести всю иерархию объектов OID, а затем grep отфильтрует их по слову «uptime» в имени. Флаг –i отключает чувствительность к регистру.

snmpwalk authentication_info host . | grep -i uptime
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (113856) 0:18:58.56
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.10 = Timeticks: (0) 0:00:00.00
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (9741455) 1 day, 3:03:34.55
NOTIFICATION-LOG-MIB::nlmLogVariableID."default".1.1 = OID: DISMAN-EVENT-MIB::sysUpTimeInstance
NET-SNMP-AGENT-MIB::nsModuleName."".8.1.3.6.1.2.1.1.3.127 = STRING: mibII/sysUpTime

Проверив несколько из полученных значений вы обнаружите, что OID с именем hrSystemUptime.0 содержит нужное значение. Теперь вы можете использовать этот OID, чтобы узнать, как давно работает машина.

snmpget authentication_info host hrSystemUptime.0
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (9795352) 1 day, 3:12:33.52

Преобразование числовых OID в буквенные с помощью snmptranslate

Утилита snmptranslate – одна из самых полезных в наборе. Она никак не взаимодействует с удалённым хостом, она просто помогает получить необходимые сведения об иерархии MIB.

Утилита snmptranslate позволяет преобразовать числовые объекты в буквенные, и так получить их текстуальную репрезентацию.

snmptranslate 1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0

Команда выдаёт модуль MIB, который определяет буквенное имя и имя самого OID.

Также эта утилита выполняет преобразование в обратном направлении. Возьмём, к примеру, MIB hrSystemUptime.0, который сообщает время работы системы. Попробуйте узнать, какое место этот объект занимает в дереве. Чтобы получить числовой адрес, нужно использовать флаг –On.

Укажите требуемый модуль MIB, чтобы получить информацию об OID:

snmptranslate -On HOST-RESOURCES-MIB::hrSystemUptime.0
.1.3.6.1.2.1.25.1.1.0

Этот инструмент может предоставить множество другой информации о любой точке. К примеру, флаг –Td позволяет получить полное описание и путь.

snmptranslate -Tp 1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0
sysDescr OBJECT-TYPE
-- FROM SNMPv2-MIB
-- TEXTUAL CONVENTION DisplayString
SYNTAX OCTET STRING (0..255)
DISPLAY-HINT "255a"
MAX-ACCESS read-only
STATUS current
DESCRIPTION "A textual description of the entity. This value should
include the full name and version identification of
the system's hardware type, software operating-system,
and networking software."
::=

Флаг Описание Пример
-Oa Отображает строки ASCII SNMPv2-MIB::sysDescr.0
-Of Показывает полный текстовый путь к OID .iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0
-On Показывает полный числовой путь к OID .1.3.6.1.2.1.1.1.0
-Os Отображает конечное текстовое представление OID sysDescr.0

Эти опции применимы и к некоторым другим инструментам набора.

Извлечение табличных данных с помощью SnmpTable

SNMP хранит и табличные данные. Команда snmpwalk может отобразить любые необходимые данные, однако она не всегда сохраняет форматирование.

К примеру, так snmpwalk покажет OID udpTable:

snmpwalk authentication_info host udpTable
UDP-MIB::udpLocalAddress.0.0.0.0.161 = IpAddress: 0.0.0.0
UDP-MIB::udpLocalAddress.0.0.0.0.35679 = IpAddress: 0.0.0.0
UDP-MIB::udpLocalPort.0.0.0.0.161 = INTEGER: 161
UDP-MIB::udpLocalPort.0.0.0.0.35679 = INTEGER: 35679

snmptable authentication_info host udpTable

Вы получите таблицу:

udpLocalAddress udpLocalPort
0.0.0.0 161
0.0.0.0 35679

С такими данными гораздо удобнее работать.

Изменение значений с помощью SnmpSet

Эта команда используется для записи значения в OID. Все предыдущие команды предназначены для получения информации, а эта команда используется для изменения данных на хосте.

Синтаксис команды snmpset почти такой же, как у других команд, однако этой команде необходима дополнительная информация, чтобы установить значение.

snmpset authentication_info host OID_to_modify data_type new_value

Синтаксис довольно прост и понятен, но типы данных требуют более подробного объяснения. Каждый тип представлен одним символом. Доступны следующие типы данных:

  • i (Integer): целое число.
  • u (Unsigned integer): целое число без знака.
  • s (String): строка.
  • x (Hexadecimal string): шестнадцатеричная строка.
  • d (Decimal string): десятеричная строка.
  • n (Null object): объект Null.
  • (Object ID): ID объекта.
  • t (Time ticks): отметки времени.
  • a (IP Address): IP-адрес.
  • b (Bits): биты.

Пакет snmp-mibs-downloader позволяет вставлять символ = вместо идентификатора типа.

Чтобы протестировать эту команду, закомментируйте одно значение в файле snmpd.conf на агенте. Жёсткое кодирование значений в файле делает их менее гибкими и не позволяет изменять их методами SNMP.

Откройте на агенте файл /etc/snmp/snmpd.conf:

sudo nano /etc/snmp/snmpd.conf

Закомментируйте директиву sysLocation:

Сохраните и закройте файл. Перезапустите сервис.

sudo service snmpd restart

Перейдите на менеджер и установите Earth в качестве значения OID sysLocation. Параметр s задаёт тип данных (строки).

snmpset authentication_info host sysLocation.0 s "Earth"
SNMPv2-MIB::sysLocation.0 = STRING: Earth

Теперь проверьте, сможет ли спецификатор типа = правильно установить тип значения.

snmpset authentication_info host sysLocation.0 = "New York City"
SNMPv2-MIB::sysLocation.0 = STRING: New York City

Как видите, спецификатор = работает правильно.

Отправка запросов с помощью SnmpBulkGet и SnmpBulkWalk

При повторном запуске команд snmpget и snmpwalk можно создать большое количество сетевого трафика.

Команды snmpbulkget и snmpbulkwalk устраняют эту проблему; они собирают все возвращаемые значения в одну транзакцию вместо того, чтобы отправлять каждое значение OID в отдельной транзакции.

Передайте команде snmpbulkget один или несколько OID или веток, и вы получите пакет значений дополнительных OID.

Команда snmpbulkget работает так же, как snmpgetnext. По сути, команда snmpbulkget – это команда snmpwalk, которая возвращает результат в одном пакете.

Команда snmpbulkwalk работает аналогичным образом, но продолжит выполнять BulkGet, пока не извлечёт все поддерево.

Заключение

Набор утилит net-snmp – надёжное и гибкое средство для извлечения и управления данных. С помощью этих утилит вы можете создать сложную среду для мониторинга и управления серверами.

date

14.10.2020

directory

CentOS, Linux

comments

Комментариев пока нет

Протокол SNMP (Simple Network Management Protocol) используется для получения информации о текущем состоянии серверов, сетевых устройств, принтеров и другого IP оборудования (можно собирать различные метрики: загрузка CPU, количество процессов, состояние служб и многое другое). Основные преимущества SNMP – он поддерживается практически на любых устройствах и не требует установки отдельного агента системы мониторинга. В этой статье мы рассмотрим, как установить и настроить SNMP агент (и SNMP v3) на сервере под управлением Linux CentOS 8.

Установка агента SNMP и утилит диагностики в CentOS Linux

Перед установкой пакетов SNMP, сначала установите на сервере последние обновления с помощью пакетного менеджера dnf (yum):

Затем установите агент SNMP и дополнительные утилиты из стандартного репозитория:

установка snmp агента и утилит диагностики в linux centos

Настройка SNMP агента в CentOS

Перед началом настройки параметров SNMP сервиса, создайте копию оригинального конфигурационного файла:

Теперь отредактируйте настройки SNMP агента:

Добавьте следующие строки:

Это три базовых объекта протокола SNMP. Разбро всех опций конфигурации агента Net-SNMP выходит за рамки статьи.

Сохраните файл (локацию и почтовый ящик желательно указать корректные). Теперь нужно добавить в автозагрузку сервис snmpd и запустить его:

Проверьте, что сервис запущен:

проверка статуса службы snmpd в linux

Если на сервере используется файерволл, нужно разрешить подключение к портам 161 и 162 TCP/UDP. Для firewalld в CentOS можно выполнить такие команды:

Опрос SNMP агента с помощью утилиты snmpwalk

С помощью утилиты snmpwalk вы можете опросить SNMP агент. Для локальной проверки службы по протоколу SMMPv2 используется команда:

Если SNMP настроен корректно, вы получите от агента набор SNMP данных.

После настройки конфигурационного файла и запуска проверочной команды, я получил ошибку:

Решилось она очисткой всего конфигурационного файла и добавлением только тех строчек, которые я указал в статье. Если вам нужны будут какие-то специфичные настройки, внимательно проверяйте все, так как сам сервис запускается без проблем, но фактически он не работает.

Также вы можете опросить сервер локально командой:

Затем проверьте, что ваш SNMP агент доступен удаленно. Выполните следующую команду с другого сервера (нужно предварительно установить утилиты snmp):

опрос агента snmp с помощью утилиты snmpwalk

Как видите, удаленный сервер получил с сервера информацию по протоколу SNMP. Теперь вы можете добавить сервер в любую из систем мониторинга, работающую по SNMP (например, Zabbix или Cacti).

Настройка протокола SNMP v3 в CentOS

Чтобы создать пользователя для SNMP v3, нужно остановить сервис snmpd:

Теперь можно создать пользователя:

net-snmp-create-v3-user [-ro] [-A authpass] [-a MD5|SHA] [-X privpass][-x DES|AES] [username]

  • -ro — read-only, то есть пользователь только для чтения
  • Authpass — пароль аутентификации
  • Privpass — приватный ключ
  • Username — пользователь

После запуска команды, у вас будет создан пользователь с заданными паролем и ключом:

создать пользователя для snmpv3 net-snmp-create-v3-user

Попробуйте опросить SNMP агент с помощью утилиты snmpwalk (обратите внимание, для опроса по SNMPv3 нужно указывать имя пользователя, пароль и ключ).

Теперь вы смело можете добавлять свой сервер в любую систему мониторинга, работающую по SNMP.

Читайте также: