三种监控方案说明:
方案一、自主开发不依赖开源监控系统的方案。(仅是个人设想的架构,架构不成熟,烦请指教)
方案二、使用zabbix进行监控,进行二次开发的方案。(目前在现公司已实现,除了交换机还有其他监控)
方案三、使用CactiEz实施监控告警的方案。(在西安赛格购物中心实现过,当时监控的是中兴的交换机,附图大部分为当时系统搭建后的界面截图)
方案一:
前期准备:
1、使用console线连接每台交换机,进入管理vlan,设置ip。 每台监控的交换机进行如下配置。 snmp-agent -- 开启snmpsnmp-agent sys-info version v2c --开启snmp v2c 服务 如需更高安全性 使用snmp v3版本snmp-agent community read wangzi --配置团体名为wangzi 只读权限 snmp-agent trap enable -- 开启trap通告 snmp-agent target-host trap address udp-domain 10.10.1.254 udp-port 162 params securityname wangzi v2c 将trap信息发往监控服务器 2、监控服务器和交换机路由可达。
实施步骤:
1、h3c官网查询 h3c交换机 代表负载的oid编号。
2、使用python 多进程脚本通过snmp get 批量请求h3c交换机负载oid,将get到的 负载值,时间戳和请求ip 同时写入redis和mysql主库记录表中,当表过大时可通过表分区或定时备份清理做处理。
3、监控告警程序循环并对应插入数据的时间间隔,查询redis或mysql从库记录的的交换机负载值,当有负载超过指定阈值时,发出告警。
4、前端展示通过查询redis或mysql从库实时查询监控状态,也可通过开源的rrdtool进行绘图展示。
将200台交换机分割成组:使用python多进程,每个进程查询分割后的交换机组,将get到的数据写入redis和msyql主库表中。 降低负载:查询h3c官网负载所代表的oid编号,指定查询,并控制查询频率。 (snmp查询时的资源占用和get到的数据本身都很低)
方案二(利用zabbix抓取h3c交换机负载数据,并进行二次开发):
实施步骤:
1、使用console线连接每台交换机,进入管理vlan,设置ip。 每台监控的交换机进行如下配置。 snmp-agent -- 开启snmpsnmp-agent sys-info version v2c --开启snmp v2c 服务snmp-agent community read wangzi --配置团体名为wangzi 只读权限 snmp-agent trap enable -- 开启trap通告 snmp-agent target-host trap address udp-domain 10.10.1.254 udp-port 162 params securityname wangzi v2c 将trap信息发往监控服务器
2、使用zabbix通过snmp get,将get到的数据写入到zabbix服务器。
3、在一台linux服务器上,通过python多进程循环调用zabbix api获取zabbix监控到的负载数据并同时写入redis和mysql master库。
4、前端监控/或自动告警监控 通过查询redis和mysql slave库 获取最新的负载数据并展示或告警。
目前所使用的架构:
方案三(利用CactiEz监控交换机负载):
此为我在西安赛格购物中心做过的一个案例。
通过cactiez来监控全楼交换机,当时全楼有近百个交换机,做了30多个交换机的监控(主要做了每个电井的上路 级联交换机监控)。
要求:监控服务器搭在server区可以通过路由和所有下路交换机通信。
每台交换机配置snmp服务。在监控服务器上搭建cactiez,并将要监控的交换机加入其中,并设置阈值,当触发阈值后 发送告警邮件及短信通知相关责任人处理。
具体实施步骤如下:
1、使用console线连接每台交换机,进入管理vlan,设置ip。
每台监控的交换机进行如下配置。
snmp-agent -- 开启snmp
snmp-agent sys-info version v2c --开启snmp v2c 服务
snmp-agent community read wangzi --配置团体名为wangzi 只读权限
snmp-agent trap enable -- 开启trap通告
snmp-agent target-host trap address udp-domain 10.10.1.254 udp-port 162 params securityname wangzi v2c 将trap信息发往监控服务器
2、搭建cactiez在一台linux服务器上,并进行配置。将团体名与之前在交换及配置的团体名改为一致。
3、进入监控项目,勾选监控项并,设置负载的监控阈值,及告警人等信息。