前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Z投稿】通过API批量自动生成报表

【Z投稿】通过API批量自动生成报表

作者头像
Zabbix
发布2021-02-03 11:08:05
1.1K0
发布2021-02-03 11:08:05
举报
文章被收录于专栏:Zabbix中国官方
大家好,本期Z投稿为大家带来的文章是

《Zabbix通过API批量自动生成报表》

一起来看吧~

文| 李运臣

签名:优秀的判断力来自经验,但经验来自于错误的判断。

关键字: Zabbix,Shell,Python

多年Linux运维经验,精通Zabbix监控系统架构,熟悉Shell,Python等语言脚本的编写等。

微信: lyc100147

Zabbix 优势在于其丰富的api功能,可以高度定制化、扩展。在cmdb资产管理功能、微信操作控制Zabbix功能、获取Zabbix数据制作报表等都利用到了Zabbix api。Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时。很难想象管理数千台服务器而没有自动化是多么的困难。Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。

Zabbix API是在1.8版本中开始引进并且已经被广泛应用。所有的Zabbix移动客户端都是基于API,甚至原生的WEB前端部分也是建立在它之上。Zabbix API 中间件使得架构更加模块化也避免直接对数据库进行操作。它允许你通过JSON RPC协议来创建、更新和获取Zabbix对象并且做任何你喜欢的操作(当然前提是你拥有认证账户)。

Zabbix API提供两项主要功能:

1. 远程管理Zabbix配置

2. 远程检索配置和历史数据

API 采用JSON-RPC实现。这意味着调用任何函数,都需要发送POST请求,输入输出数据都是以JSON格式。大致工作流如下:

1. 准备JSON对象,它描述了你想要做什么(创建主机,获取图像,更新监控项等)。

2. 采用POST方法向http://example.com/zabbix/api_jsonrpc.php发送此JSON对象,http://example.com/zabbix/是Zabbix前端地址。api_jsonrpc.php是调用API的PHP脚本。可在安装可视化前端的目录下找到。

3. 获取JSON格式响应。

基本请求格式

Zabbix API简化的JSON请求如下:

{

"jsonrpc": "2.0",

"method": "method.name",

"params": {

"param_1_name": "param_1_value",

"param_2_name": "param_2_value"

},

"id": 1,

"auth": "159121b60d19a9b4b55d49e30cf12b81",

}

现在制作Zabbix报表,都会手动去制作报表或直接在数据库里抽取数据,第一种方法过于麻烦,要是一天两天还可以,日子多了就会很烦,第二种方法直接在数据库中抽取,很不安全,有可能会人为泄露数据,现在是信息化时代,数据比钱还要重要,所以两种方法都不可行,本篇文章主要介绍了通过Zabbix的API端口来获取数据来自动生成报表。

脚本的编程语言是Python语言,版本Python2.7.5,Python语言的使用在于对模块和语法的使用,要想实现此项功能,需要安装模块xlrd(对数据的读取),xlwt(数据的写入),openpyxl(读写Excel 2010文档的Python库),jdcal,et_xmlfile(是安装openpyxl模块的依赖模块),模块下载地址https://pypi.org/project/Openpyxl/#files模块安装完毕后,就可以直接上代码了。

首先第一个脚本,是登录Zabbix的api端口脚本login.py,这里需要修改的地方是请求的IP(注意:是zabbix-server的IP),登录Zabbix的用户和密码,如果不是脚本内的,也是需要修改的,详细脚本请看附件。

点击查看大图

第二个脚本,是定义函数脚本 function.py(这里获取的history.get),如果你想获取其他值,可参考https://www.zabbix.com/documentation/4.0/manual/api,可根据自己需求修改脚本,详细脚本请看附件。

点击查看大图

第三个脚本,是传参调用函数脚本zabbix.py,通过在此目录下创建ip.txt文件(如下图),读取文件内的ip来抽取出对应ip的cpu和内存的历史数据,详细脚本请看附件。

点击查看大图

第四个脚本,是定义取值时间函数脚本time.py,实现的功能是可以让用户可以取出不同时间段的值,更利于用户使用,详细脚本请看附件。

第五个脚本,是写入excel表格脚本excel.py,主要定义了生成excel表格,并将数据写入excel表格的方法和写入格式,详细脚本请看附件。

在该目录下会生成一个test.xls文件,导入到Windows系统内,打开后就能看到生成excel表格了,具体图如下:

点击查看大图

利用excel,即可以图表方式展现服务器的性能报表。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Zabbix开源社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档