Introduction
SNMP is the Simple Network Management Protocol. You’ll find it on the more expensive routers, switches, and gadgets. It can allow you to keep an eye on various machines with tools like Nagios and Cacti. Watch for spikes of network activity, see how much memory is used in a day’s time, or do some customization and compare spams to hams.
A workstation can be watched, too. And that’s what I hope to show here.
I’m assuming you have a Dapper or Feisty release of Ubuntu, or something similar. This isn’t an involved project, it’s just hard to find a basic installation technique in one place. It’s hoped for this to be your starting point with SNMP, not an ending point.
Installing the software
- You’ll need the package called snmpd (the daemon) and snmp (the tools). Use your favorite means, but get these installed. It might come as a big surprise, but your machine will be SNMP reachable with the simplest of configurations in /etc/snmp/snmpd.conf:
- The ‘public’ community is intended to be a number of things that you might find useful, and seems to vary depending on the device you’re watching and the manufacturer of that device.
Note:
- (Fixed in 12.04) If you only want to poll from localhost, you are done. If, however, you want to use SNMP over a network. You need to edit /etc/default/snmpd and change the line that binds it only to 127.0.0.1 only.
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1'
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'
Downloading the Mibs
- In 12.04 and later, the mibs are not included in the snmp or snmpd download. You must also install the snmp-mibs-downloader to have them.
$ sudo apt-get install snmp-mibs-downloader
At that point you must edit /etc/snmp/snmp.conf and comment out the one uncommented line.
# # As the snmp packages come without MIB files due to license reasons, loading # of MIBs is disabled by default. If you added the MIBs you can reenable # loaging them by commenting out the following line. mibs :
Lastly, you will need to edit the /etc/snmp/snmpd.conf file that restricts you to only the system mib.
rocommunity public default -V systemonly
rocommunity public 172.16.0.0/20
Or whatever is appropriate for your environment.
Testing
- There are numerous ways to read SNMP values. Probably the most straightforward is with ‘snmpwalk’:
snmpwalk -c public -v1 localhost | less
- It’ll produce a WORLD of information, from processes currently running, to hard drives (even those unmounted if I remember correctly) and memory in use. If you see the large stream of information there, your machine is now «SNMP Reachable».
Security
- Like most ideas that have «simple» in their acronym, SNMP has it’s dark and murky side, too. Several attempts have been made by various governing bodies to make this a complex, encrypted, secure service. Perhaps it is, but I’ve never met anyone who’s done it. You really don’t want the whole world reading the processes that are running, and all the other information this provides. You have been warned. Use SNMP as an internal service; block it at your firewall, or make a tunnel in which to use it, if you must access something across the open internet.
Credits
- Page creation: WheelDweller, from memory. I don’t profess to be a guru, but I remember how I use it, alerts I’ve been given, and how to make it work. If you can improve this page please do. I’d love to know more about this package!
SNMPAgent (последним исправлял пользователь mail 2013-07-01 20:15:41)
The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details
Установка и настройка SNMP в CentOS
14.10.2020
VyacheslavK
CentOS, Linux
Один комментарий
Протокол 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 агента:
Добавьте следующие строки:
Это три базовых объекта протокола SNMP. Разбро всех опций конфигурации агента Net-SNMP выходит за рамки статьи.
Сохраните файл (локацию и почтовый ящик желательно указать корректные). Теперь нужно добавить в автозагрузку сервис snmpd и запустить его:
# systemctl enable snmpd.service
# systemctl start 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 данных.
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: [email protected] 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. Теперь вы можете добавить сервер в любую из систем мониторинга, работающую по SNMP (например, Zabbix или Cacti).
Настройка протокола SNMP v3 в CentOS
В первой части статьи мы рассматривали, как настроить SNMP агент, который работает по версиям протокола 1 и 2. SNMPv3 – это более современная и безопасная версия протокола. Оно из преимуществ которого — возможность аутентификации и шифрования. Для настройки SNMPv3 вам нужно создать отдельного пользователя с паролем, задать пароль шифрования, права доступа и алгоритм шифрования (MD5 или SHA).
Чтобы создать пользователя для SNMP v3, нужно остановить сервис 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 — пользователь
После запуска команды, у вас будет создан пользователь с заданными паролем и ключом:
Попробуйте опросить SNMP агент с помощью утилиты snmpwalk (обратите внимание, для опроса по SNMPv3 нужно указывать имя пользователя, пароль и ключ).
# snmpwalk -v3 -a SHA -A 123456789 -x AES -X 1234567890 -l authPriv -u snmpuser localhost | head
Теперь вы смело можете добавлять свой сервер в любую систему мониторинга, работающую по SNMP.
Предыдущая статья Следующая статья