文档章节

zabbix二次开发-flask-获取主机组

鸿弟
 鸿弟
发布于 2016/11/17 22:25
字数 635
阅读 528
收藏 11
点赞 0
评论 0

zabbix官方的二次开发文档看起来还是有点吃力的,不像使用zabbix看起来轻松点。可能是运维人员的原因,开发这块不是很专业。看了网上的教程,很多翻译了官方的api文档翻译了下,自己也尝试使用flask去获取下zabbix的主机组,先看下获取到的主机组列表截图如下:

 

目前就先获取主机组列表的信息,还没接着往下开发,其中展示前端代码如下(使用的jijia2模板):

    <div class="container">
        <div class="col-md-4">
            <div class="panel panel-default">
                <div class="panel-heading">
                    主机组
                </div>
                <ul class="list-group">
                    {% for result in response['result'] %}
                        <li class="list-group-item"><a
                                href="/zabbix/hosts?groupid={{ result['groupid'] }}">{{ result['name'] }}</a></li>
                    {% endfor %}
                </ul>
            </div>
        </div>
    </div>

 

获取zabbix分组的后台代码如下,zabbix二次开发请求和响应都是json格式的,请求如果传json,使用python每次都先需要json.dumps()一下,会比较麻烦,所以直接封装了一个zabbix_request方法,传入字典即可:

#获取zabbix分组信息
@app.route('/zabbix/groups', methods=['GET', 'POST'])
def zabbix_groups():
    json_result = modules_zabbix.zabbix_auth()
    if json_result:
        response = json.loads(json_result)
        data = {
            "jsonrpc": "2.0",
            "method": "hostgroup.get",
            "params": {
                "output": "extend"
            },
            "auth": response['result'],
            "id": response['id']
        }
    response = modules_zabbix.zabbix_request(data)
    if response:
        #return response
        response = json.loads(response)
        return render_template('zabbix/groups.html', response = response)

method指定为hostgroup.get主要是获取主机组的信息,params现在看了官方文档,还不是很明白,请求先获取到了,后续看下能不能再深入理解了。把获取到的response转成字典传给前端就能进行展现了。

zabbix_request方法如下,传入字典的参数,返回的结果还是json格式的,注意header需要加入Content-Type为json的格式,官方文档有说了三个先其中一个即可:

def zabbix_request(data):
    url = "http://xxx:xxx/zabbix/api_jsonrpc.php"
    header = {"Content-Type": "application/json"}
    data = json.dumps(data)
    request = urllib2.Request(url, data)
    for key in header:
        request.add_header(key, header[key])
    try:
        result = urllib2.urlopen(request)
        json_result = result.read()
        result.close()
        return json_result
    except Exception as e:
        return None

 

其中,还有比较重要的方法没讲到,zabbix_auth,由于zabbix的任务操作都需要先登录才能操作,所以封装了认证的方法。其中认证的方法如下,使用user.login方法进行登录,user为zabbix登录的用户名,password为密码,获取到的结果获取result和id即可登录。有个优化的地方,就是获取到的认证信息存入文件或者缓存中,如果过期再调这个方法进行认证:

def zabbix_auth():
    data = {
            "jsonrpc": "2.0",
            "method": "user.login",
            "params": {
                "user": "Admin",
                "password": "xxx"
            },
            "id": 1
        }
    return zabbix_request(data)

 

© 著作权归作者所有

共有 人打赏支持
鸿弟
粉丝 65
博文 51
码字总数 33082
作品 0
杭州
运维
zabbix二次开发-flask-获取告警

上次通过zabbix api获取到监控的主机组,这次通过zabbix api获取一下告警的信息,把zabbix告警信息集成到自己的系统中,如下: 上面的图是zabbix网页自带的告警展示,下面图是自己通过调取z...

鸿弟 ⋅ 2016/11/25 ⋅ 0

zatree插件优化:优化左侧边栏

zatree是监控软件zabbix的一个插件,主要功能是提供host group的树形展示和在item里指定关键字查询及数据排序。 zatree项目地址https://github.com/spide4k/zatree,安装方法进到不同版本目录...

科技小能手 ⋅ 2017/11/12 ⋅ 0

zabbix简单的使用介绍

zabbix 主机与组配置 创建主机方法 1.1 新建主机 configuration(配置)->Hosts(主机)->Create host(创建主机) 主机参数 解释如下: Host name 主机名,只允许数字,空格,句号,下划线,非主流...

可乐的小月 ⋅ 2016/09/28 ⋅ 0

深入浅出Zabbix 3.0 -- 第四章 主机、用户和权限管理

第四章 主机、用户和权限管理 Zabbix中主机作为一个管理单元,用来管理和组织监控项,它可以包含任意数量和类型的监控项,并且每个主机必须属于至少一个主机组。当主机中的监控项获取监控数据...

大白一起学 ⋅ 2017/05/08 ⋅ 0

Zabbix深入配置和使用

1.1 配置流程 Zabbix完整的监控配置流程可以简单描述为: Host groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Event(事件)→Actions...

