目录

一、环境准备

二、使用模板监控

1、添加监控主机

2、设置应用监控模板

3、查看监控数据

三、自定义监控

1、配置自定义监控key

2、创建自定义监控模板、应用集、监控项和图形

2.1、监控模板、应用集、监控项介绍

2.2、创建监控模板

2.3、给自定义模板添加应用集、监控项和图形

 3、查看监控数据


一、环境准备

zabbix基础环境部署参照:zabbix基础环境部署_桂安俊 

以下实验部署均基于上述环境。

二、使用模板监控

1、添加监控主机

  • Host(主机)是监控的基本载体
  • Zabbix所有监控都是基于Host
  • 通过Configuration--->Hosts--->Create Host创建

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix添加模板和监控项

 下面自带的一个监控记录是zabixserver自己监控自己,但是服务没有启用,点击状态可以切换启用。

添加被监控客户端:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix_02

 如下可以看到添加的web1监控主机,但是监控项是0项,这里只是添加了主机,还没有设置监控项: 

zabbix添加模板和监控项 zabbix自定义监控模板_图形_03

2、设置应用监控模板

为web1主机添加关联的监控模板:

  • 点击监控主机名称
  • 在"Templates"模板选项卡页面中
  • 找到Link new templates,select选择合适的模板添加
  • 这里我们选择Template OS Linux模板

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix添加模板和监控项_04

 

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_05

 

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_06

 

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_07

如下图可以看到,在给web1关联了zabbix自带的Linux OS标准模板后,被监控web1主机有了32个监控项:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix_08

3、查看监控数据

选择“监测中”--->“最新数据”--->选择主机,如果主机比较多,可以先选择“主机群组”,然后在群组里找到指定主机,选择完后点“应用”:

zabbix添加模板和监控项 zabbix自定义监控模板_图形_09

 选择应用后,可以看到下面有了监控数据:

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_10

 监控数据页面是自动刷新的,刷新时间可以自己设置:

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_11

 可以图形化查看,比如下图选择查看cpu一分钟负载,选择后点后面图形,因为中文这边会有显示问题,所以切换回英文:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix添加模板和监控项_12

 

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_13

 可以在web1执行一个死循环脚本,是cpu负载上升:

while :; do echo a; echo b; done

 可以看到,cpu负载明显上升:

zabbix添加模板和监控项 zabbix自定义监控模板_应用集_14

三、自定义监控

上述使用的是zabbix自带的模板进行主机监控,监控的数据也是模板里固定的数据,无法满足每个场景具体的、个性化的需求,这就需要使用自定义监控。

1、配置自定义监控key

zabbix的自定义监控,默认是不开启的,需要修改配置文件,然后才可以编写自定义监控脚本。

第1步:修改被监控端的Agent配置文件(在被监控端操作):

#以web1主机为例
vim /usr/local/etc/zabbix_agentd.conf

修改如下参数:

UnsafeUserParameters=1    #取消注释,设置是否允许自定义支持特殊符号,1允许,0不允许
Include=/usr/local/etc/zabbix_agentd.conf.d/   #取消注释,加载配置文件目录,后面自定义监控的命令或脚本都得放在该目录下

第2步:创建自定义key(在被监控端操作):

(以下以web1主机为例):

#count.line.passwd是自定义key名称,该文件不存在,需要新建
vim /usr/local/etc/zabbix_agentd.conf.d/count.line.passwd

添加如下内容,监控内容为获取当前系统用户数量:

#自定义key语法格式:UserParameter=自定义key名称,命令
#sed -n '$=' /etc/passwd是自定义监控命令,这里是统计passwd文件最后一行行号,即监控系统用户数量,也可以换成自定义脚本
UserParameter=count.line.passwd,sed -n '$=' /etc/passwd

重启Agentd:

#关闭agentd
killall zabbix_agentd

#启动agentd
zabbix_agentd

测试自定义key是否生效:

#zabbixserver向被监控端获取监控数据就是使用的zabbix_get命令,-s是被监控目标IP,-k后面跟监控项名称
zabbix_get -s 127.0.0.1 -k count.line.passwd

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix添加模板和监控项_15

 如上能够获取到执行结果,表示成功。

【常见报错】:

如在执行zabbix_get提示:Check access restrictions in Zabbix agent configuration

说明该主机没有权限去监控目标主机,需要检查目标主机(被监控端)的agent客户端配置,有没有将监控服务端主机IP加入进去,配置文件如下:

