如何在CentOS7上安装和配置Grafana以从Zabbix绘制漂亮的图形
介绍
Zabbix 是一个很棒的监控工具,它从服务器、虚拟机和其他类型的网络设备中收集数据,以便您分析它的趋势或问题。 它具有关于新出现问题的功能丰富的通知,但用于数据分析和可视化的内置工具并不易于使用。 您可以将图表组合到仪表板中,但首先您需要创建它们,并且实际上没有简单的方法来创建显示实时数据的图表。 此外,没有办法将来自不同主机的数据收集到单个图表上。 虽然每个新版本的情况都在好转,但远非理想。
Grafana 是 Zabbix 仪表板的一个很好的替代品。 它允许您根据来自各种监控系统的数据创建图表和仪表板,并且它专门用于显示和分析这些数据。 它重量轻,易于安装,而且看起来很漂亮。
在本教程中,您将安装 Grafana 并将其配置为显示来自 Zabbix 的数据,并且您将学习如何编写自己的自定义仪表板来监控 CPU 和文件使用情况。
先决条件
要遵循本教程,您将需要:
- 两台 CentOS 7 服务器配置 sudo 非 root 用户,一台服务器安装 Zabbix,另一台服务器安装 Zabbix 客户端。 按照教程 如何安装和配置 Zabbix 以安全地监控 CentOS 7 上的远程服务器及其配置这些服务器的先决条件。
第 1 步 — 安装 Grafana
在我们可以使用 Grafana 之前,我们需要安装它。 我们将使用与 Zabbix 服务器相同的服务器。 使用非 root 用户登录到您的 Zabbix 服务器:
ssh sammy@your_zabbix_server_ip_address
Grafana 默认无法通过包管理器使用,因此我们将设置存储库配置文件。 首先,为 Grafana 创建一个新的存储库文件:
sudo vi /etc/yum.repos.d/grafana.repo
将以下配置数据粘贴到文件中:
/etc/yum.repos.d/grafana.repo
[grafana] name=grafana baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
然后保存并退出文本编辑器并运行以下命令安装 Grafana:
sudo yum install grafana
在安装过程中,您将被要求导入 GPG 密钥。 确认您希望导入此密钥,以便可以继续安装。
安装完成后,启动 Grafana 服务:
sudo systemctl daemon-reload sudo systemctl start grafana-server
然后检查 Grafana 服务是否正常运行:
sudo systemctl status grafana-server
您将看到以下状态:
Output● grafana-server.service - Starts and stops a single grafana instance on this system Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2016-11-07 06:18:27 UTC; 1 day 4h ago Docs: http://docs.grafana.org Main PID: 16639 (grafana-server) ...
最后,使服务在启动时启动:
sudo systemctl enable grafana-server
Grafana 正在运行,所以让我们安装让 Grafana 从 Zabbix 提取数据的组件。
第 2 步 — 为 Grafana 安装 Zabbix 插件
您可以通过安装插件来扩展 Grafana 的功能。 你可以在这里探索可用的插件。 插件分为三种类型:
- Panels:可以在仪表板上使用的新块,例如饼图或直方图。
- 数据源:为您的时间序列数据提供新的存储后端,因此您可以从其他源中提取数据。
- Apps:将数据源和面板捆绑在一个包中的复杂插件。
我们将使用 Zabbix app 插件,其中包括一个 Zabbix 数据源、一个触发器面板、一个 Zabbix 服务器仪表板和一个用于查看数据的模板。
安装插件最简单的方法是使用与 Grafana 捆绑在一起的 CLI 工具 grafana-cli
。 运行以下命令安装 Zabbix App 插件:
sudo grafana-cli plugins install alexanderzobnin-zabbix-app
您将看到以下输出,表明插件已安装:
Output✔ Installed alexanderzobnin-zabbix-app successfully
每当您添加或修改插件时,您必须重新启动 grafana-server
以使更改生效。
sudo systemctl restart grafana-server
安装插件后,您可以登录 Grafana 并将其配置为与 Zabbix 对话。
第 3 步 — 配置 Zabbix 插件
通过导航到地址 http://your_zabbix_server_ip_address:3000
登录到 Grafana Web 界面。
注意:Grafana 监听端口 3000
上的传入连接。 如果您配置了防火墙,则需要打开此端口。 如果遇到问题,请查看 本教程 以了解 CentOS 中的防火墙。
默认登录凭据为 admin/admin
。 登录后,您可以在个人资料页面更改密码。 当您登录时,您会看到 Home 仪表板。
通过单击用户界面左上角的 Grafana 徽标访问 Grafana 的主菜单。 然后选择 Plugins. 然后选择 Apps 选项卡。 然后单击 Zabbix 应用程序并通过按 Enable 按钮启用它。
现在您可以添加一个新的数据源。 再次选择 Grafana 徽标并导航到 Data sources. 然后单击 Add data source 按钮。 您将看到数据源的配置页面:
配置数据源如下:
- 在 Name 字段中输入此新数据源的名称。
- 选中 Default 选项,以便在您创建的新面板中预先选择此数据源。
- 从 Type 下拉列表中选择 Zabbix。
- 在 Url 字段中填写 Zabbix API 的完整路径,即
http://your_zabbix_server_ip_address/zabbix/api_jsonrpc.php
。 - 使用 Zabbix 的用户名和密码填写 Username 和 Password 字段。 默认用户名是
admin
,默认密码是zabbix
。 - 启用 Trends 选项; 它会在显示较长时间段时提高 Grafana 的性能。
您可以将其他选项保留为默认值。
点击Add按钮测试并保存配置。 您将看到如下所示的成功消息:
如果您没有看到此消息,请检查您的凭据并再次测试。
现在让我们看一下插件附带的 Zabbix 仪表板。 从屏幕顶部的下拉列表中选择 Zabbix server Dashboard。 当您选择它时,仪表板会显示有关您的 Zabbix 服务器的信息:
此仪表板信息量很大,但您可以从头开始创建自己的自定义仪表板。
第 4 步 — 创建自定义 Zabbix 仪表板
让我们为 Zabbix 创建一个仪表板,实时显示 CPU 使用率和文件系统信息。
打开屏幕顶部的下拉列表,然后单击新建按钮。 将创建一个新的空仪表板。
每个仪表板由包含块的行组成。 创建新仪表板时,您会自动获得一行。 单击该行左侧的绿色菜单以访问该行的操作菜单。 您可以在此处添加新面板、设置行高、移动、折叠或删除它。
首先,我们将创建一个图表来显示我们的 Zabbix 服务器的 CPU 使用率。 选择 Add Panel 项,然后单击 Graph 将新图形插入行中。
您将看到一个带有多个选项卡的表单,其中选择了 Metrics 选项卡。 由于我们已将 Zabbix 数据源设置为默认值,因此为您添加了一个新查询。 您只需指定以下选项:
- 将主机组设置为
Zabbix servers
。 - 将 Host 设置为
Zabbix server
。 - 将 Application 设置为
CPU
。 - 将 Item 设置为
Processor load (1 min average per core)
。
您将在图表上看到当前的处理器负载。
然后导航到 General 选项卡并将 Title 字段设置为 Processor load
并将 Span 选项设置为 6
。 一行最多可以包含 12 个块,因此将此值设置为 6 会使面板占据屏幕的一半。
现在您可以点击 Back to dashboard 来查看结果:
注意:如果你没有看到任何数据,你可能被缩小得太远了。 点击界面右上角的时钟图标,从选项列表中选择*Last 1 hour。
让我们添加另一个图表。 为此,您可以重复前面的步骤或复制现有图表。 要复制现有图形,请选择面板标题并单击 Duplicate。 然后选择新图形的标题并选择 Edit 选项。 然后应用以下设置:
- 将 Title 更改为
CPU usage
。 - 选择 Metrics 选项卡并将 Item 字段更改为
/CPU.*/
。
您可以对主机或指标名称使用正则表达式模式。 只需确保将模式包裹在正斜杠中(/
)。
您还可以显示摘要统计信息。 选择 Legend 选项卡,您将看到一些可以选择的选项和值。
- 在 Options 下,勾选 As table 和 To The right。
- 在 Values 下,选择 Min、Max、Avg 和 Current。
现在点击 Back to dashboard 查看结果,如下所示:
接下来,添加 Singlestat 面板以显示特定指标的单个值。 通过单击添加行按钮创建新行,然后选择行的菜单,选择添加面板,然后选择Singlestat项。
设置 Metrics 选项如下:
- 将主机组设置为
Zabbix servers
。 - 将 Host 设置为
Zabbix server
。 - 将 Application 设置为
Filesystems
。 - 将 Item 设置为
Free disk space on / (percentage)
。
接下来,切换到 General 选项卡并将 Title 字段设置为 Free disk space on /
。
然后切换到 Options 选项卡并配置这些选项:
- 为 Gauge 启用
Show
选项。 - 将 阈值 设置为
10,20
。 这将在仪表上显示这些阈值。 - 从 Value 下拉列表中选择
current
选项。
仪表现在看起来像这样:
返回仪表板并按CTRL+S
保存。
现在让我们测试一下这个仪表如何响应实时事件。 为此,我们将手动减少磁盘上的可用空间并查看仪表板显示的内容。
如果您当前未登录,请登录到您的 Zabbix 服务器:
ssh sammy@your_zabbix_server_ip_address
登录后,确定文件系统上有多少可用空间。 您可以使用 df
命令执行此操作:
df -h
您将看到以下输出:
OutputFilesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.5G 18G 8% / devtmpfs 236M 0 236M 0% /dev tmpfs 245M 0 245M 0% /dev/shm tmpfs 245M 8.3M 237M 4% /run tmpfs 245M 0 245M 0% /sys/fs/cgroup tmpfs 49M 0 49M 0% /run/user/0
在这种情况下,有 18 GB 的可用空间。 服务器上的可用空间量会有所不同。 通过使用 fallocate
命令创建一个大的临时文件,将根分区上的可用空间减少到 20% 阈值以下:
fallocate -l 15G /tmp/test.img
根据服务器上的可用空间量设置文件大小。
然后给 Zabbix 几分钟来更新它的数据。 刷新仪表板,您会看到仪表更改了颜色以反映可用空间问题:
最后,让我们在仪表板上显示活动的 Zabbix 触发器。 创建一个新行然后选择行的菜单,选择添加面板,然后选择Zabbix Triggers项。
您将看到活动触发器通知您服务器上的可用空间不足。
选择 Back to dashboard 并使用 CTRL+S
保存仪表板。 您的仪表板现在将如下所示:
您现在可以使用这个简单的仪表板快速查看服务器的当前状态。
不要忘记删除您创建的临时文件以释放磁盘空间。 在您的 Zabbix 服务器上,发出命令:
rm /tmp/test.img
这将删除 test.img
文件。 几分钟后,仪表板将再次更新以反映文件系统上的更改。
结论
在本教程中,您学习了如何安装和配置 Grafana,并创建了一个自定义仪表板,其中包含显示来自 Zabbix 的数据的面板。 您可以在桌面甚至大屏幕上显示这些仪表板,以便管理员查看您的 IT 基础架构的状态。 仪表板上的每个面板都可以显示来自不同服务器的数据,您可以使用 Grafana 以多种有用的方式过滤数据。 很难在一个教程中描述 Grafana 的所有功能,因此请探索、试验和构建您自己的漂亮仪表板。