1. 先下载CentosSNMP服务

yum install -y net-snmp net-snmp-devel net-snmp-utils

2. 安装完成后配置SNMP服务

[root@vpv-zhu ~]# cat /etc/snmp/snmpd.conf |grep -vE "^#|^$"
com2sec notConfigUser  default       public
group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser
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  systemview none none
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root  (configure /etc/snmp/snmp.local.conf)
dontLogTCPWrappersConnects yes

参数说明:
# 格式:com2sec   [-Cn context]   sec.name   source   community
# com2sec:固定命令
# [-Cn context]:可选的,在v3版本中使用
# sec.name:  内部映射的名字,字符串,建组的时候需要用到
# source: 可以访问的ip地址范围,默认值"default”,即任何ip都可以访问.也可以使用限制192.168.1.0/24,或者192.168.1.0/255.255.255.0
# community: 实体字符串,外部使用的名字
com2sec notConfigUser  default       public

# 格式:group   groupName   securityModel   sec.name
# group: 固定命令
# groupName: 组名
# securityMode1: v1,v2c,usm,tsm,ksm
# sec.name:将sec.name映射到一个group中,组中具有相同的存取权限。
group   notConfigGroup v2c  notConfigUser

# 格式:view viewName type oid [mask]
# view: 定义一个view,表示整个OID树中的子树,同一个子树可定义多个view
# viewName: view名字
# type: included和exclude(包括和排除)
# oid: 可访问的oid
# [mask]: 对oid的mask
例:view all include 1.3.6.1.2.1.4  0xf0
# 0xf0:1111 0000,即访问的oid的前4位必须是1.3.6.1,否则不能访问,即可以访问1.3.6.1下所有的子oid
view    systemview    included   .1.3.6.1.2.1.25.1.1

# 格式:access groupName context model level prefx view read write 
# access:设置访问某一个view的权限
# groupName:控制存取权限的组名
# context:v1和v2c版本,context必须设置为""
# mode1:v1、v2c、usm、tsm、ksm。最后三种为v3版本授权模式,usm(基于用户的验证),tsm(SSH or DTLS),)ksm(用于支持Kerberos)
# level: noauth、auth、priv。noauth(允许无权限访问,v1,v2c可用),auth(必须有权限才能访问),pric(强制加密访问)
# prefx: exact or prefix(精确或前缀)
# view read、write:指明某一个view的权限是否可以GET*, SET*,如果该view不能read或write,则设置none
access  notConfigGroup  ""  any  noauth  exact  systemview none none

# 如果不注释掉,会生产日志到log里,仅在调试时关闭
dontLogTCPWrappersConnects yes

syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root  (configure /etc/snmp/snmp.local.conf)

其他具体参数,请参照官方说明 http://www.NET-snmp.org/docs/man/snmpd.conf.html

3. 启动SNMP服务即可

service snmpd start
chkconfig --add snmpd 3,5 on

4. 验证服务是否启动成功

[root@vpv-zhu ~]# snmpwalk -v 2c -c public localhost sysName
SNMPv2-MIB::sysName.0 = STRING: vpv-zhu.abc.com
# 如上,可以得到主机名,表示SNMP服务可以正常使用

[root@vpv-zhu ~]# snmptranslate -To|head -n3
.1.3
.1.3.6
.1.3.6.1
# 如上,表示SNMP工具可以使用

[root@vpv-zhu ~]# snmpwalk -v 2c -c public 10.60.12.64 sysName
# 测试远程Linux服务是否正常,如果得不到远程主机名,检查远程Linux防火墙

[root@vpv-zhu ~]# snmpwalk -v 2c -c public localhost 1.3.6.1.4.1.2021.11.11.0
UCD-SNMP-MIB::ssCpuIdle.0 = No more variables left in this MIB View (It is past the end of the MIB tree)
# 如上表示无法获取CPU空闲状态(注:1.3.6.1.4.1.2021.11.11.0是主机CPU空闲率的oid)

5. 要获取主机的一些重要信息,则要修改snmp的默认配置

view    systemview    included   .1.3.6.1.2.1.25.1.1
# view定义了可以访问哪些节点设备信息
view        systemview        included      ./
#  使访问所有的信息(较危险)



注意:需要防火墙开启UDP 161端口

snmp简单oid列表:http://www.ttlsa.com/monitor/snmp-oid/