centos 7 安装snmp

  • 一、SNMP协议简介
  • 1. SNMP的工作机制
  • 2. SNMP的版本
  • 3. MIB
  • 二、安装snmp
  • 1.查看系统信息
  • 2.yum安装
  • 3.查看配置文件列表
  • 4. 防火墙设置
  • 5.启动snmp
  • 三、snmp的常用命令
  • 1.获取snmp信息
  • 2.snmpget获取指定OID的信息
  • 3.snmptranslate 在MIB OID 在数字和文字名称之间进行转换的命令
  • 四、修改配置文件


一、SNMP协议简介

SNMP 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。 SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题

SNMP用于保证管理信息在任意两点间传送,便于网络管理员在网络上的任何节点检索信息、修改信息、寻找故障、完成故障诊断、进行容量规划和生成报告。

SNMP采用轮询机制,提供最基本的功能集,特别适合在小型、快速和低价格的环境中使用。SNMP的实现基于无连接的传输层协议UDP,因此可以实现和众多产品的无障碍连接。

1. SNMP的工作机制

SNMP分为NMS和Agent两部分:

  • NMS是运行客户端程序的工作站。
  • Agent是运行在网络设备(比如:交换机)上的服务器端软件。

NMS可以向Agent发出GetRequest、GetNextRequest和SetRequest报文,Agent接收到NMS的这些请求报文后,根据报文类型对MIB进行Read或Write操作,生成Response报文,并将报文返回给NMS。

Agent在设备发生异常情况或状态改变时(比如:设备重新启动),也会主动向NMS发送Trap报文,向NMS汇报所发生的事件。

2. SNMP的版本

目前,SNMP Agent支持SNMP v1、SNMP v2c和SNMP v3三个版本。

SNMP v3采用用户名和密码认证方式;SNMP v1、SNMP v2c采用团体名(Community Name)认证,非认可团体名的SNMP报文将被丢弃。SNMP团体名用来定义SNMP NMS和SNMP Agent的关系。团体名起到了类似于密码的作用,可以限制SNMP NMS访问SNMP Agent。

3. MIB

在SNMP报文中用管理变量来描述管理对象。为了唯一标识管理对象,SNMP用层次结构命名方案来识别管理对象。整个层次结构就像一棵树,树的节点表示管理对象

每一个节点,都可以用从根开始的一条路径唯一地标识,MIB的作用就是用来描述树的层次结构,它是所监控设备的标准变量定义的集合。管理对象可以用一串数字{1.2.1.1}唯一确定,这串数字是管理对象的对象标识符

CentOS上安装dpkg centos上安装snmp_配置文件

二、安装snmp

1.查看系统信息

[root@VM-4-10-centos ~]# uname -a
Linux VM-4-10-centos 3.10.0-1160.11.1.el7.x86_64 #1 SMP Fri Dec 18 16:34:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

2.yum安装

yum install net-snmp net-snmp-utils

3.查看配置文件列表

[root@VM-4-10-centos ~]# rpm -ql net-snmp
/etc/snmp
/etc/snmp/snmpd.conf
/etc/snmp/snmptrapd.conf
/etc/sysconfig/snmpd
/etc/sysconfig/snmptrapd
/usr/bin/agentxtrap
/usr/bin/net-snmp-create-v3-user
/usr/bin/snmpconf
/usr/lib/systemd/system/snmpd.service
/usr/lib/systemd/system/snmptrapd.service
/usr/lib/tmpfiles.d/net-snmp.conf
/usr/sbin/snmpd

4. 防火墙设置

若报错:

[root@VM-4-10-centos ~]# snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.10.1.3.1

Timeout: No Response from localhost

需要开启161端口

/sbin/iptables -I INPUT -p tcp --dport 161 -j ACCEPT

或者关闭防火墙

systemctl stop firewalld.service
systemctl stop iptables

5.启动snmp

systemctl restart snmpd.service    #启动SNMP服务
systemctl enable snmpd.service  #开机启动SNMP服务

三、snmp的常用命令

1.获取snmp信息

snmpwalk -v 2c -c public 127.0.0.1

-v 2c 指定版本信息

-c 指定团体名 public为默认团体名

[root@VM-4-10-centos ~]# snmpwalk -v 2c -c public 127.0.0.1
SNMPv2-MIB::sysDescr.0 = STRING: Linux VM-4-10-centos 3.10.0-1160.11.1.el7.x86_64 #1 SMP Fri Dec 18 16:34:56 UTC 2020 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (97441) 0:16:14.41
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: VM-4-10-centos
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance
SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering.
SNMPv2-MIB::sysORDescr.10 = STRING: The MIB module for logging SNMP Notifications.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.10 = Timeticks: (3) 0:00:00.03
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (1003332737) 116 days, 3:02:07.37
HOST-RESOURCES-MIB::hrSystemUptime.0 = No more variables left in this MIB View (It is past the end of the MIB tree)

2.snmpget获取指定OID的信息

snmpget -v 2c -c public 127.0.0.1 HOST-RESOURCES-MIB::hrSystemUptime.0

[root@VM-4-10-centos ~]#  snmpget -v 2c -c public 127.0.0.1 HOST-RESOURCES-MIB::hrSystemUptime.0
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (1003337290) 116 days, 3:02:52.90
[root@VM-4-10-centos ~]#

3.snmptranslate 在MIB OID 在数字和文字名称之间进行转换的命令

snmptranslate -On -IR HOST-RESOURCES-MIB::hrSystem

用-On(输出数字格式的oid),使用 -IR(允许“随机”访问 MIB)

[root@VM-4-10-centos ~]# snmptranslate -On -IR HOST-RESOURCES-MIB::hrSystem
.1.3.6.1.2.1.25.1
[root@VM-4-10-centos ~]#

四、修改配置文件

vim /etc/snmp/snmpd.conf

CentOS上安装dpkg centos上安装snmp_centos_02


这里的view默认只能查看这两个目录下的,若要查看全部,改为.1就行,若要添加其他目录,加一行照着写就行。

修改后,保存配置文件,重启snmp服务

systemctl restart snmpd.service

可以man snmpd.conf查看相关帮助文档

常用OID列表