linux下搭建snmp执行环境
1.因为我是全新的系统,所以安装之前需要安装gcc
2.ubuntu桌面系统需要安装依赖
libperl-dev
3.下载,解压tar -xzvf net-snmp
4.cd进入文件夹
5.进行下面的操作,--prefix表示选择安装的文件夹,lmsensorsMib表示使用lm-sensors模块监控硬件的工作情况,diskio表示服务器支持监视磁盘的io情况。注意此时我设置的安装位置为/usr/local/snmp,而默认的安装地址为/usr/local
./configure --prefix=/usr/local/snmp --with-mib-modules="ucd-snmp/lmsensorsMib ucd-snmp/diskio ip-mib/ipv4InterfaceTable" --with-ldflags="-lsensors"
--with-default-snmp-version="2" 表示设置net-snmp使用哪个版本
--with-sys-contact="mason" 表示设备联系信息
--with-sys-location="shenzhen" 表示设备地理位置
--with-logfile="/var/log/snmpd.log" 表示日志文件存放位置
--with-persistent-directory="/var/net-snmp"表示数据存放地址
这些可以选择加或者不加,不加都是默认的
6.make
7.sudo make install //以root身份install
8./usr/local/snmp下是否存在etc目录,不存在那么创建一个,然后将源代码/snmp-5.9下的EXAMPLE.conf文件拷贝到此处并将其改名为snmpd.conf,然后用vim打开并编辑它
网上有很多介绍,这里不再赘述
https://www.cnblogs.com/xdp-gacl/p/4016524.html
9.使用netstat -an | grep 161查看监听端口是否启动
若没有启动,不会出现
udp 0 0 127.0.0.1:161 0.0.0.0:* //从snmpd默认配置文件启动,表示监听本地主机
udp 0 0 0.0.0.0:161 0.0.0.0:* //从更改之后的配置文件启动,表示监听所有的端口
若启动,则会出现这行输出
10.启动snmpd服务
sudo /usr/local/snmp/sbin/snmpd -c /usr/local/snmp/etc/snmpd.conf //表示从更改的配置文件启动
sudo service snmpd start //表示从snmpd的默认配置文件启动服务
通过第九点的命令查看是否启动了snmp服务
11.之后若出现错误,可能需要安装snmp,snmpd,snmp-mibs-downloader
此时可能会出现这种错误:Sub-id not found: (top) sysDescr
http://www.openskill.cn/article/149
12.测试snmp服务
snmpget --version
snmpget -v 2c -c public localhost sysName.0
snmpwalk -v 2c -c public localhost
可以正常返回就说明正常启动了
13.关闭服务
sudo service snmpd stop
14.确保linux系统161端口的对外开放访问权限
sudo iptables -L -n //查看防火墙对外开放了哪些端口
sudo iptables -I INPUT -p udp --dport 161 -j ACCEPT //将161端口加入到防火墙对外开放的端口名单中
sudo iptables-save //保存修改
windows下开启snmp服务
打开计算机管理->服务,找到snmp服务。如果找不到,说明没有开启,下面进行snmp服务的安装
如今的win10默认不安装snmp服务,所以需要手动安装
以管理员身份打开power shell
Get-WindowsCapability -Online -Name "SNMP*" //获取snmp服务的全名,此时输出的state会显示notpresent
Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0" //安装snmp服务
此时再次运行第一条指令,state会显示installed,说明已经安装成功
此时snmp服务默认开启