Bgxuliangwei ⋅ 2016/07/08 ⋅ 0

ansible动态inventory 获取自定义的主机列表

一、简单说明 Ansible,默认是调用“/etc/ansible/hosts”配置的主机组或者主机,同时也可以通过 -i 参数指定自定义的hosts文件。 Ansible Inventory实际上是包含静态Inventory和动态Invento...

科技小能手 ⋅ 2017/11/12 ⋅ 0

Zabbix(一):server,agent端 安装配置及主机,监控项,触发器,动作,媒介配置步骤

Zabbix(一):server端配置、agent端配置及创建主机组、主机、Application、Item、Trigger步骤详解 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 ...

Runs_ ⋅ 2017/11/25 ⋅ 0

Zabbbix监控配置

一、Zabbix-Agent客户端的安装 一、Zabbix-Agent客户端的安装 在前一篇文章《Zabbix介绍》有提到过,Zabbix客户端的数据采集方式可以分为SSH/Telnet/SNMP/Agent等,此处介绍用Agent方式对客户...

iTab ⋅ 2017/09/09 ⋅ 0

zabbix实例集群部署-偏向于管理使用

zabbix实例集群部署 前言:已经折腾两个礼拜了,本文侧重点不在于安装,在于使用管理。部署请看文档或者百度,,很简 单 提示:zabbix关于模板、应用集、主机组、触发器、等等命令一定要谨慎...

chennailong ⋅ 2017/02/20 ⋅ 0

zabbix数据库表结构简单解析

zabbix数据库表结构-持续更新 时间 2014-06-11 21:59:08 furion's blog 原文 http://www.furion.info/623.html 主题 MySQL zabbix 数据压缩 zabbix数据库表结构的重要性 想理解zabbix的前端代...

ShuaiDing ⋅ 2015/10/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

istio 文档

https://istio.io/docs/concepts/ https://istio.io/docs/concepts/traffic-management/handling-failures/ https://istio.io/docs/concepts/traffic-management/rules-configuration/......

xiaomin0322 ⋅ 17分钟前 ⋅ 0

编程语言的作用及与操作系统和硬件的关系

一、编程语言的作用及与操作系统和硬件的关系 作用:编程语言是计算机语言,是一种程序员与计算机之间沟通的介质,通过编程语言可以使得计算机能够根据人的指令一步一步去工作,完成某种特定...

slagga ⋅ 27分钟前 ⋅ 0

runtime实现按钮点击事件

也不能说是实现吧,,,就是有点类似于RAC里边的写法,不用给btn添加另外的点击事件,就那个add...select...这样子很不友好,来看下代码: [self.btn handleControlEvent:UIControlEventTou...

RainOrz ⋅ 28分钟前 ⋅ 0

Windows系统运维转linux系统运维的经历

开篇之前,首先介绍一下我的背景把:我是一个三线城市的甲方运维。最近,在《Linux就该这么学》书籍的影响下和朋友小A(Linux运维已经三年了,工资也比我的高很多)的影响下,决定转行。最近...

linux-tao ⋅ 29分钟前 ⋅ 0

zip压缩工具,tar打包工具

zip压缩工具 zip打包工具跟前面说到的gzip,bz2,xz 工具最大的不一样是zip可以压缩目录。如果没有安装,需要使用yum install -y zip 来安装。安装完之后就可以直接使用了,跟之前提到的压缩...

李超小牛子 ⋅ 36分钟前 ⋅ 0

使用npm发布自己的npm组件包

一、注册npm账号 官网:https://www.npmjs.com/signup 注册之后需要进行邮箱验证,否则后面进行组件包发布时候会提示403错误,让进行邮箱核准。 二、本地新建一个文件夹,cd进入后使用npm i...

灰白发 ⋅ 38分钟前 ⋅ 0

010. 深入JVM学习—垃圾收集策略概览

1. 新生代可用GC策略 1. 串行GC(Serial Copying) 算法:复制(Copying)清理算法; 操作步骤: 扫描年轻代中所有存活的对象; 使用Minor GC进行垃圾回收,同时将存活对象保存到“S0”或“S...

影狼 ⋅ 39分钟前 ⋅ 0

JVM性能调优实践——JVM篇

在遇到实际性能问题时,除了关注系统性能指标。还要结合应用程序的系统的日志、堆栈信息、GClog、threaddump等数据进行问题分析和定位。关于性能指标分析可以参考前一篇JVM性能调优实践——性...

Java小铺 ⋅ 40分钟前 ⋅ 0

误关了gitlab sign-in 功能的恢复记录

本想关sign-up的,误点了sign-in 退出后登录界面提示: No authentication methods configured 一脸懵逼.. 百度后众多方案说修改application_settings 的 signin_enabled字段; 实际上新版本字段...

铂金蛋蛋 ⋅ 40分钟前 ⋅ 0

登录后,后续请求接口没有带登录cookie可能原因

1.XMLHttpRequest.withCredentials没设置好,参考https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/withCredentials...

LM_Mike ⋅ 41分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部