首页 > 其他分享 >Zabbix5.0版本(自定义监控+报警+图版模型)

Zabbix5.0版本(自定义监控+报警+图版模型)

时间:2025-01-04 18:32:08浏览次数:8  
标签:agentd 自定义 Zabbix5.0 图版 zabbix Web01 监控 root

目录

1.自定义监控

(1)监控系统登入数量

(2)监控TCP 22端口是否存活,并做值映射

(3)自定义监控服务器内存百分比

(4)配置多条件触发

2.自定义报警

(1)配置邮件发件人,我用的qq邮箱,在设置账户里,开启服务,邮箱同理

(2)配置报警媒介类型

(3)开启动作

(4)配置收件人

(5)dd压测是否发送邮箱

(6)自定义告警内容

(7)远程执行命令

(8)微信报警

3.自定义图形

(1)自定义监控项创建图形

(2)聚合图形

(3)幻灯片演示

4.自定义模块

(1)创建模块

(2)复制自定义监控项配置为模板

(3)复制触发器

(4)复制图形

(5)新建一台服务器关联自定义模板linux-server


zabbix功能很强大,只要是能获取到的数据都可以监控,俗称万物可监控,这也就决定了zabbix有很大的自由度,本篇文章包括自定义监控,自定义报警,自定义图形,自定义模板。

1.自定义监控

通过获取系统信息来定义zabbix的监控项,配置zabbix触发器发送告警通知。

(1)监控系统登入数量

首先获取用户登入系统数量

[root@Web01 ~]# w
 19:25:02 up 2 days,  4:00,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      30Mar23 10:37m  0.55s  0.51s bash
root     pts/0    10.0.0.1         11:17    6.00s  0.35s  0.02s w
[root@Web01 ~]# w|grep users|awk '{print $(NF-6)}'
2

定义为zabbix的监控项

#配置zabbix文件
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf
UserParameter=login_number,w|grep users|awk '{print $(NF-6)}'    #=后面是固定格式
#查看监控项,有语法检查功能
[root@Web01 ~]# zabbix_agentd -p|grep login_number
login_number                                  [t|2]
#重启客户端
[root@Web01 ~]# systemctl restart zabbix-agent

使用zabbix服务器端进行采集监控

服务端通过命令行测试是否通过监控项来获取用户自定义的值

[root@Zabbix ~]# yum -y install zabbix-get
[root@Zabbix ~]# zabbix_get -s 172.16.1.7 -p 10050 -k login_number
2

(2)监控TCP 22端口是否存活,并做值映射

检查TCP端口是否处于侦听状态,返回0未侦听,返回1正在侦听

#zabbix5.0版本不支持netstat命令需要加s权限
[root@Web01 ~]# chmod +s /bin/netstat
[root@Web01 ~]# netstat -tnulp|grep 0.0.0.0:22|wc -l
1
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf
UserParameter=login_number,w|grep users|awk '{print $(NF-6)}'
UserParameter=tcp_listen_22,netstat -tnulp|grep '0.0.0.0:22'|wc -l
[root@Web01 ~]# zabbix_agentd -p|grep tcp_listen_22
tcp_listen_22                                 [t|1]
[root@Web01 ~]# systemctl restart zabbix-agent

端口正常监听状态

停止服务

[root@Web01 ~]# systemctl stop sshd

自定义配置展示值映射

恢复端口侦听

[root@Web01 ~]# systemctl start sshd

(3)自定义监控服务器内存百分比

自定义监控项

[root@Web01 ~]# free|awk 'NR==2{print $NF/$2*100}'
51.5489
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/system.conf 
UserParameter=login_number,w|grep users|awk '{print $(NF-6)}'
UserParameter=tcp_listen_22,netstat -tnulp|grep '0.0.0.0:22'|wc -l
UserParameter=mem_free,free|awk 'NR==2{print $NF/$2*100}'
[root@Web01 ~]# systemctl restart zabbix-agent
[root@Web01 ~]# zabbix_agentd -p|grep mem_free
mem_free                                      [t|51.3581]

服务端测试获取key值并添加监控

[root@Zabbix ~]# zabbix_get -s 172.16.1.7 -p 10050 -k mem_free
51.536

内存可用百分比小于20%,则触发报警规则

使用dd压测消耗内存

[root@Web01 zabbix_agentd.d]# dd if=/dev/zero of=/dev/null bs=600M count=1024

(4)配置多条件触发

