snmp是用来监控服务器运行状态的一种服务。
部署监控系统的时候需要用到,比如zabbix,当然,也可以直接用ssh来进行验证监控,但也会有一些安全性的问题。
redhat suse solaris hp-ux AIX每个平台的snmp安装与配置都有点不一样。
以前公司添加监控,各个平台下都要启用snmp服务和配置,所以当时就有总结一下,这个没有什么技术含量,不过总结在一起,需要的人用起来就比较方便。

一、Redhat分支系列的snmp配置:
yum install net-snmp
snmp版本有v1、v2、v3三个级别可以选择
一般默认就会使用v1或者v2,不过这两个安全性较低,只有通过一个共同体名来进行验证,不过我们可以通过IP来进行限制。
v3级别可以设置用户名和密码才能进行监控。

v1/v2配置
vim /etc/snmp/snmpd.conf
需要改动的地方一般也就下面四个地方:
1.1)
# sec.name source community
com2sec notConfigUser default public
#sec.name(别名):用在下面配置的组中,用来赋予权限,是只读还是读写
#source(来源)是允许哪个地址来连接你的snmp,default默认是允许任何主机来连接。如果写一个IP是只允许 192.168.1.110这个地址来连接,如果你需要使用一个网段的话,那么就可以这么写了192.168.1.0/24。
#community是共同体的名称,你用client连接snmp使用的,相当于密码

1.2)
# groupName securityModel securityName
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
#定义一个组名(groupName)这里是 notConfigGroup,及组的安全级别
notConfigUser就是前面定义的用户别名,把这个用户加到这个组中。

1.3)
# 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

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

定义一个可操作的范围(view)名, 这里是 all,范围是 .1

incl/excl:对下面的MIB子树是包括还是排除。
subtree:视图中涉及的MIB子树。
mask:掩码

1.4)
# group context sec.model sec.level prefix read write notif
access notConfigGroup “” any noauth exact systemview none none

定义 notConfigUser 这个组在 all 这个 view 范围内可做的操作,这时定义了 notConfigUser 组的成员可对.1这个范围做只读操作。

context:上下文,v1、v2c中始终为空。
sec.model:安全模式,可选值为v1/v2c/usm。
sec.level:安全级别,可选值为auth/noauth/priv,v1、v2c中只能为noauth。
prefix:前缀,指定context如何与PDU中的context匹配,v3使用。
read:授权的读视图。
write:授权的写视图。
notif:授权的trap视图。

配置范例:

com2sec HAIBING 192.168.0.1 haibingzl4Flf3sfs

group notConfigGroup v2 HAIBING

view all included .1
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1

access notConfigGroup "" any noauth exact all none none

启用服务:

#service snmpd start
#chkcofnig snmpd on

测试:可以到192.168.0.1和其它电脑上进行测试一下:

#snmpwalk -v 2c 192.168.0.2 -c haibingzl4Flf3sfs sysName.0

如果能获取到主机名,就说明配置成功了。

v3级别的设置
先把/etc/snmp/snmpd.conf里的配置都注释掉,要不然启用snmp服务后,v1/v2也启用了,而且没有设置任何限制的。

添加一个只读账户(如root),创建一个密码(如12345678)密码最少8位,并以MD5加密

#service snmpd stop    需先停止服务
#net-snmp-create-v3-user -ro -A 12345678 -a MD5 root

执行后会在/etc/snmp/snmpd.conf添加字段:
rouser root

还会在/var/lib/net-snmp/snmpd.conf中添加字段:
createUser root MD5 "12345678" DES

开启服务:
service snmpd start

/var/lib/net-snmp/snmpd.conf里面的字段:
createUser root MD5 "12345678" DES   会被转化为加密状态
变成为
usmUser .........


在远端测试:
#snmpwalk -v 3 -u root -a MD5 -A "12345678" -l authNoPriv 192.168.0.1 sysName.0


 net-snmp-create-v3-user [-ro] [-A authpass] [-X privpass]
                          [-a MD5|SHA] [-x DES|AES] [username]
-a 后的md5和sha是认证方式
-x 后的des和aes是加密方式
两者不同是-a后的认证方式不可解密逆转只可用来做认证
-x后的加密可被解密出原来的数据。
v3版本的本身就是更安全的版本所以认证加密是肯定要有的。

如果启用snmp服务的主机有开启防火墙,需要放行161端口
iptables -I INPUT -p udp --dport 161 -j ACCEPT

二、suse系统的snmp配置
1、安装snmp服务

zypper in net-snmp
suse 9:
vim /etc/snmpd.conf

suse 10及以上:
vim /etc/snmp/snmpd.conf

rocommunity 12345678 192.168.1.5
允许192.168.1.5用12345678进行验证监控

rocommunity 12345678 192.168.1.0/24
允许192.168.1.0网段用12345678进行验证监控

#rcsnmpd restart

三、solaris系统的snmp配置

solaris 11:

vi /etc/net-snmp/snmp/snmpd.conf
rocommunity haibingzl4Flf3sfs 192.168.0.0/24
#svcadm enable net-snmp
#svcadm -v restart net-snmp

solaris 10:
有两个 snmp 的实现
一个是与net-snmp相似的System Managment Agent(sma)
一个是向后兼容的 Sun Solstice Enterprise Master Agent (snmpdx)
两个分别对应服务:
svcadm enable svc:/application/management/sma:default
svcadm enable svc:/application/management/snmpdx:default
对应的配置文件路径:
/etc/sma
/etc/snmp

net-snmp:(sma)
#vi /etc/sma/snmp/snmpd.conf
rocommunity haibingzl4Flf3sfs 192.168.0.0/24
#svcadm enable sma
#svcadm -v restart sma

snmpdx:
修改etc 下的snmp/conf/snmpd.conf(/etc/sma/snmp/snmpd.conf)

把plublic全部换成团体名称
#
system-group-read-community     tumap
#system-group-write-community    private 
#
read-community  tumap
#write-community private 
#
trap            localhost
trap-community  SNMP-trap
#
#kernel-file     /vmunix

#svcadm enable seaport
#svcadm enable snmpdx

三、HPUX系统的snmp配置

vi /etc/snmpd.conf
get-community-name:     12345678    
#set-community-name:    # enter community name
#contact:               # enter contact person for agent
#location:              # enter location of agent
#max-trap-dest:         # enter max no. of trap-dest entries to be maintained.
#trap-dest:             # enter trap destination


然后重起 snmp 服务,使用如下命令,停止服务
/sbin/init.d/SnmpMaster stop
/sbin/init.d/ SnmpHpunix stop
然后使用如下命令启动服务:
/sbin/init.d/SnmpMaster start
/sbin/init.d/SnmpHpunix start


发表评论