zabbix企业应用之监控CDN带宽

简介:

最近介绍了很多ansible的使用案例,这次就回归正轨,介绍如何使用zabbix监控CDN带宽,做到在带宽出现异常的时候及时知晓,访问带宽异常造成的经济损失。

这里以蓝汛CDN为例,监控的方法是通过CDN给与的api接口。备注:目前蓝汛api接口只能查看单独频道的带宽,无法查看所有频道的,并且频道id还需要你自己或者客服帮你查下,十分不方便。

1、api接口信息为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(一) 接口地址:
https: //api .chinacache.com /reportdata/monitor/query ? type =monitor&withtime
= true &layerdetail= true &username=xxx&pass=xxx&billingid=123&starttime=2
01009190000&endtime=201009192359
  说明:
1. 目前提供两种协议的接口:一种是HTTP,另一种是HTTPS,可根据需要自
行决定使用任何其中一种
2. 用户可以通过post 或get 方式访问协议的接口
(二) 参数说明:
type =monitor【必选参数】:查询类型
withtime= true 【可选参数】:用来表明查询结果中是否显示详细时间戳
layerdetail= true 【可选参数】:用来表明查询结果中是否显示分层数据
username【必选参数】:用户名,客户在portal 中的登录账号
pass【必选参数】:密码,客户在portal 中的登录密码
billingid【必选参数】:提供服务的计费单元ID, 为ChinaCache 定义的计费单元编
号。当有多个计费单元需要查询时, 需要以‘ & ’ 分隔, 例如:
billingid=123&billingid=456
starttime【必选参数】:开始时间,精确到分钟
1. 格式:年月日时分(12 位,4 位年,2 位月,2 位日,2 位小时,2 位分钟)
2. 例子:201009190000,表示2010 年9 月19 日0 点0 分
endtime【必选参数】:结束时间,精确到分钟
1. 格式:年月日时分(12 位,4 位年,2 位月,2 位日,2 位小时,2 位分钟)
2. 例如:201009192359,表示2010 年9 月19 日23 点59 分

其他的信息如何你使用蓝汛或者其他CDN,请自行管他们要api文档。

2、下面是我通过api获取某频道CDN带宽脚本(python的)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash
#encoding=utf-8
import  datetime
import  urllib
import  urllib2
api_user= 'xxxx'
api_passwd= 'xxxx'
billid= '3926x'
now_time=datetime.datetime.now()
starttime=(now_time - datetime.timedelta(seconds=300)).strftime( '%Y%m%d%H%M' )
endtime=(datetime.datetime.now()).strftime( '%Y%m%d%H%M' )
url= "https://api.chinacache.com/reportdata/monitor/query?type=monitor&withtime=true&layerdetail=true&username=%s&pass=%s&billingid=%s&starttime=%s&endtime=%s" %(api_user,api_passwd,billid,starttime,endtime)
#get xxx product xml
result = urllib2.urlopen(url, timeout=5). read ()
#follow is use xml
'' '
from xml.etree  import  ElementTree as ET
from xml.dom  import  minidom
per=minidom.parseString(result)
per=ET.parse( 'qsmy.xml' )
p=per.findall( '/Total' )
for  oneper  in  p: 
     for  child  in  oneper.getchildren():
     if  child.tag ==  'MaxData' :
         value = round(int(child.text) /float (1000) /float (1000),2)
             print value
'' '
#follow is use string
import  xml.etree.ElementTree 
per  = xml.etree.ElementTree.fromstring(result)
p=per.findall( 'Total' )
for  oneper  in  p:
     for  child  in  oneper.getchildren():
         if  child.tag ==  'MaxData' :
         value = int(child.text) /1000/1000
             print value

上面有2种方法获取接口,一个是把api获取的信息存到一个xml文件里,然后解析xml文件,另外一个是直接通过接口获取数据后解析,默认我采取第二个方法。

同时我获取的是前5分钟最大的数据,并且单位为M。

3、下面是web里运行api获取结果展示

wKiom1Pyp_WBfIyHAAKfe5yyRQI276.jpg结果是23M

4、然后在命令行里运行结果展示

wKiom1PyqK-x1SFNAACnaDn-xhM385.jpg可以看到结果也是23,上面的url是我为了让大家看的更情况才输出的。

