SNMP 集成¶
简单网络管理协议 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及 HUBS 等)的一种标准协议,它是一种应用层协议。SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。
SNMP 集成 CA 步骤¶
- 创建应用
在 Cloud Alert 界面创建 snmp 应用,并获取 appkey 。
SNMPV2¶
一. 安装工具
-
将 snmptrap_monitor_v2.py 【点击下载】 上传到 linux 服务器的/aiops/local/snmptrap 目录下
-
安装执行 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
- 配置 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
- 修改 snmptrap_monitor_v2.py 中的相关配置,appID 为保存当前应用后生成的 appkey 对应的值
#CAHost及应用秘钥 CAHost = "api.aiops.com" appID = "{appKey} "
- 启动代理程序
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¶
一. 安装工具
-
将 snmptrap_monitor_v3.py 【点击下载】 上传到 linux 服务器的/aiops/local/snmptrap 目录下
-
安装执行 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
- 配置 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
- 修改 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}"
- 启动代理程序
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 |