为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

点击查看更多内容
16人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消