5、结合zabbix监控

A.把此脚本放到/usr/local/zabbix/bin/目录下,给与755权限与zabbix用户与组权限。

B.在zabbix_agentd.conf里配置

1
2
[root@puppet bin] # tail -n 1 /usr/local/zabbix/conf/zabbix_agentd.conf 
UserParameter=check_cdn[*],python  /usr/local/zabbix/bin/qsmy_cdn .py

C.重启zabbix客户端

1
2
ps  -ef| grep  zabbix| grep  - v  grep | awk  '{print$2}' | xargs  kill  -9
/usr/local/zabbix/sbin/zabbix_agentd  -c  /usr/local/zabbix/conf/zabbix_agentd .conf

D.在zabbix的web里,添加item如下

wKiom1PyqmbSdL39AAKK8Nk0Yhc314.jpg

E.trigger配置为

wKioL1P1WCeRS8vQAAB_OYMP9zg265.jpg

F.graphs的话自己配置

G.zabbix里图像显示为

wKiom1PyqzfxWZ-tAAPBA70nQLQ791.jpg

大家可以参考这个来定制自己的CDN带宽监控,有问题可以留言。








 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1541847,如需转载请自行联系原作者



相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
2月前
|
监控 安全 Linux
在Linux中,zabbix如何监控脑裂?
在Linux中,zabbix如何监控脑裂?
|
6天前
|
JSON API 数据格式
阿里云国际版CDN查询实时带宽步骤
阿里云国际版CDN查询实时带宽步骤
|
12天前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
【10月更文挑战第5天】随着OceanBase社区版的广泛应用,企业纷纷采用这一高性能、高可用的分布式数据库系统。为了确保系统的稳定运行,使用成熟的Zabbix监控工具进行全面监控至关重要。本文通过具体示例介绍了如何配置Zabbix监控OceanBase,包括安装配置、创建监控模板和监控项、编写脚本、设置触发器及图形展示等步骤,帮助读者快速上手,及时发现并解决问题,确保业务始终处于最佳状态。
22 2
|
1月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
37 2
zabbix agent集成percona监控MySQL的插件实战案例
|
2月前
|
SQL 监控 分布式数据库
【解锁数据库监控的神秘力量!】OceanBase社区版与Zabbix的完美邂逅 —— 揭秘分布式数据库监控的终极奥秘!
【8月更文挑战第7天】随着OceanBase社区版的普及,企业广泛采用这一高性能、高可用的分布式数据库。为保障系统稳定,使用成熟的Zabbix监控工具对其进行全方位监控至关重要。本文通过实例介绍如何在Zabbix中配置监控OceanBase的方法,包括创建监控模板、添加监控项(如TPS)、设置触发器及图形展示,并提供示例脚本帮助快速上手。通过这些步骤,可以有效监控OceanBase状态,确保业务连续性。
90 0
|
4月前
|
监控 数据库 Docker
Zabbix监控神通数据库教程
**摘要:** 本文介绍了如何使用Docker安装和配置神舟通用数据库,并利用Zabbix进行监控。首先,通过Docker安装数据库镜像,启动容器并映射端口。接着,使用默认凭证连接数据库并验证安装。然后,将数据库的Python模块和库文件复制到主机,并安装Python3.5及相应模块,创建外部检查脚本以实现Zabbix的监控功能。示例展示了查询数据库版本的监控指标配置。最后,提到了监控结果的界面展示,并邀请读者探索更多Zabbix监控技巧。
69 0
Zabbix监控神通数据库教程
|
3月前
|
监控 关系型数据库 应用服务中间件
Linux zabbix监控 软件的安装
Linux zabbix监控 软件的安装
|
5月前
|
监控 关系型数据库 MySQL
zabbix 监控mysql服务
zabbix 监控mysql服务
81 0
zabbix 监控mysql服务
|
5月前
|
数据采集 监控 数据库
请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
【2月更文挑战第25天】请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
65 2
|
5月前
|
监控 网络协议 Unix
centos7 zabbix安装客户端agent -配置监控远程主机 在需要监控的电脑上安装
centos7 zabbix安装客户端agent -配置监控远程主机 在需要监控的电脑上安装
178 0

推荐镜像

更多