zatree插件优化:支持HTTP Basic Authorization认证访问zabbix API

zatree是监控软件zabbix的一个插件,主要功能是提供host group的树形展示和在item里指定关键字查询及数据排序。

zatree项目地址https://github.com/spide4k/zatree,安装方法进到不同版本目录看readme。

最近遇到一个问题,当zabbix的web端使用了http基本认证方式的时候,zatree插件不能正常调用zabbix的api,导致报错。

查看错误信息方法:打开php的显示错误,

# vi /etc/php.ini

display_errors = On

重启web server。

点击Zatree按钮,就会在页面上看到错误信息。

解决方法如下,这里针对zatree的zabbix-2.2.x版本做修改,方法同样适合zabbix-2.0.x版本。

进入zatree目录,修改以下四个文件:

步骤一、修改zabbix_config.php

添加HTTP Basic Authorization认证用户名和密码参数。如果没有设置HTTP Basic Authorization认证,http_user和http_password的值为空就行。

<?php 
global $zabbix_api_config;

$zabbix_api_config=array(
 ‘api_url‘=>‘api_jsonrpc.php‘,
 ‘http_user‘=>‘xxxxx‘,
 ‘http_password‘=>‘xxxxx‘,
 ‘user‘=>‘Admin‘,
 ‘passowrd‘=>‘xxxxx‘,
 ‘graph_url‘=>‘zabbix_chart.php‘,
);

?>

