当前位置: 首页 > news >正文

Zabbix配置自动发现

一、UI界面配置自动发现

 数据采集->自动发现->创建发现规则

创建发现规则

添加类型

  

自动发现常用的键

  1. 操作系统相关

Linux

system.uname:键通常用于获取系统相关的信息,包括操作系统名称、内核版本等

net.if.discovery:自动发现网络接口,可用于监控网卡的流量、状态等信息。

vfs.fs.discovery:发现文件系统,方便监控磁盘空间使用情况、文件系统类型等。

proc.discovery:用于发现正在运行的进程,有助于监控进程的资源占用和状态。

service.discovery:发现系统服务,可对服务的启动、停止等状态进行监控。

hw.sensor.discovery:自动检测硬件传感器,例如温度和风扇转速传感器,用于硬件状态监测。

user.discovery:发现系统用户,能用于监控用户登录活动等安全相关内容。

Windows

net.if.discovery:同Linux下的功能类似,用于发现网络接口。

vfs.fs.discovery:发现文件系统,可监测磁盘分区等情况。

win_service.discovery:专门用于发现Windows服务,方便对服务状态进行监控。

proc.discovery:发现运行的进程,可用于监控进程资源占用等情况。

user.discovery:发现系统用户,用于安全监控等。

数据库相关

mysql.discovery:自动发现MySQL数据库的对象,如数据库、表等,用于监控数据库性能、连接数等指标。

oracle.discovery:用于发现Oracle数据库中的实例、表空间、数据文件等对象,可对数据库性能和状态进行监控。

postgres.discovery:能发现PostgreSQL数据库中的数据库、表、索引等对象,方便监控数据库的资源使用和查询性能。

中间件相关

tomcat.discovery:自动发现Tomcat中间件中的应用程序、Servlet、JSP页面等,可用于监控Tomcat的运行状态和性能指标。

rabbitmq.discovery:用于发现RabbitMQ消息队列中间件中的队列、交换机、绑定关系等,方便对消息队列的长度、消息收发速率等进行监控。

容器相关

docker.container.discovery:自动发现主机上运行的Docker容器,包括容器名称、ID、状态等信息,可用于监控容器资源使用情况和内部应用性能。

kubernetes.pod.discovery:用于发现Kubernetes集群中的Pods,包括Pod名称、命名空间、状态、IP地址等,可对Pods的资源使用和容器运行状态进行监控。

网络设备相关

snmp.if.discovery:如果设备支持SNMP协议,可自动发现网络设备的接口,用于监控接口的流量、状态等。

snmp.vlan.discovery:通过SNMP协议自动发现网络设备上的VLAN信息,包括VLAN ID、VLAN名称、VLAN成员端口等,用于监控VLAN相关的流量和端口状态。

cisco.config.discovery(主要用于Cisco设备):自动发现设备的配置信息,如接口配置、路由配置、访问控制列表等,用于及时发现设备配置变更。

云平台相关

aws.ec2.discovery:自动发现亚马逊AWS EC2实例的相关信息,如实例ID、实例类型、状态、IP地址等,可用于监控EC2实例的性能指标。

azure.vm.discovery:用于发现微软Azure云平台虚拟机的基本信息和性能指标,如虚拟机名称、状态、资源组、CPU使用率、磁盘I/O等,方便对虚拟机进行管理和监控。

主机做好环境部署 

 

 更改zabbix配置文件

 

启动zabbix-agent

[root@localhost ~]# systemctl start zabbix-agent.service 

其他主机同上

注意:防火墙和SElinux环境需要提前设置

Rocky9 yum源下载 

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpmyum install -y zabbix-agent

UI界面观察

 

添加动作

 

发现动作 

选择创建的规则 

点击操作,添加动作

 

选择群组

再次添加操作,选择模板

查看效果

 

 自动注册部署

添加触发条件 

添加动作 主机群组

模版链接

自动注册动作设置完成 

pc1安装zabbix-agent,并更改配置文件 

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf 

 

 启动服务

[root@localhost ~]# systemctl start zabbix-agent.service 

 查看状态

 

二、邮件告警设置

1.邮箱设置

登录163邮箱,设置邮箱调用授权码

复制授权码  查看SMTP服务器地址

2、Zabbix Server UI界面设置告警

告警->媒介->创建媒介类型  

 

  测试邮件能否正常发送

 

3、设置调用用户

用户->用户->

 

 

4、设置触发器

数据采集->主机或模版->触发器->创建触发器(假如有触发器可跳过该步骤!!)  

5、添加动作

动作的作用是将触发器与告警配置联系在一起。

告警->动作->触发器动作->创建动作

设置触发操作

设置恢复操作

三、设置钉钉告警

  • 登录钉钉 
  • 创建钉钉群

手机电脑都可以,这里使用电脑端钉钉举例

 

随便拉几个好友创建一个群

 

添加机器人,设置警告词

 

 

点击添加

 

 

生成webhook(请保管好webhook的值;后面需要用到。)

请保管好webhook的值;后面需要用到。

 

服务器上操作

 配置钉钉脚本

#将脚本写在/usr/lib/zabbix/alertscripts/目录下
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts/##安装python或者python3
[root@zabbix alertscripts]# yum install python3[root@zabbix alertscripts]# vim dingding.py

