Zabbix + Grafana打造炫酷的服务器监控界面

前几天,我成功部署了 Zabbix 来监控我的多台服务器。然而,由于 Zabbix 的专业性实在太强,监控数据繁杂,我迫切需要一个足够简洁且能够公开访问的监控面板。经过一天的探索,我发现网上的教程大多存在一些问题,可能是因为许多人使用的是旧版的 Grafana,这让我踩了不少坑。因此,我决定写下这篇文章,与大家分享我的经验。

Grafana 是一款用 Go 语言开发的开源数据可视化工具,能够进行数据监控和统计,并具备告警功能。Grafana 支持多种数据源,每个数据源都有其特定的查询编辑器,这些编辑器根据特定数据源的需求定制。我们也可以通过安装插件的方式扩展支持更多数据源。由于需要从 Zabbix 获取数据,因此需要安装 Zabbix plugin for Grafana 插件。

环境

CentOS 7、宝塔面板 LNMP、Zabbix 5.0 LTS

部署

1. 下载并安装软件包

  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
  1. 安装完成后,开启 Grafana 并设置开机自启

    systemctl start grafana-server.service
    systemctl enable grafana-server.service

2. 安装数据源插件

  1. 因为是从 Zabbix 获取数据,所以需要安装 Zabbix plugin for Grafana 插件。使用下面的命令即可安装成功:

    grafana-cli plugins install alexanderzobnin-zabbix-app
  1. 如果你是腾讯云服务器,还可以安装 Tencent Cloud Monitor App Plugin for Grafana 这个插件,可以从腾讯云的监控面板取数据。
  2. 插件安装完成后重启下 Grafana 服务

    systemctl restart grafana-server.service

3. Grafana 绑定域名访问

  1. 在宝塔面板后台新建一个站点,开启反向代理,如下图所示:

    绑定完成后访问看看吧,应该直接到了 Grafana 登录界面,初始密码都是 admin,登陆后会让你改一次密码。

  2. 如果想直接通过 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,新建一个面板并粘贴导入,修改成自己的监控项即可,单独的监控表同理。

获取更多模板:https://grafana.com/grafana/dashboards/

2. 如何匿名(公开)访问 Grafana 的面板

修改 Grafana 的 /usr/share/grafana/conf/defaults.ini 文件,将 enable anonymous access 改为 true,重启 Grafana 服务即可。

3. 如何在其他页面嵌入你的监控图表,解决跨域问题

  1. 需要对 Grafana 的配置文件进行修改,才可以使图表可以通过 iframe 在其他页面中加载。修改 Grafana 的 /usr/share/grafana/conf/defaults.ini 文件,将 allow_embedding 改为 true,重启 Grafana 服务。

  2. 在你想要分享的图表上点分享按钮,就可以得到 iframe 代码。

展示

评论区
头像
    头像
    伴伊城
      

    反向代理这一步说的太简单了(也可能是我不太熟悉的原因),做了n次仅莫名其妙的成功一次。
    最后还是决定通过Linux防火墙进行端口转发,完美实现,宝塔默认自带安全界面的没法设置端口转发,应用商店下载安装另一个可视化防火墙管理工具之后就可以添加端口转发规则(熟悉的其实可以直接命令行手动写端口转发规则),可以实现将任意非占用端口转发到3000从而正常访问grafana界面