之前提到了 Grafana 的安装部分,本文将对数据源进行探讨。
本文将演示三种数据源,分别是 Zabbix,Prometheus,夜莺。
Zabbix 数据源接入需要安装第三方插件,名称为 alexanderzobnin-zabbix-app,这个插件可以在 Grafana 官网入口找到。
1、命令行方式(通过 grafana-cli)
grafana-cli plugins install alexanderzobnin-zabbix-app
systemctl restart grafana-server
2、直接下载安装包,版本号以 github 上为主,截止发文日期,版本号为4.2.4,拷贝到 /var/lib/grafana/plugins
,目录下并解压,然后重启 grafana 服务即可,如果没有 unzip 功能,可以在线安装。
yum -y install unzip #可选
wget https://github.com/alexanderzobnin/grafana-zabbix/releases/download/v4.2.4/alexanderzobnin-zabbix-app-4.2.4.zip
mv alexanderzobnin-zabbix-app-4.2.4.zip /var/lib/grafana/plugins
unzip alexanderzobnin-zabbix-app-4.2.4.zip
systemctl restart grafana-server
3、grafana 首页直接安装(最新版本才有),在插件页搜索 zabbix,都选择 all,点击进去可以在线安装,如下图。
入口路径为:Configuration –> Plugins 在搜索栏输入 zabbix
入口路径为:Configuration –> Data sources Zabbix 数据源界面需要注意的是 URL 部分,前端的地址 + api_jsonrcp.php,前端地址白话来说就是在浏览器访问 Zabbix 的地址。本文 zabbix 就是纯 IP 访问。Zabbix API details 部分需要填写的字段为 Username 和 Password ,该用户需要有权限访问相关资源。最后点击 Save & test。
Promethues 对接相对简单,默认情况下自带 Prometheus 源,在添加源首页即可看到 Prometheus 。
点击进入 Prometheus 后,需要填写的和 Zabbix 稍微有点区别,当然我这里指的是默认情况下,需要填写的部分为 URL,默认为http://prometheus的ip:9090,既可以点击测试了。
选择 Prometheus 源,和 zabbix 不一样的是 Prometheus 的监控项为 PromQL 语句,如果用习惯了 Zabbix 的朋友,可能会有点不太习惯,但是这种方式做聚合计算非常方便,这里以 node_memory_MemAvailable_bytes{job="local"}
为例(查看可用内存大小,单位已经设置为字节)。
这里仅指 NTVM 架构,也就是 Nightingale+Telegraf+VictorMetrics,而 NTP(Nightingale+Telegraf+Prometheus) 架构沿用接入 Prometheus 部分即可
由于 VictorMetrics 完全兼容 Prometheus 语法,所以对接 grafana 同样采用 Prometheus 源即可。
选择 Prometheus 源后,需要填写的 URL 部分的端口号需要调整,不再是 9090,而是 8428,当然具体看自身环境判断(本文为 8428),在夜莺的 server.conf 配置里查看。(在 Reader 部分),最后点击测试。
和 Prometheus 一样,监控项也是通过 PromQL 语句实现,这里以 mem_available{ident="kasar03.novalocal"}
为例(查看可用内存大小,单位已经设置为字节),由于我采用的是 NTVM 架构,而且 Prometheus 配置文件配置了远程写,所以这里同样也可以查看 Prometheus 的指标。
三种数据源到这里已经接入完毕,整体来看 Zabbix 数据源出图更加便捷,只不过需要安装额外插件,而且在这过程会遇到一些未知问题,而夜莺和 Prometheus 的源接入更加简单,但监控项的语法相对比较麻烦,鱼和熊掌不可兼得。