前言
最近在做snmp 采集相关的项目,记录一下
snmp 采集首先需要一个好的工具,推荐两款
- MIB brower :非常好用 ,但是商业版,一个月试用期
- Net-snmp: 适用于window/Linux(mac不支持V3)
安装net-snmp
- 下载: net-snmp下载地址
- 安装
#解压
tar -xzvf net-snmp-5.7.tar.gz
cd net-snmp-5.7
# 安装 ./configure 可执行文件:--prefix 指定安装目录(可选), 默认安装在 /usr/local 下
./configure
安装过程中提示输入信息, 直接 enter
选择默认,默认信息如下
1、default version of-snmp-version(3):
2、System Contact Information (@@no.where)(配置该设备的联系信息):
3、System Location (Unknown)(该系统设备的地理位置):
4、Location to write logfile (日志文件位置):
5、Location to Write persistent(数据存储目录):
- 编译
make && make install
编译过程比较漫长
- 配置
# 创建 etc 目录,如果已存在可忽略
mkdir -p /usr/local/snmp/etc
# 添加配置文件
cp net-snmp-5.8/EXAMPLE.conf /usr/local/snmp/etc/
mv /usr/local/snmp/etc/EXAMPLE.conf /usr/local/snmp/etc/snmpd.conf
- 修改配置
/usr/local/snmp/etc/snmpd.conf
# 配置允许网络访问
agentAddress udp:192.168.56.130:161
agentAddress udp:161
# 选择snmp版本
trap2sink localhost public
# 设置访问权限,rocommunity public default -V systemonly 修改为 rocommunity public default -V systemonly
rocommunity public default
- 启动
/usr/local/snmp/sbin/snmpd -c /usr/local/snmp/etc/snmpd.conf
Snmp V1/V2
snmp对网络设备管理分为v1,v2,v3 三种版本,v1/2相同,v3 需要认证。V2使用如下:
#get方式,获取单一值,指定具体oid或者指标名
# 获取运行时间
snmpget -v 2c -c public 127.0.0.1 SysUpTime.0
snmpget -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.3.0
# snmpwalk 方式,获取同一个oid下所有指标值,不同值,索引不同。(1.3.6.1.2.1.2.2.1.10 )入口流量
snmpwalk -v 2c -c public 10.78.12.5 1.3.6.1.2.1.2.2.1.10
snmp 其它参数,通过帮助命令查看
Snmp V3
snmpv3 需要认证,分为认证不加密、认证加密
,以snmpwalk 为例
# 安全级别为authPriv(认证加密)
snmpwalk -v 3 -u admin -l authPriv -a sha -A mypass123 -x aes -X myaes123 10.78.12.5 ".1.3.6.1.2.1"
# 安全级别为authNoPriv(认证不加密)
snmpwalk -v 3 -u itsm -l authNoPriv -a sha -A mypass123 10.78.12.5 ".1.3.6.1.2.1"
v3方式管理设备是,注意加密方式,本例使用 SHA
方式
总结
- snmp应用主要是针对网络设备或服务器的采集的只读操作,获取设备指标snmp 是不错的选择。网络设备默认开启的。服务器默认关闭。
- v2 使用的相对多,为了安全也可以使用v3,采集方式两者是相同的