继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

[自动化实战]如何通过snmp协议来实现定义OID信息获取

Jeson
关注TA
已关注
手记 74
粉丝 2万
获赞 3370

snmp协议,想必很多同学都了解,这个作为一个监控系统或者硬件的通用行协议是广泛被很多监控场景所使用。
前段时间有同学在我的课程里问我,如何实现自定义的snmp监控,他的问题如下:
“不理解如何获取到自定制的某一项的信息如何操作, iso.3.6.1.2.1.1.1.0 是如何得到的,能变吗"


那么,正式进入到今天的Jeson老师所想分享的主题,如何通过snmp来实现自定义监控。

一、安装前工作

1、关闭服务端防火墙

/etc/init.d/iptables stop

2、关闭服务端selinux

setenforce 0

二、snmp服务端搭建

1、安装snmpd

yum install -y net-snmp

2、修改配置文件

3、启动服务

/etc/init.d/snmpd start

4、测试

执行客户端命令snmpwalk

snmpwalk -v 2c -c public 127.0.0.1
看看是否有数值返回

二、创建自定义脚本

脚本需要可执行权限,可以为shell、py、php等等

这里我简单写一个,统计进程数:

/tmp/process_num.sh

#!/bin/sh

#Jeson@imoocc.com

process_num=$(ps -ef|wc -l)

三、添加snmpd自定义监控

1、备份默认配置

cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf_bak

2、修改配置文件如下

1)可以把系统视图权限修改为所有权限

修改如下,让用户可以访问"all"视图的权限

2 ) 将all视图的定义注视打开

意思all 可以取到.1这个old下的数值

##           incl/excl subtree                          mask

view all    included   .1                               80

3) 添加如下配置

.1.3.6.1.4.1.2021.5000 是自定义的OID的数值,如果已经使用了 则会覆盖掉原有的。

注意:保证/tmp/test.sh可以执行

extend .1.3.6.1.4.1.2021.5000 check_process /tmp/test.sh

3、重启snmpd服务

/etc/init.d/snmpd restart

4、测试

通过如下命令,测试结果:
snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.2021.5000


UCD-SNMP-MIB::ucdavis.5000.1.0 = INTEGER: 1

UCD-SNMP-MIB::ucdavis.5000.2.1.2.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = STRING: "/tmp/test.sh"

UCD-SNMP-MIB::ucdavis.5000.2.1.3.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = ""

UCD-SNMP-MIB::ucdavis.5000.2.1.4.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = ""

UCD-SNMP-MIB::ucdavis.5000.2.1.5.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = INTEGER: 5

UCD-SNMP-MIB::ucdavis.5000.2.1.6.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = INTEGER: 1

UCD-SNMP-MIB::ucdavis.5000.2.1.7.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = INTEGER: 1

UCD-SNMP-MIB::ucdavis.5000.2.1.20.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = INTEGER: 4

UCD-SNMP-MIB::ucdavis.5000.2.1.21.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = INTEGER: 1

UCD-SNMP-MIB::ucdavis.5000.3.1.1.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = STRING: "205"

UCD-SNMP-MIB::ucdavis.5000.3.1.2.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = STRING: "205"

UCD-SNMP-MIB::ucdavis.5000.3.1.3.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = INTEGER: 1

UCD-SNMP-MIB::ucdavis.5000.3.1.4.13.99.104.101.99.107.95.112.114.111.99.101.115.115 = INTEGER: 0

UCD-SNMP-MIB::ucdavis.5000.4.1.2.13.99.104.101.99.107.95.112.114.111.99.101.115.115.1 = STRING: "205"

图片描述

课程介绍:

https://coding.imooc.com/class/160.html

课程问答区:

https://coding.imooc.com/learn/qa/160.html

打开App,阅读手记
16人推荐
发表评论
随时随地看视频慕课网APP