Zabbix-(三)监控主机CPU、磁盘、内存并创建监控图形
Zabbix-(三)监控主机CPU、磁盘、内存并创建监控图形
一.前言
前文中已经讲述了两种方式对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]是指,监控根路径下,空余的磁盘大小

点击【添加】

- 创建触发器(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的内存占用率图形

保存设置并在仪表盘中查看
点击【保存设置】

在仪表盘页面查看图形

九.参考文档
Zabbix-(三)监控主机CPU、磁盘、内存并创建监控图形的更多相关文章
- zabbix (三) 所需磁盘容量计算
一.zabbix 磁盘容量大小 zabbix的数据库大小取决于NVPS(new values per second)大小,NVPS从总体上反应了处理速度,与监控项的数目,监控项的类型,取值间隔,His ...
- 为Zabbix配置Nova服务、Keystone和Placement进程CPU和内存usage监控
目前已经完成了RabbitMQ和MySQL的监控项配置,还差对nova-api.nova-conductor.nova-scheduler和keystone进程CPU和内存 usage的监控,类似的轮 ...
- zabbix监控主机CPU使用率
zaibix默认模板针对CPU只有监控负载(load)没有监控CPU使用率 选择配置-模板-Template OS Windows-监控项 创建监控项 创建监控图形 查看图像结果
- Zabbix 3.4过滤多余的windows网卡监控
在服务器上安装了zabbix 3.4.14之后,zabbix自动发现规则Network interface discovery会自动发现windows服务器上的所有网卡信息,包括一大堆的虚拟网卡等等, ...
- 【好书摘要】性能优化中CPU、内存、磁盘IO、网络性能的依赖
系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上 ...
- Linux按照CPU、内存、磁盘IO、网络性能监测
系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书 ...
- inux按照CPU、内存、磁盘IO、网络性能监测
http://my.oschina.net/chape/blog/159640 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长 ...
- 性能优化中CPU、内存、磁盘IO、网络性能的依赖(转)
关于系统性能优化,推荐一篇不错的博客! 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试 ...
- Linux按照CPU、内存、磁盘IO、网络性能监测【转载】
本文转载地址:https://my.oschina.net/chape/blog/159640 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监 ...
随机推荐
- Oracle基于布尔的盲注总结
0x01 decode 函数布尔盲注 decode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回3 当然值1,值2,值3也可以 ...
- 代码审计-凡诺CMS 2.1文件包含漏洞
0x01代码审计 后台账号密码: admin admin 安装好了是这样的 漏洞文件:/channel.php if (ism()) { include($dir.$t_mpath.$c_mcmode ...
- Ubuntu php + apache
Ubuntu 环境: 问题1: apache 不能解析 *.php 文件 安装apache的扩展模块 : apt-get install libapache2-mod-php 问题2 : 客户端访问 ...
- linux下mqtt-client
CPATH += ../embe_mqtt/MQTTClient/srcPSRTPATH = ../embe_mqtt/MQTTPacket/src LOADPATH += -I$(CPATH)LOA ...
- Python斐波那契数列
今天偶然看到这个题目,闲着没事练一下手 if __name__ == '__main__': """ 斐波那契数列(Fibonacci sequence), 又称黄金分割 ...
- 如何把应用程序移植到k8s
程序部署环境的容器化已经是大势所趋,微服务为容器化提供了广阔的应用舞台,k8s已经把Docker纳入为它的底层支撑容器引擎,一统江湖,成为了容器技术事实上的标准.一般的应用程序是不能直接拿来部署到容器 ...
- Vue学习系列(三)——基本指令
前言 在上一篇中,我们已经对组件有了更加进一步的认识,从组件的创建构造器到组件的组成,进而到组件的使用,.从组件的基本使用.组件属性,以及自定义事件实现父子通讯和巧妙运用插槽slot分发内容,进一步的 ...
- Java描述设计模式(16):代理模式
本文源码:GitHub·点这里 || GitEE·点这里 一.生活场景 1.场景描述 在电商高速发展的今天,快递的数量十分庞大,甚至出现了快递代理行业,简单的说就是快递的主人没有时间收快递,会指定一个 ...
- 深入理解JavaScript中的作用域、作用域链和闭包
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qappleh/article/detai ...
- Solr导入MongoDB数据
数据导入方式: 全量导入和增量导入: query 是全量导入时,把你的数据中查到的数据全部导入,deltaImportQuery 和 deltaQuery 是增量导入数据所需要的两个查询语句.delt ...