Linux系统安装NET-SNMP,自定义MIB节点实现Get、Set操作

Linux系统安装NET-SNMP,自定义MIB节点实现Get、Set操作

环境

net-snmp : 5.9.1
Linux : Ubuntu 16.04

安装 Net-SNMP

Net-SNMP官网下载最新源码net-snmp-5.9.1.tar.gz

解压

$ tar -xvzf net-snmp-5.9.1.tar.gz

进入文件夹

$ cd net-snmp-5.9.1/

配置安装位置

$ ./configure --prefix=/usr/local/snmp
## 配置使用默认选项,一路回车

configure文件用于工程自动配置,修改参数可以定制配置内容,此处修改安装目录。

./configure参数含义
–prefix=/usr/localnet snmp的安装路径
–enable-mfd-rewrites允许新的mfd重写可用的mid模块
–with-default-snmp-version=“3”默认的snmp版本
–with-sys-contact="name,E_mail:maileaddress "该设备的联系人
–with-sys-location=“China”该设备的位置
–with-logfile="/var/log/snmpd.log"日志文件路径
–with-persistent-directory="/var/net-snmp"不变数据存储目录

安装依赖环境

$ sudo apt-get install libperl-dev

编译

$ sudo make

安装

$ sudo make install

复制配置文件到安装目录

$ sudo cp EXAMPLE.conf /usr/local/snmp/share/snmp/snmpd.conf

修改配置文件

$ sudo vim /usr/local/snmp/share/snmp/snmpd.conf

监听网络中其他ipv4地址的请求
在这里插入图片描述在这里插入图片描述
添加下面第一行view systemonly include .1(使所有节点都可操作)

在这里插入图片描述
修改权限,将rocommunity改为rwcommunity(否则无法使用set功能)
在这里插入图片描述
在这里插入图片描述
在sbin目录下运行snmpd

/usr/local/snmp/sbin$ sudo ./snmpd

如果执行失败,程序直接退出了,可以使用$ sudo ./snmpd -f -Le来查看错误信息,也可直接执行该命令运行snmpd。若执行失败,需杀死刚才执行的命令后再重新运行,具体方法见文末。
-f :do not fork from the shell不从shell派生子进程;
-L : toggle options controlling where to log to切换到相关的日志控制,它后面需要跟参数;
e:log to standard error 日志到标准错误。
使用$ sudo ./snmpd -f -Le后保持终端不退出,snmpd进程将持续运行

在net-snmp安装目录下bin目录,测试SNMP命令

## 遍历MIB树
/usr/local/snmp/bin$ ./snmpwalk -v2c -c public localhost

在这里插入图片描述

## 查看某一个MIB节点
/usr/local/snmp/bin$ ./snmpget -v2c -c public 127.0.0.1 sysUpTime.0

在这里插入图片描述

自定义mib节点及处理脚本

官网给出了三种方式。本文使用pass自定义节点。

修改配置文件

/usr/local/snmp/share/snmp$ vim snmpd.conf

在这里插入图片描述
文件中给出了模板,按需添加,自定义节点应在enterprises(1.3.6.1.4.1)
在这里插入图片描述
新建脚本

~$ vim devid.sh
#!/bin/bash
opt=$1
oid=$2
# -g: get
# -n: getnext
# -s: set
if [[ $opt == "-g" || $opt == "-n" ]]; then
	echo $oid
	echo "string"
	echo "$(</home/qiushan/devid.log)"
elif [[ $opt == "-s" ]]; then
	if [[ $3 != "string" ]]; then
		echo "wrong-type"
	else
		echo $4 >/home/qiushan/devid.log
	fi
fi

exit 0

在这里插入图片描述
添加可执行权限

$ sudo chmod a+x devid.sh

重启snmpd
由于修改了配置文件,需重启。

若使用sudo ./snmpd方式启动snmpd。使用如下方式重启snmpd。

  • 查看进程:ps -ef |grep snmpd
    在这里插入图片描述
  • 杀死进程:$ sudo kill -9 107909
    在这里插入图片描述

若使用/usr/local/snmp/sbin$ sudo ./snmpd -f -Le 方式启动的snmpd,
Ctrl + c退出进程重新启动snmpd即可。

进行测试

 /usr/local/snmp/bin$ ./snmpset -v2c -c public localhost  .1.3.6.1.4.1.100.1 string 120
 /usr/local/snmp/bin$ ./snmpget -v2c -c public localhost  .1.3.6.1.4.1.100.1

在这里插入图片描述

附录

查看服务:$ ps -ef |grep snmpd
杀死进程:$ sudo kill -9 107909

查看端口使用情况:$ netstat -ntulp |grep 161
netstat命令各个参数说明如下:

命令参数含义
-t(tcp)仅显示TCP相关选项
-u(UDP)仅显示UDP相关选项
-l仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
-p显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
-n不进行DNS轮询,显示IP(可以加速操作),拒绝显示别名,能显示数字的全部转化为数字
  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值