步骤二、修改zabbix_ajax.php第33行,添加当有HTTP认证时的$url_http。

        $url_http = dirname(dirname(‘http://‘ . $_SERVER[‘HTTP_HOST‘] . $_SERVER["REQUEST_URI"]));

修改为:

        if (!empty($zabbix_api_config[‘http_user‘]) && !empty($zabbix_api_config[‘http_password‘])) {
                $url_http = dirname(dirname(‘http://‘ . trim($zabbix_api_config[‘http_user‘]) . ‘:‘ . trim($zabbix_api_config[‘http_password‘]) . ‘@‘ . $_SERVER[‘HTTP_HOST‘] . $_SERVER["REQUEST_URI"]));
        } else {
                $url_http = dirname(dirname(‘http://‘ . $_SERVER[‘HTTP_HOST‘] . $_SERVER["REQUEST_URI"]));
        }

步骤三、修改graph.php第141行,添加当有HTTP认证时的$url_http。

        $url_http = dirname(dirname(‘http://‘ . $_SERVER[‘HTTP_HOST‘] . $_SERVER["REQUEST_URI"]));

修改为:

        if (!empty($zabbix_api_config[‘http_user‘]) && !empty($zabbix_api_config[‘http_password‘])) {
                $url_http = dirname(dirname(‘http://‘ . trim($zabbix_api_config[‘http_user‘]) . ‘:‘ . trim($zabbix_api_config[‘http_password‘]) . ‘@‘ . $_SERVER[‘HTTP_HOST‘] . $_SERVER["REQUEST_URI"]));
        } else {
                $url_http = dirname(dirname(‘http://‘ . $_SERVER[‘HTTP_HOST‘] . $_SERVER["REQUEST_URI"]));
        }

步骤四、修改big_graph.php第88行,添加当有HTTP认证时的$url_http。

        $url_http = dirname(dirname(‘http://‘ . $_SERVER[‘HTTP_HOST‘] . $_SERVER["REQUEST_URI"]));

修改为:

        if (!empty($zabbix_api_config[‘http_user‘]) && !empty($zabbix_api_config[‘http_password‘])) {
                $url_http = dirname(dirname(‘http://‘ . trim($zabbix_api_config[‘http_user‘]) . ‘:‘ . trim($zabbix_api_config[‘http_password‘]) . ‘@‘ . $_SERVER[‘HTTP_HOST‘] . $_SERVER["REQUEST_URI"]));
        } else {
                $url_http = dirname(dirname(‘http://‘ . $_SERVER[‘HTTP_HOST‘] . $_SERVER["REQUEST_URI"]));
        }

链接地址:https://github.com/spide4k/zatree/pull/2

zatree插件优化:支持HTTP Basic Authorization认证访问zabbix API

时间: 2024-11-04 21:57:02

zatree插件优化:支持HTTP Basic Authorization认证访问zabbix API的相关文章

HTTP Basic Authentication认证(Web API)

当下最流行的Web Api 接口认证方式 HTTP Basic Authentication: http://smalltalllong.iteye.com/blog/912046 什么是HTTP Basic Authentication?直接看http://en.wikipedia.org/wiki/Basic_authentication_scheme吧

HTTP Basic Authentication认证的各种语言 后台用的

访问需要HTTP Basic Authentication认证的资源的各种语言的实现 无聊想调用下嘀咕的api的时候,发现需要HTTP Basic Authentication,就看了下. 什么是HTTP Basic Authentication?直接看http://en.wikipedia.org/wiki/Basic_authentication_scheme吧. 在你访问一个需要HTTP Basic Authentication的URL的时候,如果你没有提供用户名和密码,服务器就会返回40

C#进阶系列——WebApi 身份认证解决方案:Basic基础认证

前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就是说,任何人只要知道了接口的url,都能够模拟http请求去访问我们的服务接口,从而去增删改查数据库,这后果想想都恐怖.经过一番折腾,总算是加上了接口的身份认证,在此记录下,也给需要做身份认证的园友们提供参考. WebApi系列文章 C#进阶系列--WebApi接口测试工具:WebApiTestClient C#进阶系列--WebApi 跨域问题解决方案:CORS C#进阶系列--WebApi身份认证解决方

访问需要HTTP Basic Authentication认证的资源的各种开发语言的实现

什么是HTTP Basic Authentication?直接看http://en.wikipedia.org/wiki/Basic_authentication_scheme吧. 在你访问一个需要HTTP Basic Authentication的URL的时候,如果你没有提供用户名和密码,服务器就会返回401,如果你直接在浏览器中打开,浏览器会提示你输入用户名和密码(google浏览器不会,bug?).你可以尝试点击这个url看看效果:http://api.minicloud.com.cn/s

ios开发使用Basic Auth 认证方式

我们app的开发通常有2种认证方式   一种是Basic Auth,一种是OAuth:现在普遍还是使用OAuth的多,而使用Basic Auth认证的少,正好呢我今天给大家介绍的就是使用的比较少的Badic Auth认证方式,这种认证方式开发和调试简单, 没有复杂的页面跳转逻辑和交互过程,更利于发起方控制.然而缺点就是安全性更低,不过也没事,我们可以使用https安全加密协议,这样才更安全. 我使用的是AFNetworking发送的网络请求,因此我们用Basic Auth认证方式就不能再使用AF

HTTP Basic Authorization

在HTTP中,Basic Authorization基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式. 在发送之前是以用户名追加一个冒号然后串接上口令,并将得出的结果字符串再用Base64算法编码.例如,提供的用户名是Aladdin.口令是open sesame,则拼接后的结果就是Aladdin:open sesame,然后再将其用Base64编码,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==.最终将Base64编码的字符

自制Javascript分页插件,支持AJAX加载和URL带参跳转两种初始化方式,可用于同一页面的多个分页和不同页面的调用

闲话部分 最近闲着实在无聊,就做了点小东西练练手,由于原来一直在用AspNetPager进行分页,而且也进行了深度的定制与原有系统整合的也不错,不过毕竟是用别人的,想着看自己能试着做出来不能,后台的分页插件已经有比较成熟的了,那就自己试着写一个前台分页吧. 话不多说,先上效果图: 优点与缺点 来说说优缺点吧,首先AspNetPager是后台分页控件,所以在向客户端回传HTML文档之前生成HTML阶段 就会把分页代码生成完毕,然后回传,而JS是前端代码,就是HTML文档在服务器组织完毕往客户端传送

zabbix安装zatree插件

目的 实现zabbix查看图形简单直观,减少不必要的操作 实施方案 插件的安装及使用(操作之前,最好先备份原目录,以备出错时,可以还原) 我的zabbix安装在/var/www/html目录下 #cd /var/www/html/zabbix #cp -rf zabbix ./zabbix.bak 1.下载文件 #yum install -y git #git clone https://github.com/spide4k/zatree.git zatree 2.复制相关文件 #cp -rf 

java 发送带Basic Auth认证的http post请求

构造http header private static final String URL = "url"; private static final String APP_KEY = "key"; private static final String SECRET_KEY = "secret"; /** * 构造Basic Auth认证头信息 * * @return */ private String getHeader() { String