一、SNMP概述:
### --- SNMP概述:
~~~ 简单的网络管理协议(SNMP-Simple Network Management Protocol)
~~~ 是一个与网络设备交互的简单方法。该规范是有IETF在1990 年五月发布的RFC 1157中定义的。
~~~ 目前有SNMPv1、SNMPv2、SNMPv3三种正式版本
### --- SNMP管理协议
### --- SNMP管理协议的5种消息类型
### --- get–request
~~~ 操作:从代理进程处提取一个或多个参数值。
### --- get-next-request
~~~ 操作:从代理进程处提取一个或多个参数的下一个参数值。
### --- set-request
~~~ 操作:设置代理进程的一个或多个参数值。
### --- get-response
~~~ 操作:返回的一个或多个参数值。这个操作是由代理进程发出的。它是前面3 中操作的响应操作。
### --- trap
~~~ 操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
### --- net-snmp中的oid:是一个唯一的键值对,也叫作对象标识符,它的作用等同于item.key一样、
### --- SNMP主要有三个版本:
### ---SNMPv1:
~~~ 服务器端通过snmpv1协议获取信息时候,需要有个密码验证,大多数厂商出厂默认自带“public”,大多人把这个密码叫做community(社区字符),理解为密码就可以。
### ---SNMPv2:
### ---SNMPv3:
### --- snmp主要使用两个端口号:
~~~ udp 161:经常用于客户端 === zabbix-agent 10050
~~~ udp 162:经常用于服务器端 === zabbix-server 10051
### --- snmp MIB:
~~~ 由于OID像IPv6地址一样,太长的一串数字,我们往往难于记忆,所以出了一个MIB,
~~~ 进行作为一个映射,映射成为人们容易记住的文本。
### --- net-snmp 工作方式有两种:
### --- net-snmp轮询:
~~~ 它的工作方式等同于zabbix-agent-passive,意外着他也是被动的接收指令。
### --- net-snmp陷阱(trap):
~~~ 它的工作方式等同于zabbix-agent-active模式,它是主动汇报信息给服务器端。
### --- zabbix-agent工作方式有两种:
### --- zabbix-agent-active:
~~~ 主动模式,就是zabbix-agent想zabbix-server主动发送信息,
### --- zabbix-agent-passive:
~~~ 被动模式,就是zabbix-agent被动的接收zabbix-server指令、
二、net-snmp的使用:
### --- net-snmp的使用:
~~~ zabbix-serer:192.168.1.59
~~~ zabbix-client:192.168.1.60
~~~ net-snmp通过命令行的方式获取:
### --- 通过linux系统和网络设备(Juniper netscreen)
### --- 安装net-snmp和net-snmp工具
[root@localhost ~]# yum -y install net-snmp net-snmp-utils
### --- 启动snmpd服务
[root@localhost ~]# systemctl restart snmpd.service
### --- 通过snmpstatus方式进行信息获取
[root@localhost ~]# snmpstatus -v 2c -c public 192.168.1.60
[UDP: [192.168.1.60]:161->[0.0.0.0]:46349]=>[Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64] Up: 0:00:37.30
Interfaces: 0, Recv/Trans packets: 0/0 | IP: 0/0
### --- 通过snmpwalk命令查询设备MIB库的所有信息
[root@localhost ~]# snmpwalk -v 2c -c public 192.168.1.60 | head -n 6 // 直通过heah -n 6显示前6条
SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (413933) 1:08:59.33 // DISMAN-EVENT-MIB::sysUpTimeInstance 复制、查询 // snmpget -v 2c -c public -On 192.168.1.60DISMAN-EVENT-MIB::sysUpTimeInstance
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain // SNMPv2-MIB 映射 sysName.0:UID SNMPv2-MIB::sysName.0 :OID // SNMPv2-MIB::sysName.0复制查询 // snmpget -v 2c -c public -On 192.168.1.60 SNMPv2-MIB::sysName.0
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
[root@localhost ~]# snmpget -v 2c -c public -On 192.168.1.60 DISMAN-EVENT-MIB::sysUpTimeInstance
.1.3.6.1.2.1.1.3.0 = Timeticks: (466687) 1:17:46.87
### --- 使用mib的值我去查看OID的准确值
[root@localhost ~]# snmpget -v 2c -c public -On 192.168.1.60 SNMPv2-MIB::sysName.0 //系统名称的OID
.1.3.6.1.2.1.1.5.0 = STRING: localhost.localdomain
三、网络设备的配置:
### --- 网络设备的配置:
Configuration——>Report.Settings——> SNMP——>Apply——> New Community——>Edit