跳转至

SNMP 集成

简单网络管理协议 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及 HUBS 等)的一种标准协议,它是一种应用层协议。SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。


SNMP 集成 CA 步骤

  • 创建应用

在 Cloud Alert 界面创建 snmp 应用,并获取 appkey

SNMPV2

一. 安装工具

  1. 将 snmptrap_monitor_v2.py 【点击下载】 上传到 linux 服务器的/aiops/local/snmptrap 目录下

  2. 安装执行 python 脚本所必须的包,执行如下命令

yum -y install epel-release
yum -y install python-pip
pip install jenkinsapi
pip install json
pip install request
pip install pysnmp
pip install socket
pip install uuid
  1. 配置 snmpd,使当告警产生时自动发送到代理

linux-centos 操作系统配置如下所述

进入 snmp 安装目录,默认安装目录是/etc/snmp 编辑 snmpd.conf trap2sink 代理服务器 ip:162 public

# First, map the community name "public" into a "security name"
# sec.name source community
#com2sec notConfigUser default public

trap2sink 代理服务器ip:162 public
  1. 修改 snmptrap_monitor_v2.py 中的相关配置,appID 为保存当前应用后生成的 appkey 对应的值
#CAHost及应用秘钥
CAHost = "api.aiops.com"
appID = "{appKey} "
  1. 启动代理程序
nohup sudo python snmptrap_monitor_v2.py >> snmptrap.log &

二. 测试接入告警

执行如下命令手动发送告警,验证代理程序是否正常工作

nohup sudo python snmptrap_monitor_v2.py >> snmptrap.log &

snmptrap.log 如下所示:

2021-12-23 16:37:09 {"eventId": "bdd8ef40-7a67-47e2-a914-22c0b8fd4fe0", "trapType": "TRAP", "host": "10.128.5.138", "info": "this is test", "app": "10c33ca227c54f1ba9555a5ca03a8e66", "oid": "1.3.6.1.2.1.1.3.0", "genTrap": 4, "eventDate": "2021-12-23 16:37:09", "port": "51553"}
2021-12-23 16:37:09 200 {"result":"success","message":"接入成功","data":0,"totalCount":0,"code":0}

SNMPV3

一. 安装工具

  1. 将 snmptrap_monitor_v3.py 【点击下载】 上传到 linux 服务器的/aiops/local/snmptrap 目录下

  2. 安装执行 python 脚本所必须的包,执行如下命令

yum -y install epel-release
yum -y install python-pip
pip install jenkinsapi
pip install json
pip install request
pip install pysnmp
pip install socket
pip install uuid
pip install retrying
  1. 配置 snmpd,使当告警产生时自动发送到代理

先创建创建一个用户 user1,密码为 Cisc0123

net-snmp-create-v3-user -a SHA -A Cisc0123 -x DES -X Cisc0123 user1

snmpd.conf 如下所示:

adding the following line to /var/lib/net-snmp/snmpd.conf:
createUser user3 SHA "Cisc0123" DES Cisc0123
adding the following line to /etc/snmp/snmpd.conf:
rwuser user3

启动 snmpd 服务,执行以下命令

systemctl start snmpd

在 snmpd.conf 手动添加如下配置,其中 ip 地址为代理服务器 IP

master agentx
trapsess -r 0 -v 3 -u user1 -l authPriv -a SHA -A Cisc0123 -x DES -X Cisc0123 代理服务器IP

使用 snmpwalk 进行测试,配置成功后如下所示:

[root@zknode0 snmp]# snmpwalk -v 3 -u user3 -l authPriv -a SHA -A Cisc0123 -x DES -X Cisc0123 10.128.5.138 sysName
SNMPv2-MIB::sysName.0 = STRING: zknode0
  1. 修改 snmptrap_monitor_v3.py 中的相关配置,切记和步骤三种配置的内容一致,appID 为保存当前应用后生成的 appkey 对应的值
#SNMP参数设置应该如下,参数含义依次为:用户名 认证算法 认证密钥 加密算法 加密密钥 engineID
user='user1'
#认证算法支持md5和sha,不需要请填写None
hash_meth='sha'
#认证密钥,不需要请填写None
hash_key='Cisc0123'
#加密算法支持3des, des, aes128, aes192, aes256,不需要请填写None
cry_meth='des'
#加密密钥,不需要请填写None
cry_key='Cisc0123'
engineid='800000090300CA011B280000'

#CAHost及应用秘钥
CAHost = "api.aiops.com"
appID = "{appKey}"
  1. 启动代理程序
nohup sudo python snmptrap_monitor_v3.py >> snmptrap.log &

二. 测试接入告警

执行如下命令手动发送告警,验证代理程序是否正常工作

snmptrap -v 3 -a SHA -A Cisc0123 -x DES -X Cisc0123 -l authPriv -u user1 -e 800000090300CA011B280000 代理服务器IP 40 linkUp.0 sysLocation.0 s "this is test"

snmptrap.log 如下所示:

2021-12-23 16:37:09 {"eventId": "bdd8ef40-7a67-47e2-a914-22c0b8fd4fe0", "trapType": "TRAP", "host": "10.128.5.138", "info": "this is test", "app": "10c33ca227c54f1ba9555a5ca03a8e66", "oid": "1.3.6.1.2.1.1.3.0", "genTrap": 4, "eventDate": "2021-12-23 16:37:09", "port": "51553"}
2021-12-23 16:37:09 200 {"result":"success","message":"接入成功","data":0,"totalCount":0,"code":0}
手动执行名称参数 value 说明
-v 3 版本
a SHA 认证算法支持 md5 和 sha
-A Cisc0123 认证密钥
-x DES 加密算法支持 3des, des, aes128, aes192, aes256
-X Cisc0123 加密密钥
-l authPriv 认证方式支持 noAuthNoPriv、authNoPriv、authPriv
-u user1 用户名
-e 800000090300CA011B280000 engineID

SNMP 与 CA 告警级别映射关系

睿象云 net-snmp(genTrap)
致命 --
严重 5
警告 2,4
提醒 0,1,3,6
通知 --
睿象云 net-snmp
事件ID (eventId) 一个随机的uuid