介绍
Zabbix 是一款出色的监控工具, 可从服务器, 虚拟机和其他类型的网络设备收集数据, 因此您可以分析趋势或问题. 它针对新出现的问题提供了功能丰富的通知, 但内置的数据分析和可视化工具并不易于使用. 您可以将图表组合到仪表板中, 但首先需要创建它们, 并且实际上不存在创建显示实时数据的图形的简单方法. 此外, 无法将来自不同主机的数据收集到单个图表上. 虽然每个新版本的情况都在好转, 但它远非理想.
Grafana 是 Zabbix 仪表板的一个很好的替代品. 它允许您基于来自各种监控系统的数据创建图形和仪表板, 并专门用于显示和分析此数据. 它轻巧, 易于安装, 并且看起来很漂亮.
在本教程中, 您将安装 Grafana 并将其配置为显示来自 Zabbix 的数据, 您将学习如何编写自己的自定义仪表板来监视 CPU 和文件使用情况.
准备
要学习本教程, 您需要:
两个有能使用 sudo 权限的非 root 用户的 CentOS 7 服务器, Zabbix 安装在一台服务器上, Zabbix 客户端安装在另一台服务器上.
没有服务器的同学可以在这里购买 https://cloud.tencent.com/product/cvm , 不过我个人更推荐您使用免费的腾讯云开发者实验室 https://cloud.tencent.com/developer/labs 进行试验, 学会安装后再购买服务器 https://cloud.tencent.com/product/cvm .
第 1 步 - 安装 Grafana
在我们使用 Grafana 之前, 我们需要安装它. 我们将使用与 Zabbix 服务器相同的服务器. 使用非 root 用户登录 Zabbix 服务器:
SSH sammy@your_zabbix_server_ip_address
默认情况下, Grafana 不能通过包管理器使用, 因此我们将设置存储库配置文件. 首先, 为 Grafana 创建一个新的存储库文件:
sudo vi /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
您将看到以下状态:
● 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 的功能. 您可以在此处 https://grafana.NET/plugins 浏览可用的插件. 插件有三种类型:
面板: 可在仪表板上使用的新块, 例如饼图或直方图.
数据源: 时间序列数据的新存储后端, 因此您可以从其他来源提取数据.
应用程序: 在单个程序包中捆绑数据源和面板的复杂插件.
我们将使用 Zabbix App 插件, 其中包括 Zabbix 数据源, 触发器面板, Zabbix 服务器仪表板和用于查看数据的模板.
安装插件的最简单方法是使用与 Grafana 捆绑在一起的 CLI 工具 grafana-cli. 运行以下命令以安装 Zabbix App 插件:
sudo grafana-cli plugins install alexanderzobnin-zabbix-App
您将看到以下输出, 表明已安装插件:
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 上的传入连接. 如果配置了防火墙, 则需要打开此端口.
默认登录凭据是 admin/admin. 登录后, 您可以在 "配置文件" 页面上更改密码. 登录时, 主页控制台将迎接您.
通过单击用户界面左上角的 Grafana 徽标访问 Grafana 的主菜单. 然后选择插件. 然后选择应用程序选项卡. 然后单击 Zabbix 应用程序并按启用按钮启用它.
现在您可以添加新的数据源. 再次选择 Grafana 徽标并导航到数据源. 然后单击 "添加数据源" 按钮. 您将看到数据源的配置页面:
配置数据源如下:
在名称字段中输入此新数据源的名称.
选中默认选项, 以便在您创建的新面板中预先选择此数据源.
从类型下拉列表中选择 Zabbix.
使用 Zabbix API 的完整路径填写 Url 字段, 即:
- http://your_zabbix_server_ip_address/zabbix/api_jsonrpc.PHP
- .
使用 Zabbix 的用户名和密码填写用户名和密码字段. 默认用户名是 admin, 默认密码是 zabbix.
启用趋势选项; 当显示长时间段时, 它会增加 Grafana 的表现.
您可以将其他选项保留为默认值.
单击添加按钮以测试并保存配置. 您将看到如下所示的成功消息:
如果您没有看到此消息, 请检查您的凭据并再次测试.
现在让我们看一下插件附带的 Zabbix 仪表板. 从屏幕顶部的下拉列表中选择 Zabbix 服务器仪表板. 选择它时, 仪表板显示有关 Zabbix 服务器的信息:
此仪表板提供了丰富的信息, 但您可以从头开始创建自己的自定义仪表板.
第 4 步 - 创建自定义 Zabbix 仪表板
让我们为 Zabbix 创建一个仪表板, 用于实时显示 CPU 使用情况和文件系统信息.
打开屏幕顶部的下拉列表, 然后单击新建按钮. 将创建一个新的空仪表板.
每个仪表板由包含块的行组成. 创建新仪表板时, 会自动获得一行. 单击行左侧的绿色菜单以访问行的操作菜单. 在这里, 您可以添加新面板, 设置行的高度, 移动它, 折叠它或删除它.
首先, 我们将创建一个显示 Zabbix 服务器 CPU 使用率的图表. 选择添加面板项, 然后单击 图形以在该行中插入新图形.
您将看到一个包含多个选项卡的表单, 并选中 度量标准选项卡. 由于我们已将 Zabbix 数据源设置为默认值, 因此为您添加了一个新查询. 您只需指定以下选项:
将主机组设置为 Zabbix servers.
将主机设置为 Zabbix server.
设置应用为 CPU.
将项目设置为
- Processor load (1 min average per core)
- .
您将在图表上看到当前的处理器负载.
然后导航到 "常规" 选项卡并将 "标题" 字段设置为 Processor load, 将 "跨度" 选项设置为 6. 一行最多可包含 12 个块, 因此将此值设置为 6 会使面板占据屏幕的一半.
现在, 您可以单击 " 返回仪表板 查看结果:
注意: 如果您没有看到任何数据, 则可能会缩小太多. 单击界面右上角的时钟图标, 然后从选项列表中选择 最后 1 小时.
让我们添加另一张图表. 为此, 您可以重复之前的步骤或复制现有图表. 要复制现有图表, 请选择面板标题, 然后单击 " 复制. 然后选择新图表的标题并选择编辑选项. 然后应用以下设置:
将标题更改为 CPU usage.
选择度量标准选项卡, 然后将项字段更改为 / CPU.*/.
您可以将正则表达式模式用于主机名或度量标准名称. 只需确保将模式包装在正斜杠 (/) 中.
您还可以显示摘要统计信息. 选择图例选项卡, 您将看到可以选择的一些选项和值.
在选项下, 选中作为表格和右侧.
在值下, 选择最小, 最大, 平均 和当前.
现在单击 Back to dashboard 查看结果, 如下所示:
接下来, 添加 Singlestat 面板以显示特定指标的单个值. 单击添加行按钮创建一个新行, 然后选择行的菜单, 选择添加面板, 然后选择 Singlestat 项.
设置 Metrics 选项如下:
将主机组设置为 Zabbix servers.
将主机设置为 Zabbix server.
设置应用到 Filesystems.
将项目设置为
- Free disk space on / (percentage)
- .
接下来, 切换到 " 常规选项卡并将标题字段设置为 Free disk space on /.
然后切换到选项卡并配置以下选项:
启用 GaugeShow 选项.
将阈值设置为 10,20. 这将在仪表上显示这些阈值.
从值下拉列表中选择 current 选项.
仪表现在看起来像这样:
返回仪表板并按 CTRL+S 保存.
现在让我们测试一下该仪表如何响应实时事件. 为此, 我们将手动减少磁盘上的可用空间, 并查看仪表板显示的内容.
如果您当前未登录, 请登录 Zabbix 服务器:
SSH sammy@your_zabbix_server_ip_address
登录后, 确定文件系统上有多少可用空间. 您可以使用 df 命令执行此操作:
df -h
您将看到以下输出:
- Filesystem 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 触发器. 创建一个新行, 然后选择行的菜单, 选择 Add 面板, 然后选择 Zabbix Triggers 项.
您将看到主动触发器通知您服务器上的可用空间不足.
选择返回仪表板并使用 CTRL+S 保存仪表板. 您的信息中心现在看起来像这样:
您现在可以使用此简单仪表板快速查看服务器的当前状态.
不要忘记删除您创建的临时文件以释放磁盘空间. 在 Zabbix 服务器上, 发出命令:
rm /tmp/test.img
这将删除 test.img 文件. 几分钟后, 仪表板将再次更新以反映文件系统上的更改.
结论
在本教程中, 您学习了如何安装和配置 Grafana, 并创建了一个自定义仪表板, 其中的面板显示了 Zabbix 的数据. 您可以在桌面甚至大屏幕上显示这些仪表板, 以便管理员可以查看 IT 基础架构的状态. 仪表板上的每个面板都可以显示来自不同服务器的数据, 您可以使用 Grafana 以许多有用的方式过滤数据. 在一个教程中很难描述 Grafana 的所有功能, 因此请探索, 试验和构建自己的漂亮仪表板.
想要了解更多关于安装和配置 Grafana 从 Zabbix 绘制漂亮的图形的相关教程, 请前往腾讯云 + 社区 https://cloud.tencent.com/developer 学习更多知识.
参考文献:《How To Install and Configure Grafana to Plot Beautiful Graphs from Zabbix on CentOS 7》
来源: https://www.qcloud.com/developer/article/1347907