添加swap可用百分比

[root@Web01 zabbix_agentd.d]# free -m|awk 'NR==2{print $
19.856
[root@Web01 zabbix_agentd.d]# cat /etc/zabbix/zabbix_agentd.d/system.conf 
UserParameter=login_number,w|grep users|awk '{print $(NF-6)}'
UserParameter=tcp_listen_22,netstat -tnulp|grep '0.0.0.0:22'|wc -l
UserParameter=mem_free,free|awk 'NR==2{print $NF/$2*100}'
UserParameter=swap_free,free -m|awk 'NR==2{print $3/$2*100}'
[root@Web01 zabbix_agentd.d]# systemctl restart zabbix-agent

添加触发器,先添加一个,再点击表达式构造器,再添加另一个

使用dd压测,并查看仪表盘 

[root@Web01 zabbix_agentd.d]# dd if=/dev/zero of=/dev/null bs=600M count=1024

2.自定义报警
(1)配置邮件发件人,我用的qq邮箱,在设置账户里,开启服务,邮箱同理

(2)配置报警媒介类型

(3)开启动作

(4)配置收件人

(5)dd压测是否发送邮箱
[root@Web01 zabbix_agentd.d]# dd if=/dev/zero of=/dev/null bs=700M count=1024

(6)自定义告警内容
故障操作
默认标题:
故障: {EVENT.NAME}
消息内容:
报警主机: {HOST.NAME1}
报警服务: {ITEM.NAME}
报警key1: {ITEM.KEY1}: {ITEM.VALUE1}
报警key2: {ITEM.KEY2}: {ITEM.VALUE2}
严重级别: {TRIGGER.SEVERITY}
 
恢复操作
默认标题:
恢复: {EVENT.NAME}
消息内容:
恢复主机: {HOST.NAME1}
恢复服务: {ITEM.NAME}
恢复key1: {ITEM.KEY1}: {ITEM.VALUE1}
恢复key2: {ITEM.KEY2}: {ITEM.VALUE2}

自定义操作

自定义恢复操作

 dd压力测试并查看邮箱

(7)远程执行命令

因为zabbix服务启动用户为zabbix,所以在远程执行命令时,需要sudo提权

[root@Web01 ~]# grep zabbix /etc/sudoers
root    ALL=(ALL)       ALL
zabbix ALL=(ALL) NOPASSWD: ALL        
 
#测试zabbix权限
[root@Web01 ~]# su - zabbix -s /bin/bash
Last login: Mon May  8 22:16:48 CST 2023 on pts/0
-bash-4.2$ sudo systemctl restart sshd
 
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.conf|grep EnableRemoteCommands
### Option: EnableRemoteCommands - Deprecated, use AllowKey=system.run[*] or DenyKey=system.run[*] instead
EnableRemoteCommands=1
 
[root@Web01 ~]# systemctl restart zabbix-agent

[root@Web01 ~]# systemctl stop sshd

(8)微信报警

配置脚本文件

#需要用到weixin.py脚本和get-pip.py脚本
vim weixin.py
#修改三行内容,具体信息,参考自己的企业微信
corpid='xxx'
appsecret='xxx'
agentid=1xx
 
[root@Zabbix ~]# python get-pip.py        #报错是网络问题,重新执行
[root@Zabbix ~]# pip install requests
[root@Zabbix ~]# python weixin.py  '告警'     #姓名,首字母大写
 
[root@zabbix ~]# mv weixin.py /usr/lib/zabbix/alertscripts/        #移动至zabbix指定的目录
[root@zabbix ~]# chmod +x /usr/lib/zabbix/alertscripts/weixin.py    #给予执行权限

企业微信后台需要添加小程序,添加可信域名(需备案),添加可信IP(zabbix的所在网络的公网IP,curl cip.cc) 

配置报警媒介类型

增加用户的告警媒介,填写收件人

配置动作添加微信媒介进行告警测试

3.自定义图形
(1)自定义监控项创建图形

(2)聚合图形

更改可更换图标,加号可添加行列,减号可删除行列

(3)幻灯片演示

点击即可放映

4.自定义模块
(1)创建模块

创建模板的作用,主机和模板分离,多台服务器监控相同项目只调用一个模板即可,修改监控项修改模板即可完成对所有服务器的操作。

(2)复制自定义监控项配置为模板

找到之前web01的主机监控项,选中点击复制

(3)复制触发器

与监控项同理,进行复制 

