前几天部署好了 Zabbix 来监控我的多台服务器,无奈 Zabbix 实在太专业了,监控的数据太多了,我需要个足够简洁且最好能够公开访问的监控面板。搞了一整天,发现网络上的教程大部分都有些问题,可能他们用的是旧版 Grafana 的原因,导致我踩了不少坑,于是就有了这篇文章。
Grafana 是一款用 Go 语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。Grafana 支持许多不同的数据源,每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。我们可以通过安装插件的方式使他支持更多数据源,因为要从 Zabbix 取数据,所以需要安装 Zabbix plugin for Grafana 这个插件。
环境
这是我的服务器环境:CentOS 7、宝塔面板 LNMP、Zabbix 5.0.1
注意:如果要给 Grafana 绑定域名的话,请安装 Nginx 而不是 Apache,因为需要用到反向代理。
开始部署
1. 下载并安装软件包打开 Grafana官网 根据提示安装 Grafana,我是 Centos 系统所以我用的是下面的命令:wget https://dl.grafana.com/oss/release/grafana-7.0.3-1.x86_64.rpm
sudo yum install grafana-7.0.3-1.x86_64.rpm
提示:如果下载很慢,可以本地挂代理下载后通过 FTP 上传到服务器安装完成后,开启 Grafana 并设置开机自启systemctl start grafana-server.service
systemctl enable grafana-server.service
2. 安装数据源插件因为是从 Zabbix 获取数据,所以需要安装 Zabbix plugin for Grafana 插件。使用下面的命令即可安装成功:grafana-cli plugins install alexanderzobnin-zabbix-app如果你是腾讯云服务器,还可以安装 Tencent Cloud Monitor App Plugin for Grafana 这个插件,可以从腾讯云的监控面板取数据,我是腾讯云所以我安装了这个插件。
插件安装完成后重启下 Grafana 服务systemctl restart grafana-server.service
3. Grafana 绑定域名访问在宝塔面板后台新建一个站点,开启反向代理,如下图所示:
绑定完成后访问看看吧,应该直接到了 Grafana 登录界面,初始密码都是 admin,登陆后会让你改一次密码。如果想直接通过 IP 访问,只需要防火墙放行 3000 端口,通过 http://your_ip:3000 访问即可
4. 激活并配置的 Zabbix 插件
登录进 Grafana ,依次打开 Configuration - Data Sources - Zabbix - Enbale。配置数据源选项,要注意 URL 部分,如果你的 Zabbix 访问路径为http://127.0.0.1,那么 URL 就填写 http://127.0.0.1/api_jsonrpc.php,Zabbix API details 部分就填写 Zabbix 的账号密码。
添加 Zabbix 数据源基础仪表步骤:依次打开 Configuration - Data Sources - Zabbix - Dashboards - Import
5. Grafana 自定义出图
其他问题
1. 如何导入别人的模板
打开别人的面板,复制他的 View JSON,新建一个面板并粘贴导入,修改成自己的监控项即可,单独的监控表同理。
2. 如何匿名(公开)访问 Grafana 的面板
修改 Grafana 的 /usr/share/grafana/conf/defaults.ini 文件,将 enable anonymous access 改为 true,重启 Grafana 服务即可。
3. 如何在其他页面嵌入你的监控图表,解决跨域问题需要对 Grafana 的配置文件进行修改,才可以使图表可以通过 iframe 在其他页面中加载。修改 Grafana 的 /usr/share/grafana/conf/defaults.ini 文件,将 allow_embedding 改为 true,重启 Grafana 服务。
在你想要分享的图表上点分享按钮,就可以得到 iframe 代码。