深入浅出Zabbix 3.0 -- 第十六章 第三方应用扩展
第十六章 第三方应用扩展
16.1 graphtrees
当Zabbix中监控设备的数量比较多时,查看监控图形是一个比较痛苦的事情。Zabbix 2.x版本中有个插件叫Zatree(https://github.com/spide4k/zatree),主要功能是提供Host group的树形展示和在item中指定关键字查询及数据排序。Zabbix 3.0发布后,Zatree一直没有更新。好消息是OneOaaS公司开源了graphtrees,项目托管在github上,目前支持Zabbix 3.0.1、3.0.2和3.0.3版本,你可以访问https://github.com/OneOaaS/graphtrees获得最新的项目信息。
近日完成《深入浅出 zabbix 4.0》****的录制并正式发布,该教程基于 zabbix 4.2 ,对Zabbix进行全面讲解。欢迎大家围观。课程链接:https://edu.****.net/course/detail/24870
Graphtrees的主要功能有:
-
集中展示所有分组设备
-
集中展示一个分组图像
-
集中展示一个设备图像
-
展示设备下的Application
-
展示每个Application下的图像
-
展示每个Application下的日志
-
对原生无图的监控项进行绘图
-
安装及使用
步骤如下:
1、 备份现有Zabbix web 页面程序,假设安装目录为 /usr/share/zabbix。
# cd /usr/share/
# tar -czf zabbix_web.tar.gz zabbix
# cd zabbix
2、 收集补丁文件。
# wget https://raw.githubusercontent.com/OneOaaS/graphtrees/master/graphtree3-0-1.patch
3、 安装patch工具并执行补丁命令。
# yum install -y patch
# patch -Np0 <graphtree3-0-1.patch
patching file ./README.md
patching file ./biggraph.php
patching file ./graphtree.left.php
The next patch would delete the file graphtree/graphtree.patch,
which does not exist! Skipping patch.
1 out of 1 hunk ignored
patching file ./graphtree.right.php
patching file ./graphtrees.php
patching file ./hosts.php
patching file ./img/icon-sprite.svg
patching file ./img/oneoaas-wechat.jpg
patching file ./include/func.inc.php
patching file ./include/menu.inc.php
patching file ./include/page_header.php
patching file ./js/vendors/highlight.min.js
patching file ./js/vendors/jquery.ztree.core-3.5.js
patching file ./jsLoader.php
patching file ./locale/lt/LC_MESSAGES/frontend.po
patching file ./locale/lv/LC_MESSAGES/frontend.po
patching file ./locale/pt_BR/LC_MESSAGES/frontend.po
patching file ./styles/ztree/line_conn.gif
patching file ./styles/ztree/loading.gif
patching file ./styles/ztree/zTreeStandard.gif
patching file ./styles/ztree/zTreeStandard.png
patching file ./styles/ztree/zTreeStyle.css
从上面的输出信息可以看到除了graphtree.patch这个补丁文件报错外,其他文件都没有问题。接下来在Zabbix 前端页面的Monitoring菜单会有一个Graphtrees子菜单,如下图16-1所示。
图 16-1
点击Graphtrees菜单,我们会看到屏幕左侧是树形组织的host group --> host --> application,每个host group名称后面的括号内会显示当前属于这个主机组的主机数量,每个host名称后面的括号内显示当前主机中的application数量。当你点击host group或host时,在屏幕右侧默认显示系统配置的图形。当点击host中的application时会显示3中数据,包括系统默认有图形的、系统默认没有图形的和日志类的数据。效果图如下16-2所示。
图 16-2
16.2 grafana
Grafana 提供强大而优雅的方式来创建、 浏览和共享仪表板和数据,常用于可视化互联网基础设施的时序数据和应用分析的开源程序。在仪表板中可以显示来自不同数据源的数据,通过可插拔的面板和数据源,允许轻松的扩展和丰富的面板展示,包括全功能的图形面板和丰富的可视化的选项。内建支持很多流行的时序数据源,包括Graphite、Elasticsearch、Prometheus、InfluxDB、OpenTSDB和KairosDB,也可以使用插件功能添加你自己的应用。通过访问grafana官网http://grafana.org/了解更多信息,也可以访问grafana演示网站http://play.grafana.org/ 浏览grafana更多的特性。显示界面如下图16-3所示。
图 16-3
Grafana-zabbix 是 AlexanderZobnin 在github上开源的grafana Zabbix插件,可以展示Zabbix中items、triggers等数据,
主要特性有:
-
灵活的监控指标编辑器(支持Regex)
-
支持模板变量
-
支持注释(在图形上显示事件)
-
触发器面板
-
客户端监控指标处理(Avg、Median、Min、Max、Multiply、Summarize)
你可以访问http://play.grafana-zabbix.org ,这是一个Grafana-zabbix的功能演示网站,通过仪表板的例子体验grafana提供的丰富的功能特性。
16.2.1 安装grafana-zabbix
安装grafana的方法很多,具体可参考http://docs.grafana.org/installation/。
在这里我们采用yum Repository安装,这种方式可以自动解决依赖关系,安装步骤如下:
首先通过脚本生成grafana.repo文件。
# curl -shttps://packagecloud.io/install/repositories/grafana/stable/script.rpm.sh |bash
# more/etc/yum.repos.d/grafana_stable.repo
[grafana_stable]
name=grafana_stable
baseurl=https://packagecloud.io/grafana/stable/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/grafana/stable/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[grafana_stable-source]
name=grafana_stable-source
baseurl=https://packagecloud.io/grafana/stable/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/grafana/stable/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
查看grafana程序包并安装。
# yum list | grep grafana
grafana.x86_64 3.1.1-1470047149 grafana_stable pcp-webapp-grafana.noarch 3.10.6-2.el7 base
# yum install grafana
启动grafana服务
# systemctl startgrafana-server
# systemctl status grafana-server
允许系统引导时自动启动grafana服务
# systemctl enable grafana-server
安装grafana-zabbix插件也有多种方法,在这里我们采用grafana-cli工具进行安装,其他的方法请参考文档http://docs.grafana-zabbix.org/installation/。
# grafana-cli pluginslist-remote
id: abhisant-druid-datasource version: 0.0.2
id: alexanderzobnin-zabbix-app version: 3.0.0
id: bosun-app version: 0.0.25
id: bosun-datasource version: 0.0.5
id: crate-datasource version: 0.0.1
id: fastweb-openfalcon-datasource version: 1.0.0
id: fetzerch-sunandmoon-datasource version: 0.1.1
id: grafana-clock-panel version: 0.0.8
id: grafana-example-app version: 1.0.1
id: grafana-influxdb-08-datasource version: 1.0.2
id: grafana-kairosdb-datasource version: 1.0.1
id: grafana-piechart-panel version: 1.1.1
id: grafana-simple-json-datasource version: 1.1.2
id: grafana-worldmap-panel version: 0.0.13
id: kentik-app version: 1.0.4
id: mtanda-heatmap-epoch-panel version: 0.1.1
id: mtanda-histogram-panel version: 0.1.1
id: ns1-app version: 0.0.5
id: opennms-datasource version: 2.0.1
id: percona-percona-app version: 1.0.0
id: praj-ams-datasource version: 1.0.1
id: raintank-snap-app version: 0.0.3
id: raintank-worldping-app version: 1.0.10
id: sileht-gnocchi-datasource version: 1.0.3
id: stagemonitor-elasticsearch-app version: 0.26.0
id: udoprog-heroic-datasource version: 0.1.0
id: voxter-app version: 0.0.1
# grafana-cli pluginsinstall alexanderzobnin-zabbix-app
installing alexanderzobnin-zabbix-app @ 3.0.0
from url: https://grafana.net/api/plugins/alexanderzobnin-zabbix-app/versions/3.0.0/download
into: /var/lib/grafana/plugins
Installedalexanderzobnin-zabbix-app successfully
Restart grafana after installing plugins . <servicegrafana-server restart>
# systemctl restartgrafana-serve
现在,grafana和zabbix插件已经安装完成,grafana相关的环境变量配置文件位于 /etc/sysconfig/grafana-server文件中,例如日志文件、数据文件保存的位置等都可以在这个文件中。日志文件默认保存在/var/log/grafana目录中,默认数据保存在/var/lib/grafana目录的sqlite3数据库grafana.db中,默认配置保存在 /etc/grafana/grafana.ini中。
打开浏览器并在地址栏中输入http://<server ip >:3000,就会出现Grafana 登录页面。如下图16-4所示。
图 16-4
在grafana登录页面输入用户名 admin,密码admin,点击Log in按钮登录进入主页面,如下图16-5所示。
图 16-5
在主页面的左上角点击grafana logo会弹出主菜单,包括当前用户、Dashboards、Data sources、Plugins和Admin。在当前用户下可以完成用户相关的配置,Dashboards下可以添加(New)或导入(Import)仪表板;也可以创建播放列表(Playlists)、快照(snapshots),或返回主页面(home);Data Sources中可以添加、管理数据源;Plugins可以管理grafana的Panels、Data sources和Apps插件;Admin中可以管理用户、组织,可以浏览grafana服务器的设置和运行状态,也可以改变前端页面显示的风格。grafana菜单页面如下图16-6所示。
图 16-6
点击Home会弹出Dashboard列表页面,通过页面中的搜索框可以搜索仪表板,这个在有很多仪表板时很方便查找。可以通过页面左下角的Create New按钮创建新的仪表板,或用Import按钮导入仪表板。如下图16-7所示。
图 16-7
点击齿轮图标可以对当前仪表板进行管理,很多工作都在这里完成。如下图16-8所示。
图 16-8
16.2.2 配置grafana
首先启用Zabbix插件,在主菜单点击Plugins,在Apps标签中点击Zabbix插件进入插件管理界面,在config标签下点击Enable按钮启用Zabbix插件。如下图16-9所示。
图 16-9
在主菜单点击Data Sources ,在数据源管理页面点击 Adddata source按钮进入添加数据源的配置页面,其中各参数含义及配置如下:
Name:数据源的名称,例如Zabbix。
Type:数据源的类型,在该下拉框中选择Zabbix。
Url:Zabbix API入口连接,例如http://192.168.10.102/zabbix/api_jsonrpc.php。
Access:访问方式。Direct为从浏览器直接访问,Proxy为通过grafana后端访问。
Http Auth:如果你使用Proxy方式,需要配置Basic Auth和WithCredentials。
Username:可以访问Zabbix API的用户,例如Admin。
Password:密码,例如 zabbix。
Trends:建议使用Trends,可以提供grafana的新能。
建议为grafana-zabbix插件设置专用的用户,该用户对Zabbix数据库和前端页面都有读权限。
页面配置如下图16-10所示。
图 16-10
点击Add按钮添加后,会显示添加成功,如下图16-11所示。
图 16-11
16.2.3 添加图形
点击仪表板右下角的ADD ROW按钮添加新行,在行的最左边绿色的滑动按钮,在弹出菜单中点击Add Panel,如下图16-12所示。
图 16-12
在子菜单中点击 Graph按钮,会出现一个新图形,点击图形下方的General标签,可以设置图形名称等参数。点击Metrics标签, Panel datasource选择为Zabbix后,就可以添加监控项了。如果要添加多个监控项,可以点击Add query按钮。如下图16-13所示。
图 16-13
当所有设置完成后,点击磁盘图标保存。如下图16-14所示。
图 16-14
对已有图形或其他Panel可以通过点击上方的名称,在弹出菜单中可以选择Edit进行编辑,点击Duplicate复制Panel,点击-(减号)或 +(加号)缩小/增大宽度,也可以点击垃圾桶图标删除当前的Panel。如下图16-15所示。
图 16-15
16.2.4 添加模板变量
打开需要设置模板变量的仪表板,点击齿轮图标在弹出菜单中选择Templating,如 下图16-16所示。
图 16-16
点击New按钮创建新的变量,如下图16-17所示。
图 16-17
主要配置参数有:
-
Name:变量名称,例如group。
-
Type:收集数据的方式,大部分情况下都会使用Query。
-
Label:在仪表板中显示的名称,例如Group。
-
Data source:数据源,例如Zabbix。
-
Refresh:数据刷新的方式。
-
Quiry:匹配规则。
-
Regex:正在表达式。
一般我们在仪表板中创建三个变量就可以实现选择host group、host及item,如下图16-18所示。
图 16-18