一. 前言
前文中已经讲述了两种方式对 Zabbix 的搭建, 本文将讲述如何在 zaibbx 上添加需要监控的主机, 以及使用 Zabbix 自带模板和自定义模板对主机的 CPU, 磁盘, 内存进行监控, 并触发问题, 并且在 Zabbix 仪表盘创建实时监控图形.
准备
Zabbix Server (Zabbix 4.4) (ip:192.168.152.140)
被监控主机 A (Centos7.6), 下文简称 Server-A (ip:192.168.152.142)
被监控主机 B (Centos7.6), 下文简称 Server-B (ip:192.168.152.143)
二. 为被监控主机安装 zabbix-agent
Server-A,Server-B 分别安装 zabbix-agent
- # rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
- # yum install -y zabbix-agent
Server-A,Server-B 配置 zabbix-agent
# VIM /etc/zabbix/zabbix_agentd.conf
修改以下配置:
Server-A 的 zabbix_agentd.conf
- Server=192.168.152.140
- ServerActive=192.168.152.140
- # Hostname 要与在 Zabbix 界面配置的 Hostname(主机名称)保持一致
- Hostname=Server-A
Server-B 的 zabbix_agentd.conf
- Server=192.168.152.140
- ServerActive=192.168.152.140
- # Hostname 要与在 Zabbix 界面配置的 Hostname(主机名称)保持一致
- Hostname=Server-B
分别启动 zabbix-agent
# systemctl start zabbix-agent
可以查看 agent 日志
# tailf /var/log/zabbix/zabbix_agentd.log
可能会出现以下内容, 是由于 zabbix 界面上没有配置主机, 接下来将在 zabbix 页面上进行主机配置
6981:20191030:111132.151 no active checks on server [192.168.152.140:10051]: host [Server-A] not found
三. Zabbix 添加主机
通过页面操作, 将需要监控的主机添加到 zabbix 中
登录 Zabbix, 默认账号: Zabbix, 默认密码: admin (可在 zabbix 数据库 users 表查询)
点击[配置] -[主机] -[创建主机] , 添加需要被监控的主机
首先配置[主机] 信息, 添加 Server-A, 输入配置项
配置项 | 值 |
---|---|
* 主机名称 | Server-A |
可见的名称 | Server-A |
* 群组 | Linux servers (进行选择) |
* agent 代理程序的接口 | IP 地址: 192.168.152.142 端口: 10050 |
再配置[模板] 信息, 点击[添加] , 选择群组 Templates, 勾选 Template OS Linux by Zabbix agent, 点击[选择]
最后点击[保存]
在[主机] 页面可以看到 Server-A 已经成功添加了
同时, Server-A 的 zabbix-agent 日志也不再打印 host [Server-A] not found
注: 由于在之前在安装 Zabbix server 时, 也在 zabbix server 上安装了 zabbix-agent, 因此图例上除了 Server-A 主机以外, 还有 zabbix server 主机
通过全克隆添加主机 Server-B
选择需要复制的主机 Server-A
点击[全克隆] (full clone)
修改主机名称, agent IP 地址等信息
修改配置项 | 值 |
---|---|
* 主机名称 | Server-B |
*agent IP | 192.168.152.143 |
最后点击[添加] , 等待 Server-B 与 zabbix server 建立通信
四. 创建自定义模板(Template)
在添加主机步骤中, 添加了 2 台需要监控的主机, 添加监控项时也可以给每台主机单独添加监控项, 但是随着主机数量增多, 就会出现过多重复的操作, 因此可以使用 zabbix 的 Templates(模板)将 Items(监控项和 Triggers(触发器)等众多配置定义在模板中, 将主机链接到定义好的模板上, 就可以免去重复的操作.
下面将自定义模板, 定义监控磁盘剩余空间监控项, 并配置触发器当磁盘剩余空间低于一定阈值时触发告警.
创建自定义模板
点击[配置] -[模板] -[创建模板]
输入模板信息, 完成后点击[添加]
配置项 | 值 |
---|---|
* 模版名称 | Template Disk Free Size |
可见的名称 | Template Disk Free Size |
* 群组 | Linux servers (选择) |
描述 | 自定义磁盘剩余空间模板 |
注: 读者也可以自定义一个群组, 并在自定义群组中创建模板, 这个步骤本文不再示范
五. 创建磁盘剩余空间监控项和触发器
创建自定义磁盘监控项(Item)
进入自定义模板的监控项模块
点击[创建监控项]
输入监控参数
配置项 | 值 |
---|---|
* 名称 | 磁盘剩余空间监控项 |
类型 | Zabbix 客户端 |
* 键值 | vfs.fs.size[/,free] |
单位 | B |
…… 其他配置项 | 根据需要填写 |
这里的键值 vfs.fs.size[/,free]是指, 监控根路径下, 空余的磁盘大小
点击[添加]
注: 创建监控项 (Items) 可以参考官方创建监控项, 更多的键值 (Keys) 可以参考官方监控项类型
创建触发器(Trigger)
触发器可以配置当监控项监控到的数据达到一定阈值, 从而触发问题.
在 Template Disk Free Size 模板中选择[触发器] , 点击[创建触发器]
输入触发器参数
配置项 | 值 |
---|---|
* 名称 | 磁盘剩余空间触发器 |
严重性 | 严重 (选择) |
* 表达式 / 问题表现形式 | {Template Disk Free Size:vfs.fs.size[/,free].last()}<15000000000 (可通过选择监控项) |
事件成功迭代 | 恢复表达式 (选择) |
* 恢复表达式 | {Template Disk Free Size:vfs.fs.size[/,free].last()}>=15000000000 |
问题事件生成模式 | 多重 (选择) |
表达式 / 问题表示形式
选择已配置的磁盘剩余空间监控项
配置结果 <15000000000, 监控项中单位为 B, 这里 15GB 换算成 15000000000B
点击[插入] , 可以看到如下表达式, 表达式意思是, 当检测到磁盘弓箭剩余不足 15GB 时, 将触发问题
{Template Disk Free Size:vfs.fs.size[/,free].last()}<15000000000
因此可以直接输入问题恢复表达式, 即磁盘剩余空间高于 15GB 时, 恢复问题
{Template Disk Free Size:vfs.fs.size[/,free].last()}>=15000000000
点击[添加]
再将该自定义模板, 链接到 Server-A,Server-B 主机的模板中, 参考创建主机添加链接, 不过在筛选模板时, 群组要选择 Linux servers(与创建模板时群组保持一致), 添加后点击[更新]
进入[配置] -[主机] -[Server-A] (或者 Server-B)-[监控项] 中, 可以搜索到磁盘剩余空间监控项已经添加成功
注: 如果监控项状态不为[已启动] 可以查看 zabbix server 日志进行排查
测试一下
当前 Server-A 主机磁盘剩余空间, 为 15G
上传一些文件到 Server-A, 此时磁盘剩余空间为 14G
等待 Zabbix 监控到 Server-A 磁盘变化, 查看仪表盘, 出现问题, 配置成功
删除 Server-A 大文件, 等待 Zabbix 监控到主机磁盘恢复, 仪表盘问题恢复
六. 监控 CPU 空闲率
在添加主机时, 由于已经链接了 Template OS Linux by Zabbix agent 模板 (该模板还链接了 Template Module Linux CPU by Zabbix agent 等若干个其他模板),Template Module Linux CPU by Zabbix agent 模板自带了许多监控项, 其中包括 CPU idle time 监控项, 因此可以直接使用该监控项监控主机 CPU 空闲率数值, 无需自定义监控项, 只需要添加一个触发器(Trigger) 来读取监控项触发告警即可.
注: zabbix 自带模板中, 有许多监控项可以直接利用起来, 无需再单独创建监控项, 使用时可先在已有模板中查找下可用的监控项.
使用自带模板中监控项
直接使用 CPU idle time 监控项即可, 可以在[配置] -[主机] ,[Server-A] 的[监控项] 中搜索到该监控项(在下图中可以看到该监控项链接了模板)
在已有模板中添加触发器(trigger)
这里在模板 Template Module Linux CPU by Zabbix agent 添加一个触发器.
点击[配置] -[模板] 搜索模板 Template Module Linux CPU by Zabbix agent, 并进入[触发器] 配置
创建触发器操作流程参考上面步骤中的创建自定义触发器, 这里说明一下配置参数
配置项 | 值 |
---|---|
* 名称 | CPU 空闲率触发器 |
严重性 | 严重 (选择) |
表达式 / 问题表现式 | {Template Module Linux CPU by Zabbix agent:system.cpu.util[,idle].avg(5m)}>=80 |
事件成功迭代 | 恢复表达式 (选择) |
* 恢复表达式 | {Template Module Linux CPU by Zabbix agent:system.cpu.util[,idle].avg(5m)}<80 |
表达式 / 问题表现式: 表示在 5 分钟内 CPU 平均空闲率如果高于 80%, 那么将触发问题
添加表达式示例:
system.CPU.util[,idle]官方说明
注: 这里修改了 zabbix 自带的模板(Template Module Linux CPU by Zabbix agent), 为其添加了一个新的触发器, 在实际使用中, 要谨慎操作, 因为链接了该模板的主机触发器都会被修改, 因此实际使用中需要对这种操作进行评估.
测试一下
等待 5 分钟, Zabbix server,Server-A,Server-B 的 CPU 空闲率都高于 80%,Dashboard 界面触发了问题, 由于 Zabbix server 主机也链接了 Template OS Linux by Zabbix agent 模板, 因此修改 Template Module Linux CPU by Zabbix agent 模板, Zabbix server 的 CPU 空闲率也被监控, 所以在修改模板时要注意.
七. 监控内存占用率
在上面的步骤中添加了磁盘剩余空间, CPU 空闲率监控, 直接使用了 Zabbix 客户端类型的监控项的键值, 但是有些监控项可能不能直接获取, 需要通过计算的方式来获取, 例如监控内存占用率, 虽然可以使用 vm.memory.size 这个键值, 但是得到值并不是我们所期望的, 参考下面官方的解释, 虽然 mode 中有 pused (used, percentage), 但是 "used"="total - free" 而 "available"="free + buffers + cached"(内核版本 Linux<3.14), 实际是想要的值:
(available - total) / total
因此需要使用可计算的键值类型
官方对 vm.memory.size 以及参数解释:
在 Template OS Linux by Zabbix agent 模板新增监控项
配置项 | 值 |
---|---|
* 名称 | 内存占用率监控项 |
类型 | 可计算的 |
* 键值 | memory.utilization (自定义) |
* 公式 | 100*(last("vm.memory.size[total]")-last("vm.memory.size[available]"))/last("vm.memory.size[total]") |
信息类型 | 浮点数 |
单位 | % |
…… 其他配置项 | 默认即可 |
自定义键值可自己输入, 具体规则参考官方键值规则
这里就不再创建触发器了, 感兴趣的读者可以自行创建, 可参考上面的触发器创建步骤
八. Dashboard 创建图形
可以在首页仪表盘里创建图形, 实时查看监控项的数据值.
回到 zabbix 首页, 点击[编辑仪表盘] -[添加构件]
创建磁盘剩余空间图形
输入基本信息
添加[主机] 和[监控项]
左边一栏选择主机 Server-A, 右边一栏选择 Server-A 的磁盘监控项
再[添加新数据集] , 同样操作将 Server-B 的磁盘监控也添加到图形中
添加 CPU 空闲率图形
按照上面的步骤, 添加 Server-A,Server-B 的 CPU 空闲率图形
添加内存占用率图形
同样按照上面的步骤, 添加 Server-A,Server-B 的内存占用率图形
保存设置并在仪表盘中查看
点击[保存设置]
在仪表盘页面查看图形
九. 参考文档
Zabbix4.4 官方创建监控项
Zabbix4.4 键值类型
Zabbix4.4 键值类型
Zabbix4.4 vm.memory.size
来源: https://www.cnblogs.com/Sherry-XRJ/p/11763732.html