vim  /usr/local/etc/zabbix_agentd.conf   #对于配置内容如下:

Server=127.0.0.1,192.168.2.10

ServerActive=127.0.0.1,192.168.2.10:10051

2、创建自定义监控模板、应用集、监控项和图形

2.1、监控模板、应用集、监控项介绍

上面只是创建了一个监控项,后面还需要使用zabbix页面去调用,一个正式的自定义监控项的添加流程应该是:创建监控模板--->创建应用集--->添加监控项,如下图:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix_16

 如上图,先创建一个监控模板,名为cluster,再创建一个应用集1,应用集1里再去添加具体的监控项,当然如果这个模板里的监控项比较少的话,可以不用应用集,直接将监控项放在模板里面,应用集只是一个分组的概念,方便监控项多的时候,进行分组管理,可以快速查询。

如下图,在查看监控项的时候,下面的CPU、Filesystems黑色加粗项就是一个个应用集,应用集里面包含了同一类的若干具体监控项:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix_17

2.2、创建监控模板

根据上述添加流程,我们需要先创建一个监控模板

登录zabbix服务器管理页面:

选择 配置--->模板--->创建模板

zabbix添加模板和监控项 zabbix自定义监控模板_应用集_18

 

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix添加模板和监控项_19

 如上,这里创建一个count.line.passwd监控模板,然后放到一个新建组count.line.passwd里,完成之后选择最下面的添加。

添加完成后,可以看到做了一个刚刚新建的模板,但是这个模板是空的,里面没有应用集和监控项:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix_20

2.3、给自定义模板添加应用集、监控项和图形

第1步:创建应用集 

先创建应用集,点击监控模板后面对应的应用集:

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_21

选择创建应用集:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix添加模板和监控项_22

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix_23

 回到刚刚的所有模板页面,可以看到新建的count.passwd模板里多了一个应用集:

zabbix添加模板和监控项 zabbix自定义监控模板_应用集_24

第2步:创建监控项 

点击监控项,进行添加具体监控项:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix添加模板和监控项_25

默认没有监控项,选择创建监控项:

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_26

 如下图所示,监控项名称自定义;类型是选zabbix客户端,因为客户端的count.line.passwd是zabbix agent客户端提供;键值这里不能自定义,一定要和客户端在创建key的时候zabbix_agentd.conf.d/count.line.passwd文件中的UserParameter字段的等于号后面的字段一致,这里是count.line.passwd;信息类型的话根据实际监控项返回内容选择,这里是获取系统用户数量,是数字类型;下面更新间隔、历史数据保留时长、趋势存储时间等无特殊需求使用默认值就可以;应用集是将该监控项归属到之前创建的应用集;配置完成后,选择最下面的添加:

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_27

 添加完成后,返回到所有模板页面,可以看到多了一个监控项:

zabbix添加模板和监控项 zabbix自定义监控模板_应用集_28

 第3步:创建图形

如上有了应用集、监控项,还需要再添加一个图形:

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_29

创建图形:

zabbix添加模板和监控项 zabbix自定义监控模板_应用集_30

 配置图形参数:

zabbix添加模板和监控项 zabbix自定义监控模板_图形_31

 再次回到所有模板,可以看到自定义模板图形也有了:

zabbix添加模板和监控项 zabbix自定义监控模板_应用集_32

 第4步:将监控模板和被监控主机绑定

 以上是创建了一个基础监控模板,剩下就是将模板和被监控主机绑定,实现自动监控:

点击配置--->主机--->被监控主机web1

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix_33

 选择web1模板:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix_34

 选择模板:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix添加模板和监控项_35

 勾选完后需要选添加,才将模板正式添加给主机:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix_36

添加完后,选择更新:

zabbix添加模板和监控项 zabbix自定义监控模板_zabbix添加模板和监控项_37

 3、查看监控数据

以上配置好自定义监控内容后,可以实现查看自定义监控数据了,可以看到监控web1的count_line_passwd_item的值,即实时用户数: 

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_38

 也可以图形化查看折线图:

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_39

 测试:可以给被监控主机web1创建几个用户,观察zabbixserver的监控数据是否会实时变化:

#在web1执行,创建10个用户
for i in {1..10}; do useradd testuser$i; done

 可以看到监控的用户数量数据由46变成了56,折线图也发生了变化:

zabbix添加模板和监控项 zabbix自定义监控模板_自定义监控_40