介绍
Zabbix是一个很棒的监控工具,从服务器,虚拟机和其他类型的网络设备收集数据,以便您可以对趋势或问题进行分析。它有丰富的功能通知新出现的问题,但内置的数据分析和可视化工具并不容易使用。你可以将图表合并到仪表板中,但首先你需要创建它们,并且几乎没有简单的方法来创建显示实时数据的图表。
Grafana 是 Zabbix 仪表板的一个很好的替代方案. 它允许您基于各种监控系统的数据创建图表和仪表板,并专注于显示和分析这些数据。
在本教程中,您将安装Grafana并配置它以显示Zabbix的数据,并学习如何创建自己的自定义仪表板,以监控CPU和文件使用。
前提条件
要遵循本教程,您将需要:
- 两个 CentOS 7 服务器配置了 sudo 非 root 用户,其中 Zabbix 安装在一个服务器上,而 Zabbix 客户端安装在另一个服务器上。
步骤 1 - 安装 Graphana
在我们可以使用Grafana之前,我们需要安装它。我们将使用我们用于Zabbix服务器的相同服务器. 与您的非根用户登录您的Zabbix服务器:
1[environment local]
2ssh sammy@your_zabbix_server_ip_address
默认情况下,Grafana 通过包管理器不可用,所以我们会设置仓库配置文件。
1sudo vi /etc/yum.repos.d/grafana.repo
将下列配置数据插入到文件中:
1[label /etc/yum.repos.d/grafana.repo]
2[grafana]
3name=grafana
4baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
5repo_gpgcheck=1
6enabled=1
7gpgcheck=1
8gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
9sslverify=1
10sslcacert=/etc/pki/tls/certs/ca-bundle.crt
然后保存和退出文本编辑器,并运行以下命令来安装Grafana:
1sudo yum install grafana
在安装过程中,您将被要求导入 GPG 密钥. 确认您希望导入此密钥,以便继续安装。
一旦安装完成,请启动Grafana服务:
1sudo systemctl daemon-reload
2sudo systemctl start grafana-server
然后检查 Grafana 服务是否正常运行:
1sudo systemctl status grafana-server
您将看到以下状态:
1[secondary_label Output]
2● grafana-server.service - Starts and stops a single grafana instance on this system
3 Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled)
4 Active: active (running) since Mon 2016-11-07 06:18:27 UTC; 1 day 4h ago
5 Docs: http://docs.grafana.org
6 Main PID: 16639 (grafana-server)
7 ...
最后,允许服务在启动时间启动:
1sudo systemctl enable grafana-server
Grafana正在运行,所以让我们安装允许Grafana从Zabbix中提取数据的组件。
步骤 2 — 为 Grafana 安装 Zabbix 插件
您可以通过安装插件来扩展Grafana的功能,您可以浏览可用的插件(https://grafana.net/plugins)。
- 面板:可在仪表板上使用的新块,例如面板图或历史图
- 数据源:您可以从其他来源提取数据的新存储后端
- 应用程序:组合数据源和面板的复杂插件
我们将使用Zabbix app插件,其中包括一个Zabbix数据源,一个触发器面板,一个Zabbix服务器仪表板和一个模板来查看数据。
安装插件的最简单方法是使用与Grafana结合的CLI工具grafana-cli
。运行以下命令来安装Zabbix App插件:
1sudo grafana-cli plugins install alexanderzobnin-zabbix-app
您将看到以下输出,表明插件已安装:
1[secondary_label Output]
2✔ Installed alexanderzobnin-zabbix-app successfully
每当您添加或修改插件时,您必须重新启动grafana-server
,以便更改生效。
1sudo systemctl restart grafana-server
随着插件安装,您可以登录Grafana并配置它以与Zabbix交谈。
步骤 3 – 配置 Zabbix 插件
登录到 Grafana Web 界面,通过导航到地址 http://your_zabbix_server_ip_address:3000
。
<$>[注]
注:Grafana在端口 3000
上聆听接入连接. 如果您配置了防火墙,则需要打开此端口。
默认登录凭据是admin/admin
。一旦登录,您可以在 Profile页面上更改您的密码。当您登录时,您将被 Home仪表板欢迎。
点击用户界面左上角的 Grafana 标志来访问 Grafana 的主菜单,然后选择 ** Plugins.** 然后选择 Apps 选项卡,然后点击 Zabbix 应用程序并按下 Enable 按钮启用它。
现在您可以添加新的数据源. 再次选择 Grafana 标志并导航到 数据源. 然后单击 ** 添加数据源** 按钮. 您将看到数据源的配置页面:
配置数据源如下:
- 输入这个新数据源的名称在 Name字段
- 检查 Default选项,这样这个数据源将在你创建的新面板中预选中
- 从 Type下载列表中选择 Zabbix
- 填写在 Url字段中到 Zabbix API的完整路径,这将是
http://your_zabbix_server_ip_address/zabbix/api_jsonrpc.php
. - 填写在 Username和 Password字段中使用 Zabbix 的用户名和密码。 默认用户名是
admin
和默认密码是 `z
您可以将其他选项留在其默认值。
点击添加
按钮来测试并保存配置,您将看到一个成功消息,看起来如下:
如果您看不到此消息,请检查您的身份证并再次测试。
现在让我们看看与插件搭载的Zabbix仪表板。从屏幕顶部的下载列表中选择 Zabbix服务器仪表板。
这个仪表板非常有信息性,但您可以从头开始创建自己的自定义仪表板。
步骤 4 — 创建自定义 Zabbix 仪表板
让我们为 Zabbix 创建一个仪表板,以实时显示 CPU 使用和文件系统信息。
打开屏幕顶部的滚动列表,然后单击创建新
按钮,创建一个新的空白仪表板。
每个仪表板由包含块的行组成. 当您创建一个新的仪表板时,您会自动获得一行。 点击行左侧的绿色菜单以访问行的操作菜单。
首先,我们将创建一个显示我们 Zabbix 服务器的 CPU 使用率的图表,选择 ** 添加面板** 项,然后点击 ** 图表** 将新图表插入行。
您将收到包含多个选项卡的表单,选中了 Metrics 选项卡. 由于我们已将我们的 Zabbix 数据源设置为默认值,为您添加了一个新查询。
- 设置 ** 主机组 ** 到
Zabbix 服务器
- 设置 ** 主机** 到
Zabbix 服务器
- 设置 ** 应用程序** 到
CPU
- 设置 ** 项目** 到
处理器负载(每核平均 1 分钟)
你会看到你当前的处理器负载在图表上。
然后导航到 一般卡,将 标题字段设置为处理器负载
,并将 Span选项设置为6
。
现在你可以点击 ** 返回仪表板** 查看结果:
<$>[注] 注:如果您看不到任何数据,您可能会被缩放太远。点击界面右上方的时钟图标,并从选项列表中选择 *Last 1 hour。
要添加另一个图表. 要做到这一点,您可以重复前面的步骤或重复现有图表. 要重复现有图表,请选择面板标题,然后单击 重复。
- 将 Title 更改为
CPU 使用量
- 选择 Metrics 选项卡,然后将 Item 字段更改为
/CPU.*/
您可以为主机或计量名称使用常规表达式模式. 只需在前进切片(/
)中包装该模式。
您还可以显示汇总统计数据. 选择 ** 传奇** 选项卡,您将看到一些可选择的选项和值。
- 在 ** 选项下,点击 ** 作为表和 ** 向右**
- 在 ** 值**下,选择 Min, Max, Avg和 Current
现在点击 ** 返回仪表板** 查看结果,将看起来像这样:
接下来,添加一个 Singlestat面板以显示特定指标的单个值. 通过点击 添加行按钮创建一个新行,然后选择行的菜单,选择 添加面板,然后选择 Singlestat项目。
设置 Metrics 选项如下:
- 将 **Host 组设置为
Zabbix 服务器
- 将 **Host 设置为
Zabbix 服务器
- 将 **Application 设置为
Filesystems
- 将 Item设置为
Free disk space on / (percentage)
接下来,切换到 ** 一般** 卡,并将 ** 标题** 字段设置为 自由磁盘空间 /
。
然后切换到 ** 选项** 选项卡并配置这些选项:
- 啟用「顯示」選項為「測量」 **
- 設定「值」為「10,20」。這將會顯示這些值在測量器上
- 從「價值」落下列表中選擇「現在」選項。
现在的盖茨看起来像这样:
回到仪表板,然后按CTRL+S
来保存它。
现在让我们测试这个计量器如何响应实时事件. 为了做到这一点,我们将手动减少磁盘上的可用空间,看看仪表板显示了什么。
登录您的 Zabbix 服务器,如果您目前尚未登录:
1[environment local]
2ssh sammy@your_zabbix_server_ip_address
一旦登录,确定在文件系统上有多少可用空间. 您可以使用df
命令做到这一点:
1df -h
您将看到以下结果:
1[secondary_label Output]
2Filesystem Size Used Avail Use% Mounted on
3/dev/vda1 20G 1.5G 18G 8% /
4devtmpfs 236M 0 236M 0% /dev
5tmpfs 245M 0 245M 0% /dev/shm
6tmpfs 245M 8.3M 237M 4% /run
7tmpfs 245M 0 245M 0% /sys/fs/cgroup
8tmpfs 49M 0 49M 0% /run/user/0
在这种情况下,有 18 GB 的自由空间. 您的服务器上的自由空间量会有所不同. 使用fallocate
命令创建一个大临时文件,将根分区的自由空间缩小到 20% 以下:
1fallocate -l 15G /tmp/test.img
设置文件大小取决于您的服务器上空闲空间的数量。
然后给 Zabbix 几分钟时间更新其数据. 刷新仪表板,你会看到测量器改变了颜色,以反映自由空间问题:
最后,让我们在仪表板上显示活跃的 Zabbix 触发器. 创建一个新行,然后选择行菜单,选择 ** 添加面板**,然后选择 ** Zabbix 触发器** 项目。
您将看到一个活跃的触发器通知您服务器上缺乏自由空间。
选择 ** 返回仪表板**,然后用CTRL+S
保存仪表板。
您现在可以使用这个简单的仪表板快速查看您的服务器的当前状态。
不要忘了删除您创建的临时文件以释放磁盘空间. 在您的 Zabbix 服务器上,发出命令:
1rm /tmp/test.img
这将删除 test.img
文件. 几分钟后,仪表板将再次更新,以反映文件系统的更改。
结论
在本教程中,您了解了如何安装和配置Grafana,并创建了一个自定义仪表板,包含显示Zabbix数据的仪表板。您可以在桌面上或甚至大屏幕上显示这些仪表板,以便管理员能够看到您的IT基础设施的状态。仪表板上的每个仪表板可以显示来自不同的服务器的数据,您可以使用Grafana以许多有用的方式过滤数据。很难在一个教程中描述Grafana的所有功能,所以探索,实验和构建自己的漂亮仪表板。