1.版本说明:
平台:x86
OS:Red Hat Enterprise Linux Server release 7.6 (Maipo)
gcc:4.8.5 (系统自带)
net-snmp:5.7.3
2.准备工作
2.1 确认gcc环境
通过net-snmp编译包安装,需要系统提前安装好gcc环境。
# find / -name gcc
/usr/bin/gcc
/usr/lib/gcc
/usr/libexec/gcc
# /usr/bin/gcc -v
使用内建 specs。
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
2.2 net-snmp下载
下载地址:http://www.net-snmp.org/
点击download选择合适的版本下载到本地。
3.上传net-snmp并解压
# gunzip net-snmp-5.7.3.tar.gz
# tar -xvf net-snmp-5.7.3.tar
# cd net-snmp-5.7.3
4.编译安装net-snmp
# ./configure #一路按回车,默认值确认
# make && make install
# echo $? #如果返回值是0,就是执行成功;如果是返回值是0以外的值,就是失败。
5.复制配置文件
# cp /tmp/net-snmp-5.7.3/python/netsnmp/tests/snmpd.conf /usr/local/share/snmp/snmpd.conf
6.修改配置文件
# vim /usr/local/share/snmp/snmpd.conf
将:
# sec.name source community
com2sec local localhost public
com2sec mynetwork 192.168.1.0/24 public
改为:
# sec.name source community
com2sec local localhost cmsnmp
com2sec mynetwork 192.168.56.0/24 cmsnmp
PS:
(1)cmsnmp为共同体名称,可以自行定义
(2)192.168.56.0/24 为snmp server的网段,也可以是server端的IP地址。
(3)通过编译方式安装,和用yum安装net-snmp,所对应的配置文件会有所区别,务必核对仔细。
7.启动net-snmp
# /usr/local/sbin/snmpd -v #查看版本
NET-SNMP version: 5.7.3
Web: http://www.net-snmp.org/
Email: [email protected]
# /usr/local/sbin/snmpd -c /usr/local/share/snmp/snmpd.conf #启动程序
8.本地测试
snmpget -v 1 -c cmsnmp localhost sysUpTime.0 #此处localhost也可以用本地IP代替
snmpwalk -v 2c -c cmsnmp -m ALL localhost .1.3 | more #此处localhost也可以用本地IP代替
9.snmp server端测试
a)cmsnmp为共同体名称
b)10.168.1.129为client端IP地址
snmpwalk -v 2c -c cmsnmp 10.168.1.129 .1.3.6.1.2.1.25.2.2 #取得系统总内存
snmpwalk -v 2c -c cmsnmp 10.168.1.129 hrSystemNumUsers #取得系统用户数
snmpwalk -v 2c -c cmsnmp 10.168.1.129 .1.3.6.1.2.1.4.20 #取得IP信息
snmpwalk -v 2c -c cmsnmp 10.168.1.129 system #查看系统信息
snmpwalk -v 2c -c cmsnmp 10.168.1.129 ifDescr #获取网卡信息
如果执行,输出信息正常,表示配置没问题。
如果显示如下信息:
Timeout: No Response from 10.168.1.129
需要考虑是否是因为防火墙的设置导致。
10.防火墙设置
10.1 业务环境可以关闭防火墙
# systemctl stop firewalld #关闭防火墙
# systemctl status firewalld #查看防火墙状态
10.2 业务环境不可以关闭防火墙
如果业务环境不能关闭防火墙,那我们可以设置开放161端口,来允许snmp的server端的连接:
# systemctl start firewalld #打开防火墙
# systemctl status firewalld #查看防火墙状态
# firewall-cmd --zone=public --add-port=161/udp --permanent
#开放161端口
#--permanent的作用是使设置永久生效,不加的话机器重启之后失效
# firewall-cmd --reload #配置修改后重新加载
# firewall-cmd --zone=public --query-port=161/udp
#确认配置是否生效:输出yes表示生效