протокол SNMP (Simple Network Management Protocol) використовується для отримання інформації про поточний стан серверів, мережевих пристроїв, принтерів і іншого IP обладнання (можна збирати різні метрики: завантаження CPU, кількість процесів, стан служб і багато іншого). Основні переваги SNMP – він підтримується практично на будь-яких пристроях і не вимагає установки окремого агента системи моніторингу. У цій статті ми розглянемо, як встановити та налаштувати SNMP агент (і SNMP v3) на сервері під керуванням Linux CentOS 8.

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

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

# dnf update -y

Потім встановіть агент SNMP і додаткові утиліти зі стандартного сховища:

# dnf install net-snmp net-snmp-utils -y

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

Налаштування SNMP агента в CentOS

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

# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig

Тепер відредагуйте налаштування SNMP агента:

# nano /etc/snmp/snmpd.conf

Додайте наступні рядки:

rocommunity public
syslocation MSK-DC1
syscontact admin@build-centos.info

Це три базових об’єкта протоколу SNMP. Разбро всіх опцій конфігурації агента Net-SNMP виходить за рамки статті.

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

# systemctl enable snmpd.service
# systemctl start snmpd

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

# systemctl status snmpd

перевірка статусу служби snmpd в linux

Якщо на сервері використовується фаєрвол, потрібно дозволити підключення до портів 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 даних.

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

Timeout: No Response from localhost

Вирішилося вона очищенням всього конфігураційного файлу і додаванням тільки тих рядків, які я вказав у статті. Якщо вам потрібні будуть якісь специфічні настройки, уважно перевіряйте всі, так як сам сервіс запускається без проблем, але фактично він не працює.

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

# snmpwalk -v2c -c public localhost system

SNMPv2-MIB::sysDescr.0 = STRING: Linux server.build-centos.info 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (106564) 0:17:45.64
SNMPv2-MIB::sysContact.0 = STRING: admin@build-centos.info
SNMPv2-MIB::sysName.0 = STRING: server.build-centos.info
SNMPv2-MIB::sysLocation.0 = STRING: MSK-DC01
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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

Потім перевірте, що ваш SNMP агент доступний віддалено. Виконайте наступну команду з іншого сервера (потрібно попередньо встановити утиліти snmp):

# snmpwalk -v2c -c public 10.10.22.225 system

опитування агента snmp за допомогою утиліти snmpwalk

Як бачите, віддалений сервер отримав з сервера інформацію по протоколу SNMP. Тепер ви можете додати сервер в будь-яку з систем моніторингу, що працює за SNMP (Наприклад, Заббікс або Кактуси).

Налаштування протоколу 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:

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

Запустіть сервіс:

# systemctl start snmpd

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

# snmpwalk -v3 -a SHA -A 123456789 -x AES -X 1234567890 -l authPriv -u snmpuser localhost | head

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

Leave a Reply

Your email address will not be published. Required fields are marked *