Zabbix-(三)监控主机CPU、磁盘、内存并建立监控图形

Zabbix-(三)监控主机CPU、磁盘、内存并建立监控图形

一.前言

前文中已经讲述了两种方式对Zabbix的搭建,本文将讲述如何在zaibbx上添加须要监控的主机,以及使用Zabbix自带模板和自定义模板对主机的CPU、磁盘、内存进行监控,并触发问题,而且在Zabbix仪表盘建立实时监控图形。linux

准备

  • 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

  1. Server-A、Server-B分别安装zabbix-agentshell

    # 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


  2. Server-A、Server-B配置zabbix-agent数据库

    # vim /etc/zabbix/zabbix_agentd.conf

    修改如下配置:vim

    • 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


  3. 分别启动zabbix-agentapp

    # systemctl start zabbix-agent

    能够查看agent日志测试

    # tailf /var/log/zabbix/zabbix_agentd.log

    可能会出现如下内容,是因为zabbix界面上没有配置主机,接下来将在zabbix页面上进行主机配置3d

    6981:20191030:111132.151 no active checks on server [192.168.152.140:10051]: host [Server-A] not found


三.Zabbix添加主机

经过页面操做,将须要监控的主机添加到zabbix中代理


  1. 登陆Zabbix,默认帐号:Zabbix,默认密码:admin (可在zabbix数据库 users表查询)日志

    Zabbix Dashboard


  2. 点击【配置】-【主机】-【建立主机】,添加须要被监控的主机

    首先配置【主机】信息,添加Server-A,输入配置项code

    配置项
    * 主机名称 Server-A
    可见的名称 Server-A
    * 群组 Linux servers (进行选择)
    * agent代理程序的接口 IP地址: 192.168.152.142 端口: 10050

    添加主机信息

    选择连接模板

    添加主机连接模板

    最后点击【保存】


  3. 在【主机】页面能够看到Server-A已经成功添加了

    主机添加成功

    同时,Server-A的zabbix-agent日志也再也不打印 host [Server-A] not found

    注: 因为在以前在安装Zabbix server时,也在zabbix server上安装了zabbix-agent,所以图例上除了Server-A主机之外,还有zabbix server主机


  4. 经过全克隆添加主机Server-B

    选择须要复制的主机Server-A

    选择复制的主机

    点击【全克隆】(full clone)

    全克隆

    修改主机名称agent IP地址等信息

    修改配置项
    *主机名称 Server-B
    *agent IP 192.168.152.143

    修改克隆主机信息

    最后点击【添加】,等待Server-B与zabbix server创建通讯

    Server-B添加成功


四.建立自定义模板(Template)

在添加主机步骤中,添加了2台须要监控的主机,添加监控项时也能够给每台主机单独添加监控项,可是随着主机数量增多,就会出现过多重复的操做,所以可使用zabbix的Templates(模板)Items(监控项Triggers(触发器)等众多配置定义在模板中,将主机连接到定义好的模板上,就能够免去重复的操做。

下面将自定义模板,定义监控磁盘剩余空间监控项,并配置触发器当磁盘剩余空间低于必定阈值时触发告警。


  1. 建立自定义模板

    点击【配置】-【模板】-【建立模板】

    建立模板页面


  2. 输入模板信息,完成后点击【添加】

    配置项
    * 模版名称 Template Disk Free Size
    可见的名称 Template Disk Free Size
    * 群组 Linux servers (选择)
    描述 自定义磁盘剩余空间模板

    注: 读者也能够自定义一个群组,并在自定义群组中建立模板,这个步骤本文再也不示范

    自定义模板信息


五.建立磁盘剩余空间监控项和触发器

  1. 建立自定义磁盘监控项(Item)


    进入自定义模板的监控项模块

    点击【建立监控项】

    输入监控参数

    配置项
    * 名称 磁盘剩余空间监控项
    类型 Zabbix 客户端
    * 键值 vfs.fs.size[/,free]
    单位 B
    ……其余配置项 根据须要填写

    这里的键值 vfs.fs.size[/,free]是指,监控根路径下,空余的磁盘大小

    vfs.fs.size

    点击【添加】

    磁盘监控项

    注:建立监控项(Items)能够参考官方建立监控项, 更多的键值(Keys)能够参考官方监控项类型


  2. 建立触发器(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日志进行排查


  3. 测试一下


    当前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自带模板中,有许多监控项能够直接利用起来,无需再单首创建监控项,使用时可先在已有模板中查找下可用的监控项。


  1. 使用自带模板中监控项

    直接使用CPU idle time 监控项便可,能够在【配置】-【主机】,【Server-A】的【监控项】中搜索到该监控项(在下图中能够看到该监控项连接了模板)


  2. 在已有模板中添加触发器(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),为其添加了一个新的触发器,在实际使用中,要谨慎操做,由于连接了该模板的主机触发器都会被修改,所以实际使用中须要对这种操做进行评估。
  3. 测试一下

    等待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以及参数解释:

官方vm.memory.size解释

参数说明


  1. 在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建立图形

能够在首页仪表盘里建立图形,实时查看监控项的数据值。


  1. 回到zabbix首页,点击【编辑仪表盘】-【添加构件】


  2. 建立磁盘剩余空间图形

    输入基本信息


    添加【主机】和【监控项】

    左边一栏选择主机Server-A,右边一栏选择Server-A的磁盘监控项


    再【添加新数据集】,一样操做将Server-B的磁盘监控也添加到图形中


  3. 添加CPU空闲率图形

    按照上面的步骤,添加Server-A,Server-B的CPU空闲率图形


  4. 添加内存占用率图形

    一样按照上面的步骤,添加Server-A,Server-B的内存占用率图形


  5. 保存设置并在仪表盘中查看

    点击【保存设置】


    在仪表盘页面查看图形

九.参考文档

相关文章
相关标签/搜索