root权限下运行
#yum install -y net-snmp net-snmp-utils
注:如果不执行此命令,后续可能无法获取主机名和snmp工具无法使用。
若安装成功,则可使用命令:
# service snmpd start
提示:Starting snmpd: [ OK ],则启动snmp服务成功。
如果结果为
可以重启snmp,命令为:
service snmpd restart
你可以将snmp服务设置为开机自启动,这样免去手动启动的麻烦。
使用命令:# chkconfig snmpd on,将snmpd服务设为开机自启动。
注:该命令执行完成后不会返回任何结果
检查snmpd服务是否已在运行:
# netstat -nlup | grep ":161"
该命令检查本地是否已在监听UDP端口161,如果返回类似以上结果,表明snmpd服务启动成功
然后使用命令:# chkconfig --list | grep snmpd,查看是否已经设置成功
开机时不启动SNMP trap服务
[root@kvm-24-4 ~]# chkconfig snmptrapd off
[root@kvm-24-4~]# chkconfig --list snmptrapd
#snmpwalk -v 2c -c public localhost sysName.0
如上,获取到本机主机名为Nagios.com,则表示snmp服务已经可以正常使用
#snmptranslate -To | head
如上,查出了部分oid,则表示snmp工具可以正常使用
我这里登陆了另外一台Linux主机,该主机也按照上面的步骤安装好snmp服务及snmp工具。通过这台主机,获取远端主机的数据,这时需指定远端主机的IP地址:
本机主机名:
以上安装完成后,使用的是snmp的默认配置,通过这些默认配置,我们只能获取主机的部分信息。但一些其他的重要信息,无法获取。如主机的CPU使用情况,内存使用情况等。
#snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.11.11.0
如上,无法获取CPU的空闲率(注:1.3.6.1.4.1.2021.11.11.0是主机CPU空闲率的oid)。
这时候,若要获取主机的一些重要信息,则要修改snmp的默认配置。
配置方法:修改/etc/snmp/snmpd.conf文件
view:定义了可以查看哪些节点设备的信息。
snmp默认配置只能查看.1.3.6.1.2.1.1和.1.3.6.1.2.1.25.1.1节点下的设备信息,而主机CPU和内存等设备都不在这些节点下,所以无法获取这些数据。因此,可以修改这个配置,如下:
添加了一行:
view systemview included .1
表示可以查看.1节点下的所有设备信息。
将
# proc mountd
# proc ntalkd 4
# proc sendmail 10 1
三行前的“#”号去掉,取消注释,结果如下:
将
#exec echotest /bin/echo hello world
一行前的“#”号去掉,取消注释。如下图:
将
#disk / 10000
一行前的“#”号去掉,取消注释。如下图:
将 #load 12 14 14
一行前的“#”号去掉,取消注释。如下图:
TIPS:
设置Community,默认是public,可以自己设置,这样可以防止其他用户获取主机信息。找到:
#### # First, map the community name "public" into a "security name" # sec.name source community com2sec notConfigUser default public #### # Second, map the security name into a group name: # groupName securityModel securityName group notConfigGroup v1 notConfigUser group notConfigGroup v2c notConfigUser
#service snmpd restart
# snmpwalk -v 2c -c public 192.168.13.77 .1.3.6.1.4.1.2021.11.11.0
如上,通过本机localhost获取到CPU的空闲率为99%。
如上,通过远端主机获取到CPU的空闲率为99%。
/etc/selinux/ config
将SELINUX=enforcing修改为SELINUX=disabled
#Reboot