- 系统版本
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
- 检查net-snmp安装情况
如果没有任何输出,说明系统未安装net-snmp
[root@localhost ~]# rpm -qa |grep net-snmp
[root@localhost ~]#
- 安装net-snmp
通过网络安装则自动下载并安装以下的4个包,如果不连接外网,可以挂在linux光盘,设置本地源安装。
- net-snmp
提供了一个入口,使得监控服务器可以通过snmp协议从这个入口与被监控机器通信
- net-snmp-devel
是为了使用net-snmp-config, net-snmp-utils是为了使用snmpwalk
- net-snmp-libs
提供了运行需要的库文件
- net-snmp-utils
提供了一套工具,可以利用snmp协议进行通信
[root@localhost ~]# yum install -y net-snmp net-snmp-utils
安装过程省略。
- 查看安装后的net-snmp
[root@localhost ~]# rpm -ql net-snmp
/etc/snmp
/etc/snmp/snmpd.conf
/etc/snmp/snmptrapd.conf
/etc/sysconfig/snmpd
/etc/sysconfig/snmptrapd
略……
- 查看net-snmp版本
[root@localhost ~]# snmpd -v
NET-SNMP version: 5.7.2
Web: http://www.net-snmp.org/
- 配置Snmp v3用户
- 编辑文件/var/lib/net-snmp/snmpd.conf,
- 使用net-snmp-create-v3-user命令{net-snmp-config --create-snmpv3-user}
The net-snmp-create-v3-user shell script is designed to create a new user in net-snmp configuration file (/var/net-snmp/snmpd.conf by default).
net-snmp-create-v3-user [-ro] [-A authpass] [-X privpass] [-a MD5|SHA] [-x DES|AES] [username]
-ro
create an user with read-only permissions
-A authpass
specify authentication password
-a MD5|SHA
specify authentication algorithm
-X privpass
specify encryption password
-x DES|AES
specify encryption algorithm
- 用例说明
[root@localhost ~]# net-snmp-create-v3-user
例子中,我们创建了一个名叫snmpv3user的SNMPv3用户,使用MD5进行认证以及使用AES进行加密,auth-password作为认证密码,encrypt-password作为加密密码。
- 增强配置
可以在/etc/snmp/snmpd.conf 文件配置 syslocation 和syscontact
[root@localhost ~]# vi /etc/snmp/snmpd.conf
- 启动服务
[root@localhost ~]# service snmpd start #启动服务
Redirecting to /bin/systemctl start snmpd.service
[root@localhost ~]# service snmpd status #查看状态
- 验证服务
snmpwalk命令用法:
-v 1|2c|3 | specifies SNMP version to use |
-u USER-NAME | set security name (e.g. bert) |
-l LEVEL | set security level (noAuthNoPriv|authNoPriv|authPriv) |
-a PROTOCOL | set authentication protocol (MD5|SHA) |
-A PASSPHRASE | set authentication protocol pass phrase |
-x PROTOCOL | set privacy protocol (DES|AES) |
-X PASSPHRASE | set privacy protocol pass phrase |
-c COMMUNITY | set the community string (v1/v2c版本) |
[root@localhost ~]# snmpwalk -v 3 -u snmpv3user -a MD5 -A auth-password -l authPriv -x DES -X encrypt-password localhost
可以看到我们顺利的取到了服务器的snmp数据。
- 简单一条命令
上面的步骤2也可以使用下面的命令完成:
[root@localhost ~]# net-snmp-create-v3-user -ro -A auth-password -X encrypt-password -a MD5 -x AES snmpv3user
- 开放防火墙
如果想对外提供snmp服务,需要设置防火墙规则来开放161 udp端口。
不同的linux版本防火墙的设置不一样,请查找相应的设置方法。
- Snmp操作命令参数含义对应表
Parameter | Command Line Flag | snmp.conf token |
securityName | -u NAME | defSecurityName NAME |
authProtocol | -a (MD5|SHA) | defAuthType (MD5|SHA) |
privProtocol | -x (AES|DES) | defPrivType DES |
authKey | -A PASSPHRASE | defAuthPassphrase PASSPHRASE |
privKey | -X PASSPHRASE | defPrivPassphrase PASSPHRASE |
securityLevel | -l (noAuthNoPriv|authNoPriv|authPriv) | defSecurityLevel (noAuthNoPriv|authNoPriv|authPriv) |
context | -n CONTEXTNAME | defContext CONTEXTNAME |
- 混乱的命令
- 对于Centos 7使用以下命令启动服务以及设置服务启动状态:
systemctl restart snmpd.service
systemctl enable snmpd.service
- 对于老的Centos使用命令如下:
service snmpd start
chkconfig snmpd on