SNMP协议学习记录(一)

工作需要,今天要开始接触snmp协议,记录一下学习过程,方便以后回顾。

看了协议报文,一头雾水,我决定先模拟一个服务端+客户端,先看看它的运行效果。

1. 搞一个服务端

       通过了解,发现snmp协议支持主动采集和被动接收两种形式,我最终需要实现一个snmp的服务端,接收通过snmp协议发送的消息,再对这些消息进行更深度的处理,符合被动接收。

https://download.csdn.net/download/formatwindowsxp/10603368

这是一个snmp协议的接收小工具,是个不错的学习辅助工具。

SNMP协议学习记录(一)_第1张图片

2. 再来搞客户端

资源有限,没有交换机、防火墙让我测试,所以我把目标放在cetnos,资料是真少啊.....,搭了个虚拟机环境,先来部署snmp。

先看看centos有没有默认安装snmp,我用的centos7
rpm -qa|grep snmp

发现还真有,我想用最新版本比较好。

先删掉系统自带的版本

yum -y remove xxx(xxx代表rpm查到的软件包)

再安装
yum  -y install net-snmp-*  (安装所有)

启动
service snmpd start

测试取本地系统的信息
snmpwalk -v 2c -c public localhost system

SNMP协议学习记录(一)_第2张图片

好,安装成功了,测试一下能不能向接收工具发送消息。

snmptrap -v 2c -c public 192.168.190.133 "" .1.3.6.1.4.1.2021.251.1 sysLocation.0 s "i come from hadoop02 trap message"

这里使用不同版本的snmp修改 -v后面的参数就可以了,192.168.190.133 这里是你运行snmp接收工具的机器ip,其他参数不是很明白,先不管,继续往后。

SNMP协议学习记录(一)_第3张图片

没毛病,测试信息接收到了,下面我得配置centos,让它自动发送,发标准的信息出来。

配置centos的snmpd.conf,centos7下文件的/etc/snmp/目录,配置如下:

trapsink *.*.*.*:162 public
trap2sink *.*.*.*:162 public
authtrapenable 1
rwuser administrator
iquerySecName administrator
linkUpDownNotifications yes
defaultMonitors yes

#Process checks
proc sendmail 10 1

#disk checks
disk / 100000

#Check for loads
load 5 5 5

#CPU usage
notificationEvent userCPU ssCpuRawUser
notificationEvent sysCPU ssCpuRawSystem
monitor -r 60 -e userCPU "User CPU use percentage" ssCpuRawUser > 100
monitor -r 60 -e sysCPU "System CPU use percentage" ssCpuRawSystem > 100

#Memory usage
notificationEvent memTotalTrap memTotalReal memTotalSwap
notificationEvent memAvailTrap memAvailReal memAvailSwap memTotalFree
monitor -r 10 -e memTotalTrap "Total memory" memTotalReal < 1000000000000
monitor -r 10 -e memAvailTrap "Available memory" memTotalFree < 1000000000000

指令简介:
·#号后为内容注释。
·trapsink: 指明信息发送的snmptrapd地址,1版本。
·trap2sink:指明信息发送的snmptrapd地址,2c版本。
·authtrapenable:决定是否发送身份验证失败信息。1为发送,2为不发送。
·rwuser:建立读写权限用户。
·iquerySecName:指定内部查询用户名。
·linkUpDownNotifications:在建立断开链接的时候发送通知。
·defaultMonitors:打开默认监视项。其中包括进程,磁盘等的监视,必须打开此项,否则进程,磁盘等的监视信息不会被发出。
·proc:监视指定进程,当进程数不在指定的范围时将特定标志位置1,但是不会发出trap信号,需要打开defaultMonitors,由其发送trap信号。
·disk:监视磁盘剩余空间,当剩余空间小于指定值时将特定标志位置1,同proc。
·load:系统负载,指定1,5,15分钟的系统负载,超过阈值后处理方法同proc。
·notificationEvent:自定义通知事件。
·monitor:监视指定事件。

 

配置完成后,重启snmp服务。

service snmpd restart

重启成功,接收工具 接收到信息,但这都特么是什么意思啊!

SNMP协议学习记录(一)_第4张图片

今天先到这里,明天继续研究..

 

你可能感兴趣的:(工作)