Redhat7安装配置NET-SNMP——方式1(yum安装)

1.版本说明

操作系统:Red Hat Enterprise Linux Server release 7.6
net-snmp:v5.7.2

2.安装配置net-snmp

2.1 安装net-snmp

配置好redhat7.6的系统盘yum源之后,执行:

# yum list | grep net-snmp
net-snmp.x86_64                         1:5.7.2-37.el7             local       
net-snmp-agent-libs.x86_64              1:5.7.2-37.el7             local       
net-snmp-devel.x86_64                   1:5.7.2-37.el7             local       
net-snmp-libs.x86_64                    1:5.7.2-37.el7             anaconda/7.6
net-snmp-utils.x86_64                   1:5.7.2-37.el7             local       
net-snmp-agent-libs.i686                1:5.7.2-37.el7             local        
net-snmp-devel.i686                     1:5.7.2-37.el7             local        
net-snmp-libs.i686                      1:5.7.2-37.el7             local 

# yum -y install net-snmp*

2.2 文件路径

snmpd程序默认路径: /usr/sbin/snmpd
snmpd.conf 配置文件默认路径: /etc/snmp/snmpd.conf

2.3 修改snmpd.conf——共同体名称

# vim /etc/snmp/snmpd.conf

#       sec.name  source          community
com2sec notConfigUser  default      public

改为:
#       sec.name  source          community
com2sec notConfigUser  default      cmsnmp

2.4 修改snmpd.conf——查看设备节点权限

view:定义了可以查看哪些节点设备的信息。
snmp默认配置只能查看.1.3.6.1.2.1.1和.1.3.6.1.2.1.25.1.1节点下的设备信息,
而主机CPU和内存等设备都不在这些节点下,所以无法获取这些数据。修改如下:

#       name           incl/excl     subtree         mask(optional)
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1

改为:

#       name           incl/excl     subtree         mask(optional)
view    systemview    included   .1
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1

2.5 修改snmpd.conf——修改Process checks的配置

#proc mountd
#proc ntalkd 4
#proc sendmail 10 1

改为:
proc mountd
proc ntalkd 4
proc sendmail 10 1

通过 / 搜索功能,这三行前面的#号,取消注释

2.6 修改snmpd.conf——其他

#exec echotest /bin/echo hello world
改为:
exec echotest /bin/echo hello world
#disk / 10000
改为:	
disk / 10000
#load 12 14 14
改为:
load 12 14 14

保存配置并退出

2.7 通过sed命令修改snmpd.conf

下面的sed命令可以替代上面2.3-2.6章节的内容。方便后期批量操作时编写脚本。

cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak		#首先备份下配置文件
sed -i '41s/public/cmsnmp/' /etc/snmp/snmpd.conf		#修改41行,public为cmsnmp
sed -i '207s/#proc mountd/proc mountd/' /etc/snmp/snmpd.conf
sed -i '210s/#proc ntalkd 4/proc ntalkd 4/' /etc/snmp/snmpd.conf
sed -i '213s/#proc sendmail 10 1/proc sendmail 10 1/' /etc/snmp/snmpd.conf
sed -i '272s/#exec echotest/exec echotest/' /etc/snmp/snmpd.conf
sed -i '323s/#disk/disk/' /etc/snmp/snmpd.conf
sed -i '352s/#load 12 14 14/load 12 14 14/' /etc/snmp/snmpd.conf
sed -i '/.1.3.6.1.2.1.1/i\view    systemview    included   .1' /etc/snmp/snmpd.conf
			#匹配到字符串“.1.3.6.1.2.1.1”,在这前插入一行内容“view    systemview    included   .1”

#确认修改成功:
cat /etc/snmp/snmpd.conf | grep -E "cmsnmp|proc mountd|proc ntalkd|proc sendmail|exec echotest|load 12|view    systemview"

3.启动net-snmp

# /bin/systemctl restart snmpd.service
# ps -ef | grep snmpd
root     21768     1  1 17:33 ?        00:00:00 /usr/sbin/snmpd -LS0-6d -f
root     21779 10145  0 17:33 pts/5    00:00:00 grep --color=auto snmpd

4.验证net-snmp

4.1 从本地client端验证

snmpget -v 1 -c cmsnmp localhost sysUpTime.0			#此处localhost也可以用本地IP代替
snmpwalk -v 2c -c cmsnmp -m ALL localhost .1.3 | more	#此处localhost也可以用本地IP代替

#cmsnmp为共同体名称,需要与snmpd.conf文件配置一致,否则命令无法执行。
如果输出信息正常,表明snmp配置正常

4.2 从snmp server端验证

# cmsnmp为共同体名称
# 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

需要考虑是否是因为防火墙的设置导致。

5.防火墙设置

5.1 业务环境可以关闭防火墙

# systemctl stop firewalld			#关闭防火墙
# systemctl status firewalld		#查看防火墙状态

5.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表示生效

猜你喜欢

转载自blog.csdn.net/m0_37862262/article/details/107178327