一.安装snmp服务
1.检查系统中是否安装snmp包
[root@10.10.90.97 ~]# rpm -qa |grep snmp
net-snmp-utils-5.3.2.2-9.el5_5.1
net-snmp-libs-5.3.2.2-9.el5_5.1
net-snmp-5.3.2.2-9.el5_5.1
如果没有安装以上的包,使用yum安装或者在安装盘中拷贝rpm包即可。安装时有一定的顺序
2.启动snmp服务
[root@10.10.90.97 ~]# service snmpd start
Starting snmpd: [ OK ]
[root@10.10.90.97 ~]# chkconfig snmpd on #将snmp服务设置成开机自动开启
3.验证snmp服务
(1)使用snmpwalk命令,查看本机localhost的主机名:
[root@10.10.90.97 ~]# snmpwalk -c public -v1 localhost sysName.0
SNMPv2-MIB::sysName.0 = STRING: FOCUS9097
(2)使用snmptranslate命令,检查snmp工具是否可以使用:
[root@10.10.90.97 ~]# snmptranslate -To |head
.1.3
.1.3.6
.1.3.6.1
.1.3.6.1.1
.1.3.6.1.2
.1.3.6.1.2.1
.1.3.6.1.2.1.1
.1.3.6.1.2.1.1.1
.1.3.6.1.2.1.1.2
.1.3.6.1.2.1.1.3
#如上,查出了部分oid,则表示snmp工具可以正常使用。
(3)测试远端主机是否可以获取数据
登陆另外一台机器,该主机也按照上面的步骤安装好snmp服务及snmp工具。通过这台主机,获取远端主机的数据,这时需指定远端主机的IP地址,执行命令:
[root@10.10.90.79 snmp]# snmpwalk -c public -v1 10.10.90.97 sysName.0
SNMPv2-MIB::sysName.0 = STRING: FOCUS9097
二、配置snmp服务
以上安装完成后,使用的是snmp的默认配置,通过这些默认配置,我们只能获取主机的部分信息。但一些其他的重要信息,无法获取。如主机的CPU使用情况,内存使用情况等。
如上,无法获取CPU的空闲率(注:1.3.6.1.4.1.2021.11.11.0是主机CPU空闲率的oid)。
这时候,若要获取主机的一些重要信息,则要修改snmp的默认配置。
配置方法:修改/etc/snmp/snmpd.conf文件
1、修改查看设备节点的权限
在该文件中,找到如下位置:
view:定义了可以查看哪些节点设备的信息。
snmp默认配置只能查看.1.3.6.1.2.1.1和.1.3.6.1.2.1.25.1.1节点下的设备信息,而主机CPU和内存等设备都不在这些节点下,所以无法获取这些数据。
因此,可以修改这个配置,如下:
在此处添加了一行:
view systemview included .1
表示可以查看.1节点下的所有设备信息。
2、修改Process checks的配置
找到如下位置:
将# proc mountd
# proc ntalkd 4
# proc sendmail 10 1
三行前的“#”号去掉,取消注释,结果为:
3、修改Executables/scripts配置
找到如下位置:
将#exec echotest /bin/echo hello world
一行前的“#”号去掉,取消注释。
4、修改disk checks配置
找到如下位置:
将#disk / 10000
一行前的“#”号去掉,取消注释。
5、修改load average checks配置
找到如下位置:
将 #load 12 14 14
一行前的“#”号去掉,取消注释。
6、保存修改,重启snmp服务
7、验证修改配置后的snmp服务
如上,通过远端主机获取到CPU的空闲率为100%。
8、定制snmp服务
修改/etc/snmp/snmpd.conf文件,在最后添加自己定制的snmp服务,如下图
其中:
exec .1.3.6.1.4.1.2021.51 inode /bin/sh /etc/snmp/inode_index.sh
exec .1.3.6.1.4.1.2021.53 inode /bin/sh /etc/snmp/inode_device.sh
exec .1.3.6.1.4.1.2021.55 inode /bin/sh /etc/snmp/inode_name.sh
exec .1.3.6.1.4.1.2021.56 inode /bin/sh /etc/snmp/inode_total.sh
exec .1.3.6.1.4.1.2021.57 inode /bin/sh /etc/snmp/inode_free.sh
exec .1.3.6.1.4.1.2021.58 inode /bin/sh /etc/snmp/inode_used.sh
exec .1.3.6.1.4.1.2021.59 inode /bin/sh /etc/snmp/inode_precent.sh
exec .1.3.6.1.4.1.2021.70 inode /bin/sh /etc/snmp/httpd_count.sh
exec .1.3.6.1.4.1.2021.71 inode /bin/sh /etc/snmp/mysqld_count.sh
都是添加的自己定制的snmp服务,注意:定制的oid(如.1.3.6.1.4.1.2021.51)一定避免和存在的oid重复,可用
snmptranslate -To |grep .1.3.6.1.4.1.2021.51 查询和核对
重启snmp服务后,在另外的机器上查看:
参考:http://wenku.baidu.com/
徐开推荐阅读:
[linux] 剖析Linux系统启动过程
2011.02.09
[linux] 剖析Linux系统启动过程
[linux] 文件管理器-clex
2011.04.30
[linux] 文件管理器-clex
[linux] nagios配置文件排查报错
2011.04.28
[linux] nagios配置文件排查报错