注意:这里需要提前安装好这几个python模块:requests、json、sys、os、datetime

安装方式为:pip3 install requests 以此类推;

如遇到以下报错就是没有安装requests模块,就需要pip安装一下;

 

#!/usr/bin/env python
# -*- coding: utf-8 -*- 
import requests
import json
import sys
import os
import datetime
import logging# 配置日志(修复路径)
LOG_FILE = "/usr/lib/zabbix/alertscripts/log/dingding.log"
LOG_DIR = os.path.dirname(LOG_FILE)if not os.path.exists(LOG_DIR):os.makedirs(LOG_DIR, exist_ok=True)logging.basicConfig(filename=LOG_FILE,format='%(asctime)s - %(message)s',level=logging.INFO
)webhook = "https://oapi.dingtalk.com/robot/send?access_token=ddd766d19bf8151b84732db8bc88a9ec0f19f2bbd9791d7583397eb110f407b7"
user = sys.argv[1]
subject = sys.argv[2] + " "  # 确保主题与内容分离
text = sys.argv[3]# 转义特殊字符
safe_text = text.replace("<", "&lt;").replace(">", "&gt;")data = {"msgtype": "text","text": {"content": f"{subject}{safe_text}"},"at": {"atMobiles": [user],"isAtAll": False}
}headers = {'Content-Type': 'application/json'}
status = "未知"try:# 增加超时和重试response = requests.post(webhook,data=json.dumps(data),headers=headers,timeout=5)# 记录完整响应logging.info(f"请求数据: {json.dumps(data)}")logging.info(f"钉钉响应: {response.status_code} {response.text}")if response.status_code == 200:result = response.json()if result.get("errcode") == 0:status = "发送成功"else:status = f"钉钉错误: {result.get('errmsg')}"else:status = f"HTTP错误: {response.status_code}"except Exception as e:status = f"异常错误: {str(e)}"logging.error(status)# 最终记录结果
logging.info(f"{datetime.datetime.now()} | {user} | {status}")
print(status)  # Zabbix需要标准输出
#为脚本添加执行权限
[root@zabbix alertscripts]# chmod +x dingding.py#修改脚本的属主和属组:
[root@zabbix alertscripts]# chown zabbix.zabbix dingding.py

创建日志文件

[root@zabbix alertscripts]# mkdir -p /usr/lib/zabbix/log/[root@zabbix alertscripts]# touch /usr/lib/zabbix/log/dingding.log[root@zabbix alertscripts]# chown zabbix.zabbix -R /usr/lib/zabbix/log/

 测试脚本是否能够运行成功

注意关键词

#py脚本 手机号 关键词 告警信息
./dingding.py 12312312312 告警 test

手机号写的正确的话就可以直接@他,如果随便写的就不会输出,如下图的上(正确手机号)、下(错误手机号)  

 成功接收到信息,完成!

 

web页面操作

管理–>报警媒介类型–>创建媒体类型

变量 

{ALERT.SUBJECT}
{ALERT.MESSAGE}
{ALERT.SENDTO} 

 

 

配置–>动作–>创建动作

 

 

 

#告警操作内容:
##标题:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
##消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}#恢复操作内容
##标题:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
##消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}

操作添加

 

恢复操作添加:

 

 

个人中心–>报警媒介–>添加  

 

钉钉接收告警信息测试

自己设置好服务器的监控项触发器,让他告警;  

 成功收到,完成!!!

 

http://www.dtcms.com/a/297395.html

相关文章:

  • 二分查找-268.丢失的数字-力扣(LeetCode)
  • 火候:烹饪的温度密码
  • DNF: Decouple and Feedback Network for Seeing in the Dark
  • Java线程基础面试复习笔记
  • 主要分布在背侧海马体(dHPC)CA1区域(dCA1)的时空联合细胞对NLP中的深层语义分析的积极影响和启示
  • 高级06-Java网络编程:从Socket到HTTP
  • 数据结构3-单双链表的泛型实现及ArrayList与LinkedList的区别
  • VUE懒加载(4种方式)
  • 深入理解 BIO、NIO、AIO
  • Java并发编程第十篇(ConcurrentHashMap组件分析)
  • Zabbix7设置告警
  • SQL基础⑭ | 变量、流程控制与游标篇
  • 从语言关联到事件推演的跃迁之路-语义图谱、知识图谱与事理图谱:认知的三维拼图
  • IA课程作业
  • C++调用GnuPlot一维绘图
  • 后端项目中大量 SQL 执行的性能优化
  • Oracle 19C Data Guard :从原理到实践的高可用解决方案
  • 在VSCode配置Java开发环境的保姆级教程(适配各类AI编程IDE)
  • CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服务器
  • 电科金仓新一代数据库一体机:以 “云数据库 - AI 版” 引领 AI 时代数据库变革
  • 文心4.5开源之路:从封闭到开放的力量
  • PHP 面向对象
  • HTML:从 “小白” 到 “标签侠” 的修炼手册
  • vue 渲染 | 不同类型的元素渲染的方式(vue组件/htmlelement/纯 html)
  • 低空飞行调度系统
  • STM32-PWM输入捕获的配置
  • 私有化大模型架构解决方案构建指南
  • js实现宫格布局图片放大交互动画
  • 文件包含学习总结
  • 数据库设计双刃剑:范式规范与反范式性能的终极权衡