编辑
2023-03-17
运维
00
请注意,本文编写于 551 天前,最后修改于 551 天前,其中某些信息可能已经过时。

Zabbix是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

其能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

Zabbix由Zabbix server与zabbix agent组成,server主动向它收集监控数据,agent提供丰富的key,包括不限于cpu、内存、网络、磁盘、web等等。

那自定义监控适合应用于哪些场景呢?

  • 模板中没有我们所要的监控项
  • 默认的模板中监控项过多

自定义监控全流程

image-20220719134952226

客户端

通过命令、脚本取出对应的值

image-20220719135005605

创建键值与重启

UserParameter=key,cmd UserParameter=固定写法,表示要自定义键值 key表示键值名字,命名最好就是 单词+"." (点) cmd表示命令或脚本
#UserParameter=key,cmd #UserParameter=check.ngx,sh /server/scripts/xxx.sh UserParameter=check.ngx,ss -lntup|grep -w 80|wc -l 1. 写入自定义key(键值) cat /etc/zabbix/zabbix_agent2.d/web.conf #UserParameter=key,cmd #UserParameter=check.ngx,sh /server/scripts/xxx.sh UserParameter=check.ngx,ss -lntup|grep -w 80|wc -l 2. 重启客户端 3. 客户端本地测试键值 zabbix_agent2 -t check.ngx check.ngx [s|1] s表示类型 文字 1表示结果 键值的结果

zabbix_agent2.conf里面有==Include=/etc/zabbix/zabbix_agent2.d/*.conf==修改后记得重启zbx客户端

服务端

服务端手动测试

yum install -y zabbix-get zabbix_get 向客户端要指定键值的数据。

image-20220719135015802

image-20220719135021153

web页面:创建监控项

  • 把客户端创建的键值与zbx服务端监控项关联起来。
  • 创建监控项

  • 配置监控项名字,填写:键值

信息类型:这里键值结果都是数字,选择数字(无正负即可),如果有小数选择浮点类型,如果是字符,选择字符串。

更新间隔:这里调整为5s,生产环境非必须尽量增长间隔比如1m、10m、1h等等。

image-20220719135034215

  • 历史数据与趋势数据

image-20220719135042120

  • 监控项配置信息汇总

image-20220719135048410

  • 进行监控项测试

image-20220719135057219

  • 测试结果

image-20220719135108146

  • 添加监控项完成,查看添加的监控项

image-20220719135115586

  • 添加监控项完成,查看最新数据与图形

image-20220719135222982

image-20220719135240248

image-20220719135248894

web页面:触发器

根据监控项获取的数值(内容),决定是否要告警、是否要提示异常

  • 创建触发器

image-20220719135256962

  • 配置触发器名字,严重程度和表达式

  • 表达式配置详情

image-20220719135326158

  • 配置完成后的触发器设置

image-20220719135411207

  • 添加完成后的触发器配置

图片

  • 出现故障后的提示

image-20220719135432655

  • 可以确认故障

image-20220719135448317

补充 仪表盘数据刷新调整

image-20220719135457755

监控项键值获取的数据 等于 0 表示异常 zbx 6.0 写法 last(/web01/check.ngx) = 0 zbx 5.x及之前的写法 { web01:check.ngx.last() } = 0 {主机:key.功能} = 0

web页面:添加图形

  • 添加图形

image-20220719135509549

  • 配置图形名字与添加监控项

image-20220719135520937

  • 查看图形的预览(监控项要已经获取到数据才行)

image-20220719135531201

  • 检查图形

image-20220719135550101

自定义监控小结

用一句话形容自定义监控:只要能通过命令、脚本取出来的东西就可以自定义监控。

  • 客户端 通过命令/脚本取出想要内容,创建键值key,写入配置文件,客户端检测(zabbix_agent);
  • 服务端 命令测试键值(zabbix_get) ,web页面:添加监控项,添加触发器,添加图形
  • 调试

*常用键值与触发器函数*

键值

image-20220719135626444

zabbix_get -s 172.16.1.7 -k net.if.in[eth0,] zabbix_get -s 172.16.1.7 -k proc.num[nginx] zabbix_get -s 172.16.1.7 -k net.tcp.port[,80]

image-20220719135658666

触发器函数

image-20220719135725805

last(/Zabbix server/vfs.file.cksum[/etc/passwd,sha256],#1) <> last(/Zabbix server/vfs.file.cksum[/etc/passwd,sha256],#2)
max(/Zabbix server/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Zabbix server/vm.memory.size[total])>0 最近5分钟可用内存小于 指定的值 max(/Zabbix server/vm.memory.size[available],5m) < {$MEMORY.AVAILABLE.MIN} and 并且 内存大小大于0 last(/Zabbix server/vm.memory.size[total])>0

自定义监控-参数案例

image-20220719135755656

客户端

  • 使用命令
lastlog |grep root |awk '{print $3}' root未来可能是其他用户.
  • 书写键值key
UserParameter=key,cmd UserParameter=user.login.check[*],lastlog |grep "$1" |awk '{print $3}'
  • 书写与测试
[root@web01 ~]# cat /etc/zabbix/zabbix_agent2.d/web.conf #UserParameter=key,cmd #UserParameter=check.ngx,sh /server/scripts/xxx.sh UserParameter=check.ngx,ss -lntup|grep -w 80|wc -l UserParameter=user.login.check[*],lastlog |grep -w "$1" |awk '{print $$3}' [root@web01 ~]# systemctl restart zabbix-agent2.service [root@web01 ~]# zabbix_agent2 -t user.login.check[root] user.login.check[root] [s|10.0.0.1]

如果没有自定义键值传参,awk取列的时候要使用$$列。

如果没有传参,awk正常使用即可

  • 理解自定义键值的传参

image-20220719135805506

服务端

[root@m03-zabbix-server-lidao996 ~]# zabbix_get -s 172.16.1.7 -k user.login.check[root] 10.0.0.1
  • web添加监控项

image-20220719135814269

image-20220719135823354

  • web触发器
最近1个值和上一个值是否一致(不一致) last(/web01/user.login.check[root],#1) <> last(/web01/user.login.check[root],#2)

image-20220719140020634

image-20220719140027895

使用模板

  • 通过创建自定义模板实现,监控项,触发器,图形批量使用。

步骤如下:

创建模板->添加自定义监控项->添加触发器->添加图形->模板关联主机->客户端配置自定义键值

创建模板

image-20220719140033925

  • 创建模板

image-20220719140040473

  • 演示:在模板中创建变量(宏)

image-20220719140044451

  • 检查模板信息

image-20220719140054183

添加自定义监控项

  • 进入主机中复制即可

image-20220719140109715

  • 选择要复制的监控项,选择复制即可(可批量多选)

image-20220719140113844

  • 选择复制到模板中

image-20220719140120150

  • 提示复制成功

image-20220719140123776

  • 检查模板中监控项部分:多了2个监控项

image-20220719140128114

复制触发器与图形

  • 主机->触发器

image-20220719140132544

  • 复制

image-20220719140140143

  • 检查模板

image-20220719140146297

模板关联主机

  • 进入主机中,批量选择要添加模板的主机,批量更新

image-20220719140149688

  • 选择模板部分

image-20220719140158666

  • 添加模板关联主机成功

image-20220719140203291

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Gustav

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!