(4)复制图形

与监控项、触发器同理,注意:应用集根据需求也可以进行复制

自定义配置的模板信息

(5)新建一台服务器关联自定义模板linux-server
[root@Web01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
 
[root@Web02 ~]# yum -y install zabbix-agent
[root@Web02 ~]# cat /etc/zabbix/zabbix_agentd.conf|grep Server=
#	Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
# Server=
Server=172.16.1.71
 
[root@Web01 ~]# scp /etc/zabbix/zabbix_agentd.d/system.conf 10.0.0.8:/etc/zabbix/zabbix_agentd.d/
 
[root@Web02 ~]# systemctl start zabbix-agent

 各项都监控到了

图形也监控到了

标签:agentd,自定义,Zabbix5.0,图版,zabbix,Web01,监控,root
From: https://blog.csdn.net/2301_76966984/article/details/144878400

相关文章

  • 周选择器 vxe-date-picker 自定义一周开始日
    周选择器vxe-date-picker自定义一周开始日官网:https://vxeui.com周一开始<template><div><vxe-date-pickerv-model="val1"placeholder="周选择,周一开始"type="week":start-day="1"></vxe-date-picker></div......
  • 自己常用的一些Camstar Portal 自定义CSS
    按钮样式/**********************************************************************************************Button**********************************************************************************************/.lucas-cs-button-primary{height:32......
  • 自定义类型 --- 结构体
    结构体:结构体的声明:structbook{ charname[20];//书名 charauthor[20];//作者 floatprice;//几个 charid[20];//书号};通过以上操作,我们就完成了一个结构体的声明。其中,struct是结构体的关键字,book为结构体的标签名(可以自定义),nameauthor等为结构体成员。结......
  • c语言中的自定义类型
    目录1.结构体1.1结构体的定义1.2结构体成员的初始化  1.3结构体的自引用 1.4结构体的内存对齐 2.联合 3.枚举   c语言中的自定义类型有四种,分别是结构,联合,枚举和typedef,今天主要来讲讲他们。1.结构体1.1结构体的定义关键字struct 1.2结构体成员的......
  • 【自定义控件】Qt/C++ 双侧聊天对话框控件
    1.项目简介本项目实现了一个基于Qt的双侧对话框控件,用于模拟聊天窗口。支持动态添加文字和图片消息,并实现消息的左右对齐、头像和用户名显示、时间戳显示等功能。用户还可以自定义背景颜色、背景图片、字体样式和字体颜色。可控件提升直接使用可联系博主获取源码发......
  • Vue 自定义指令
    一、定义语法1、局部//简单,只需要指令语法绑定元素和指令语法所在模块加载时使用nevVue({...,directives:{//element指令绑定的dom,binding获取value指令名(element,binding){},},}//详细,指令绑定元素、元素加载到页面、指......
  • 为Feign客户端自定义ErrorDecoder
    摘要:重写Feign的错误解码器ErrorDecoder,以自定义业务逻辑。  ErrorDecoder,顾名思义,它是发生错误或者异常情况时使用的一种解码器,允许我们对异常进行特殊处理。  在配置Feign客户端时,通过自定义错误解码器ErrorDecoder可以让我们自由自在地决定如何处理来自服务器的错误响应......
  • 雷池WAF添加自定义规则时,当匹配目标是 url,匹配内容 包含 # 时,# 后面的内容会被忽略
    原因后面的部分不会被当作请求发送到服务器,部署在服务器侧的雷池自然也无法接收到。解决方案一般vue的哈希路由模式会出现这种情况,建议用户改用vue的history模式参考在Vue.js中Vue路由管理器(VueRouter)支持两种模式:哈希模式和HTML5History模式。默认情况下,VueRo......
  • 《深入挖掘Python加解密:自定义加密算法的设计与实现》
    利用python实现加解密在正式编写各种加解密前,我们先写个小案例,如下。封面在文末呦!基础加解密-源码# 加密def encode():    source01 = '乐茵'    for c in source01:        ascii01 = ord(c)        ascii01 += 1      ......
  • Log4net自定义配置说明及排错方法
    1、日志记录到数据库时,如对应日志表无日志,可通过如下方式排查:      A、检查数据库的连接事件日志,如无任何事件,则表明数据库连接失败,这时需要排查log4net.config的配置;如有事件,则将对应InsertSql直接在数据库内执行,排查对应SQL错误即可。      B、在AspnetCore中......