zl程序教程

您现在的位置是:首页 >  云平台

当前栏目

zabbix自定义监控项实现业务系统监控(四)

监控 实现 自定义 业务 Zabbix 系统监控
2023-09-14 09:15:44 时间

1.添加自定义监控

1.1.创建自定义监控

我们以磁盘每秒可以传输的文件数进行监控

zabbix创建自定义监控语法

​ UserParameter=,

​ 首先是关键命令参数UserParameter=监控项名,shell命令

1.获取磁盘tps的目录
[root@192_168_81_220 ~]# iostat 
Linux 3.10.0-957.el7.x86_64 (192.168.81.220) 	2020年09月21日 	_x86_64_	(1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.12    0.04    0.40    0.17    0.00   99.28

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.86        30.94         4.72     594918      90834
dm-0              1.80        30.28         4.62     582202      88786
dm-1              0.00         0.13         0.00       2460          0

2.获取指定sda磁盘的tps指标
[root@192_168_81_220 ~]# iostat | awk '$1 ~ /sda/{print $2}'
1.85

3.在zabbix_agentd.conf里面创建自定义监控项
搜索UserParameter
增加一个监控项,先写上监控项名称,再写上监控指标的命令
UserParameter=sda_iostat_tps,iostat | awk '$1 ~ /sda/{print $2}'

4.重启zabbix-agent
自定义监控项必须要重启zabbix-agent才能生效
[root@192_168_81_220 ~]# systemctl restart zabbix-agent.service 

1.2.在服务端测试监控项

zabbix_get命令格式

​ zabbix_get -s ip地址 -p 端口 -s 监控项名称

1.安装zabbix
[root@zabbix-server ~]# yum -y install zabbix—get

2.测试刚刚添加的监控项是否生效
如果使用了默认的10050端口,可以不加-p参数,能获取监控指标就表示监控项增加成功
[root@zabbix-server ~]# zabbix_get -s 192.168.81.220 -p 10050 -k sda_iostat_tps
1.81

1.3.在web界面添加自定义的监控项

1.3.1.点击主机进入详细页面

在这里插入图片描述

1.3.2.创建监控项

点击监控项一列—创建监控项

在这里插入图片描述

填写监控项信息

填写监控项对外显示的监控名称:sda磁盘的每秒传输次数

键值就填写刚刚定义的监控项:sda_iostat_tps

信息类型就是指标显示的单位:这里选择浮点数

可以新增一个应用集:磁盘监控

添加完点击添加即可
在这里插入图片描述

1.3.3查看创建的监控项

由于刚刚创建了应用集因此一眼就能看到

点击磁盘监控应用集

在这里插入图片描述

即可看到监控项
在这里插入图片描述

1.3.4.查看监控项是否成功

要想验证自定义的监控项是否成功就要看最新数据里有没有数据,如果想要快速显示则重启zabbix-server

首先点击监测—最新数据—过滤ip、过滤监控项名称----应用

看到最新数据有值表示监控项创建成功

在这里插入图片描述

1.4.添加需要root权限的监控项

1.4.1.创建自定义监控项key

netstat -p选项需要root权限,可以自定义监控一些tcp连接状态

1.获取tcp的连接状态
[root@192_168_81_220 ~]# netstat -anpt | grep ':80' | grep -c 'ESTABLISHED'
0

2.自定义监控项
[root@192_168_81_220 ~]# vim /etc/zabbix/zabbix_agentd.conf 
UserParameter=sda_iostat_tps,iostat | awk '$1 ~ /sda/{print $2}'
UserParameter=estab_count,netstat -anpt | grep ':80' | grep -c 'ESTABLISHED'

3.给命令加上suid权限
[root@192_168_81_220 ~]# chmod u+s /usr/bin/netstat 

4.重启zabbix-agent
[root@192_168_81_220 ~]# systemctl restart zabbix-agent

5.测试监控项是否生效
[root@zabbix-server ~]# zabbix_get -s 192.168.81.220 -k estab_count
0

1.4.2.页面添加自定义监控项

点击配置—主机—监控项—创建监控项

填写监控项名、监控项key值、新增一个应用集

在这里插入图片描述

查看应用集下的监控项

在这里插入图片描述

查看监控中最新指标

在这里插入图片描述

2.复制监控项到其他主机

可以将某台监控主机上的监控项复制到其他主机。

如果是自定义的监控项复制到其他主机,需要将监控项的key在监控主机提前准备好,然后直接复制到监控主机就可以了。

一般将所有的自定义监控项写到一个配置文件中,如果对多台主机进行复用直接scp过去就可以了。

zabbix_agent上有个include可以加在其他配置文件到主配置文件中,因此可以将自定义的监控写到一个单独的配置文件中。

实现思路:

​ 1.新增监控主机

​ 2.准备自定义监控配置文件

​ 3.页面复制原有监控项到新机器

2.1.新增监控主机

新打开一台机器安装zabbix_agent客户端并进行配置
1.安装zabbix-agent
[root@192_168_81_230 ~]# rpm -ivh zabbix-agent-4.0.24-1.el7.x86_64.rpm 

2.配置zabbix-agent连接zabbix-server
[root@192_168_81_230 ~]# vim /etc/zabbix/zabbix_agentd.conf 
Server=192.168.81.210
ServerActive=192.168.81.210

2.2.页面添加主机

配置—主机—添加主机

填写主机名称、群组、接口地址

在这里插入图片描述

链接模板

在这里插入图片描述

2.3.准备自定义监控项配置文件

如果在include引入的配置文件中写入监控项,这个监控项不能存在于主配置文件中,否则会报错

报错如下

在这里插入图片描述

1.zabbix引入其他配置文件
[root@192_168_81_230 ~]# egrep '^[a-z]|^[a-Z]' /etc/zabbix/zabbix_agentd.conf 
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.81.210
ServerActive=192.168.81.210
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf			#引入其他配置文件内容到主配置文件,和nginx配置文件的include功能效果一致

2.在第一台监控主机编写监控项配置文件
在/etc/zabbix/zabbix_agentd.d/这个路径下编写一个后缀是.conf的文件即可
[root@192_168_81_220 ~]# vim /etc/zabbix/zabbix_agentd.d/user_monitor.conf
UserParameter=sda_iostat_tps,iostat | awk '$1 ~ /sda/{print $2}'
UserParameter=estab_count,netstat -anpt | grep ':80' | grep -c 'ESTABLISHED'

3.将监控主机配置文件推送到第二台监控主机
[root@192_168_81_220 zabbix_agentd.d]# scp user_monitor.conf root@192.168.81.230:/etc/zabbix/zabbix_agentd.d/
[root@192_168_81_230 ~]# ls /etc/zabbix/zabbix_agentd.d/
user_monitor.conf  userparameter_mysql.conf

4.重启zabbix-agent
[root@192_168_81_230 ~]# systemctl restart zabbix-agent

2.4.复制原有监控项到新监控机器

2.4.1.如何复制监控

点击配置—主机—监控项

在这里插入图片描述

找到要复制的监控项—点击复制

在这里插入图片描述

2.4.2.针对群组或者单个主机进行复制

复制这里选择主机群组则会对整个群组生效,也可以对单个主机,这里我们针对单个主机进行复制

针对整个群组
在这里插入图片描述

要注意:复制监控到整个群组时,必须是群组中所有主机都不能包含当前要复制的监控项不然会报如下错误
在这里插入图片描述

针对单个主机

在这里插入图片描述

2.4.3.查看复制过去的监控项

筛选新监控主机

在这里插入图片描述

查看复制的监控项

在这里插入图片描述

3.为监控项添加触发器

创建监控项就是为了获取指标,当指标到达一定峰值的时候进行报警,如何报警就要靠触发器来完成了

3.1.针对用户打开的终端数量设置触发器

当用户打开的终端数量过多也是异常的一种,以这个为例子主要因为好触发

监控名称是 Number of logged in users

在监控项os应用集就可以找到
在这里插入图片描述

3.1.1.创建触发器

点击配置—主机—找到要设置触发器的机器
在这里插入图片描述

点击触发器—创建触发器
在这里插入图片描述

填写触发器名称和触发器严重级别

在这里插入图片描述

填写信息后点击添加表达式

监控项:点击选择关联对应的监控项名称

功能:表示获取指标值的一种方式,突然表示最新值,也可以是平均值、最大值、最小值,根据情况而定

结果:当峰值达到多少时进行报警,这里表示大于5就触发报警

最后点击插入,即可生成表达式

在这里插入图片描述

3.1.2.表达式详解

点击插入即可生成表达式,生成后点击下面的添加

在这里插入图片描述

{192.168.81.220:system.users.num.last()}>5>5						#峰值大于5

表达式详解
192.168.81.220:			#监控主机名称
system.users.num.		#监控项名称
last()					#最新值
>5						#峰值大于5

查看触发器

在这里插入图片描述

3.1.3.添加动作

设置完触发器一定要添加动作,不然不知道触发后要做什么

点击配置—动作

在这里插入图片描述

创建一个动作

这里面可以设置报警,稍后再写
在这里插入图片描述

3.2.触发器声音设置

3.2.1.设置声音

目前没有报警功能,因此可以通过触发器的声音在判断触发器是否生效

这种是最原始的报警方式

点击用户设置----正在发生的消息----将前端消息选中—更新

在这里插入图片描述

3.2.2.触发报警声音

我们刚刚是对主机打开的终端数做的触发器报警,峰值设置的是5,因此我们将xshell终端打开6个即可触发

打开5个以上终端触发报警
在这里插入图片描述

已经触发严重类型的报警

在这里插入图片描述