How to linux snmp

Linux SNMP: Simple Network Management Protocol:

SNMP or Simple Network Management Protocol, is a technology standard for alert messages (trap), monitoring (get), and configuring (set) network devices. SNMP comes in three varieties: v1, v2 and v3, of which v3 is the only version to be considered secure.

The variables associated with a network device configuration is defined in the Management Information Base, or MIB. The MIB is a collection of information for managing the network element and is comprised of managed objects identified by the Object Identifier (OID). Each OID is unique and identifies a special characteristic of the managed network device. SNMP is built upon a client (SNMP manager) — server (SNMP agent/network device) architecture pattern with a message schema defined by the MIB and sent over UDP port 161 (SNMP agent) and port 162 (SNMP manager). Each of the data values defined by the MIB are associated with an OID identified by a hierarchy of numbers separated by periods.

Installation:

  • CentOS/RedHat: sudo yum install net-snmp-utils net-snmp net-snmp-devel
    (RPMs also included with CentOS/RHEL 6 and 7 install DVDs)
  • Ubuntu: sudo apt-get install snmp snmpd snmp-mibs-downloader

Configure:

  • System file /etc/snmp/snmpd.conf
    This file default restricts access to localhost only.
  • User file ~/.snmp/snmp.conf

Start:

  • CentOS/RedHat:
    • sudo systemctl enable snmpd.service
    • sudo systemctl start snmpd.service
    • sudo systemctl status snmpd.service
    snmpd.service - Simple Network Management Protocol (SNMP) Daemon. Loaded: loaded (/usr/lib/systemd/system/snmpd.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2019-07-02 17:03:02 PDT; 3s ago Main PID: 345 (snmpd) Memory: 6.8M CGroup: /system.slice/snmpd.service └─345 /usr/sbin/snmpd -LS0-6d -f Jul 02 17:03:01 myhostname systemd[1]: Starting Simple Network Management Protocol (. Jul 02 17:03:02 myhostname snmpd[345]: NET-SNMP version 5.7.2 Jul 02 17:03:02 myhostname systemd[1]: Started Simple Network Management Protocol (S. Hint: Some lines were ellipsized, use -l to show in full.
    • sudo systemctl enable snmpd.service
    • sudo systemctl start snmpd.service
    • sudo systemctl status snmpd.service

    Test:

    • snmpwalk -v 1 localhost -c public .1.3.6.1
    • snmpwalk -v 1 localhost -c public system
    • Open firewall to everything (if using iptables): sudo iptables -F
      or
    • if using firewald: sudo firewall-cmd --permanent --new-service=snmp
      this command will add service to directory /etc/firewalld/services/
    snmp 161/tcp # Simple Net Mgmt Proto snmp 161/udp # Simple Net Mgmt Proto snmptrap 162/tcp # SNMPTRAP snmptrap 162/udp snmp-trap # Traps for SNMP cmip-man 163/tcp # ISO mgmt over IP (CMOT)

      RHEL 7: snmpget -v 1 -c public localhost sysDescr.0

    SNMPv2-MIB::sysDescr.0 = STRING: Linux myhostname 3.10.0-693.el7.x86_64 #1 SMP Thu Jul 6 19:56:57 EDT 2017 x86_64
    iso.3.6.1.2.1.1.1.0 = STRING: "Linux myhostname 4.15.0-70-generic #79-Ubuntu SMP Tue Nov 12 10:36:11 UTC 2019 x86_64"
    +--iso(1) | +--org(3) | +--dod(6) | +--internet(1) | +--directory(1) | +--mgmt(2) | | | +--mib-2(1) | | | +--system(1) | | | | | +-- -R-- String sysDescr(1) | | | Textual Convention: DisplayString | | | Size: 0..255 | | +-- -R-- ObjID sysObjectID(2) | | +-- -R-- TimeTicks sysUpTime(3) | | | | | | | +--sysUpTimeInstance(0) | | | | | +-- -RW- String sysContact(4) | | | Textual Convention: DisplayString | | | Size: 0..255 . .
    :HOST-RESOURCES-MIB:HOST-RESOURCES-TYPES:UCD-DISKIO-MIB:TCP-MIB:UDP-MIB:MTA-MIB:NETWORK-SERVICES-MIB:SCTP-MIB:RMON-MIB:EtherLike-MIB:LM-SENSORS-MIB:SNMPv2-MIB:IF-MIB:IP-MIB:NOTIFICATION-LOG-MIB:DISMAN-EVENT-MIB:DISMAN-SCHEDULE-MIB:UCD-SNMP-MIB:UCD-DEMO-MIB:SNMP-TARGET-MIB:NET-SNMP-AGENT-MIB:SNMP-MPD-MIB:SNMP-USER-BASED-SM-MIB:SNMP-FRAMEWORK-MIB:SNMP-VIEW-BASED-ACM-MIB:SNMP-COMMUNITY-MIB:IPV6-ICMP-MIB:IPV6-MIB:IPV6-TCP-MIB:IPV6-UDP-MIB:IP-FORWARD-MIB:NET-SNMP-PASS-MIB:NET-SNMP-EXTEND-MIB:UCD-DLMOD-MIB:SNMP-NOTIFICATION-MIB:SNMPv2-TM:NET-SNMP-VACM-MIB /home/userx/.snmp/mibs:/usr/share/snmp/mibs
    iso.3.6.1.2.1.1.3.0 = Timeticks: (1310658) 3:38:26.58
    iso.3.6.1.4.1.2021.10.1.3.3 = STRING: "0.10"
    Command Description
    snmpcmd options and behavior common to most of the Net-SNMP command-line tools
    snmpwalk retrieve a subtree of management values using SNMP GETNEXT requests
    snmpget communicates with a network entity using SNMP GET requests
    snmpset communicates with a network entity using SNMP SET requests
    snmptrap sends an SNMP notification to a manager (also snmpinform)
    snmpgetnext communicates with a network entity using SNMP GETNEXT requests to get the next variable that is lexicographically «next» in the remote entity’s MIB
    snmptable retrieve an SNMP table and display it in tabular form
    snmpdelta Monitor delta differences in SNMP Counter values
    snmptest flexible SNMP application that can monitor and manage information on a network entity
    snmpdf display disk space usage on a network entity via SNMP
    snmpusm creates and maintains SNMPv3 users on a network entity
    snmpstatus retrieves a fixed set of management information from a network entity
    snmpnetstat display networking status and configuration information from a network entity via SNMP
    snmpbulkget SNMP application that uses the SNMP GETBULK request to query a network entity efficiently for information
    snmpbulkwalk retrieve a subtree of management values using SNMP GETBULK requests
    snmp.conf configuration files for the Net-SNMP applications
    SNMP Variables Format of specifying variable names to SNMP tools

    The Object Identifiers (OID)s are used to identify a specific characteristic of a managed device.

    1. Scalar: managed object with a single instance (a single key to a key-value pair)
    2. Tabular: multiple data instances such as the rows of a table (e.g. CPU with multiple cores each with its’ own specific charateristics)

    SNMP uses ASN.1 (Abstract Syntax Notation One) to define the data types used to build an SNMP message and uses Basic Encoding Rules (BER) to define the data types.

    • Primitive Type: type/length(bytes)/data
      • integer
      • octet (byte, char)
      • string
      • null
      • boolean
      • OID
      • sequence
      • SNMP PDU (Protocol Data Unit) — complex data types specific to SNMP

      Installation:

      Select the «walk» button to traverse the OIDs.

      Acronym Description
      ASN.1 Abstract Syntax Notation One
      BER Basic Encoding Rules
      MIB Management Information Base (data schema for an SNMP device and its variables)
      OID Object Identifiers (period separated number notation used to define the SNMP device variables)
      PDU Protocol Data Unit (SNMP packet construction definition)
      SNMP Simple Network Management Protocol

      Источник

      Установка и настройка SNMP в CentOS

      date

      14.10.2020

      user

      VyacheslavK

      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 и дополнительные утилиты из стандартного репозитория:

      # 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 агента:

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

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

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

      # systemctl enable snmpd.service
      # systemctl start 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: [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 с помощью утилиты snmpwalk

      Как видите, удаленный сервер получил с сервера информацию по протоколу 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 — пользователь

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

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

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

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

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

      Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

      Источник

      Читайте также:  Linux how to lock screen
Оцените статью
Adblock
detector