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

【Day 68】Zabbix-自动监控-Web检测-分布式监控

一、自动监控

        当被监控机数量过多时,手动添加主机效率极低,通过自动注册(常用) 或 自动发现 可实现批量监控。

维度自动注册(Auto-Registration)自动发现(Auto-Discovery)
交互方向

    被管理节点主动向控制节点上报

(如 Zabbix Agent 主动连 Server)

   控制节点主动扫描目标网络 / 范围

(如 Zabbix Server 扫 192.168.1.0/24)

身份确认被管理节点携带 “预设标识”(如密钥、主机名规则),控制节点验证后接入控制节点先扫描到 “存活节点”,再通过额外规则(如端口、服务)筛选目标
依赖配置被管理节点需配置 “控制节点地址 + 标识”,控制节点配置 “验证规则”控制节点需配置 “扫描范围(IP 段 / 域名)+ 发现规则(端口 / 服务检测)”
资源消耗低(仅节点上线时主动上报,无持续扫描)高(控制节点需周期性扫描网络,规模越大消耗越高)

(一)自动发现

        自动发现 是 Zabbix Server 主动探测指定网络范围或资源,自动识别并添加符合条件的监控对象(如服务器、交换机、数据库实例、端口等)的功能。

维度配置 → 自动发现(Discovery Rules)配置 → 动作 → 自动发现(Discovery Actions)
核心功能主动探测并记录符合条件的监控对象(仅发现)处理发现结果,自动执行创建主机等操作(处理)
依赖关系独立存在,仅负责探测,不依赖 “动作”必须依赖 “发现规则”,否则无对象可处理
配置重点IP 范围、探测方式、扫描频率触发条件、自动执行的操作(创建主机、链接模板等)
常见误区认为 “创建规则就会自动添加主机”(实际不会)认为 “动作可以独立发现对象”(实际需要规则先发现)

(二)自动注册

1. 在 Zabbix Server 端创建自动注册动作

        自动注册的本质是:Zabbix Agent 主动向 Server 上报信息,Server 通过 “动作规则” 自动将 Agent 归属到对应主机组、链接模板,无需手动操作。

操作步骤:

(1)登录 Zabbix Web 后台 → 进入 配置 → 动作 → 选择 “自动注册” 标签页 → 点击 “创建动作”

(2)配置 “动作名称” 与 “触发条件”(精准匹配目标 Agent):

  • 动作名称:建议明确,如 “Linux 主机自动注册”;
  • 触发条件(示例,可按需调整):可为空
    • 条件 1:主机元数据 等于 Linux-Agent(需在 Agent 配置文件中预设元数据,便于分类);
    • 条件 2:Agent版本 大于等于 6.0(过滤低版本 Agent,避免兼容性问题);
    • 逻辑关系:所有条件 “与”(确保只匹配目标主机)。

(3)配置 “操作”(自动完成主机初始化)

  • 点击 “操作” 标签页 → 点击 “添加”,设置具体操作:
    • 操作 1:添加主机(自动在 Server 中创建对应主机,主机名默认使用 Agent 配置的Hostname);
    • 操作 2:将主机添加到主机组(选择预设的主机组,如 “Linux 业务服务器组”);
    • 操作 3:链接模板(自动关联监控模板,如 “Template OS Linux”);

(4)点击 “添加” 保存动作,Server 端自动注册规则生效。

2. 在业务服务器上部署 Zabbix Agent

[root@host_21 ~]# cat > /etc/yum.repos.d/zabbix.repo << EOF
> [zabbix]
> name=zabbix
> baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/
> enabled=1
> gpgcheck=0
> EOF
[root@host_21 ~]# yum install -y zabbix-agent 

        Agent 需确保配置正确以触发自动注册:

核心配置(Agent 配置文件:zabbix_agentd.conf,路径通常为/etc/zabbix/):

[root@host_21 ~] vim /etc/zabbix/zabbix_agentd.conf # 1. 指定Zabbix Server地址(Agent向此地址上报数据)
Server=Z192.168.140.22 # 如 (Server端IP)
# 2. 配置主机名(需唯一,建议与业务服务器 hostname 一致)
Hostname=za_node02  # 示例:被监控机的主机名
# 3. 配置元数据(与Server端自动注册触发条件匹配)
# HostMetadata=Linux-Agent  # 需与Server动作中“主机元数据”条件完全一致
# 4. 启用主动模式(自动注册依赖主动上报,必须开启)
# StartAgents=0  # 关闭被动模式(仅主动上报)
ServerActive=192.168.140.22  # 主动向Server上报的地址,同Server字段[root@host_21 ~] systemctl enable --now zabbix-agent.service 
#Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.[root@host_21 ~] netstat -tunlp |grep 10050
# tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      16106/zabbix_agentd 
# tcp6       0      0 :::10050                :::*                    LISTEN      16106/zabbix_agentd 

部署后验证:

  • 重启 Agent 服务:systemctl restart zabbix-agent;
  • 查看 Agent 状态:systemctl status zabbix-agent,确保 “active (running)”;
  • 查看 Agent 日志(排查注册失败):tail -f /var/log/zabbix/zabbix_agentd.log,无 “connection refused” 等错误即正常。
  • “no active checks on server ... host not found”→ 说明 Agent 已发送请求,但 Server 中无对应主机且自动注册动作未生效(回到步骤二检查动作条件)。

  • “connection refused” 或 “timeout”→ 网络不通或 Server 10051 端口未开放(回到步骤一解决通信问题)。

  • “Host [za_node02] already exists”→ Server 中已有同名主机(可能之前手动创建过),但状态为 “禁用” 或 “未链接模板”,需在 Server 中删除该主机后重试

3. 查看自动添加的主机(验证结果)

进入 Zabbix Web 后台 → 配置 → 主机,可看到:

  • 自动注册的主机已出现在列表中,“状态” 为 “已启用”;
  • “主机组” 和 “链接的模板” 与 Server 端动作配置一致;
  • 点击主机名,进入 “监测数据” 标签页,可看到 CPU、内存等监控数据已正常采集(通常需等待 1-5 分钟,取决于模板采集周期)。
  • 若连通性正常,等待监控项采集周期(默认 1 分钟),前端可用性会自动更新为绿色。

二、Web 监测

//(监控 Web 业务访问质量)

        针对 Web 服务(如官网、业务系统),通过 Web 监测可实时监控响应时间、访问成功率、页面元素加载速度等关键指标,及时发现 “打不开、加载慢” 等问题。

1. 创建 Web 场景(核心配置)

        Web 场景是 Web 监测的基本单元,一个场景可包含多个 “步骤”(如 “访问首页→点击登录→验证登录成功”),模拟用户真实访问流程。

操作步骤:

(1)登录 Zabbix Web 后台 → 进入 配置 → 主机,选择需添加 Web 监测的主机(如 “Web 服务器”)→ 点击 “Web 场景” 标签页 → 点击 “创建 Web 场景”;

(2)配置场景基础信息

  • 名称:如 “Web 业务首页访问监测”;
  • 应用集:选择或创建应用集,如 “Web 监测”(便于分类查看数据);
  • 更新间隔:监测周期,如 “30 秒”(根据业务重要性调整,核心业务可设 10-30 秒);
  • 尝试次数:如 “2”(一次失败后重试,避免网络波动误报)。
  • 代理(可选):若需通过代理监测,选择对应 Zabbix Proxy,默认 “无”;

(3)添加 “场景步骤”(模拟用户访问)

  • 点击 “步骤” 标签页 → 点击 “添加”,配置步骤 1(如 “访问 Web 首页”):
    • 名称:“访问首页”;
    • URL:输入 Web 首页地址,如 “http://192.168.140.30:8080”(需包含协议、IP / 域名、端口);
    • 方法:默认 “GET”(获取页面数据,提交表单用 “POST”);
    • 响应超时:如 “5 秒”(超过 5 秒判定为访问超时,触发报警);
    • 所需状态码:选择 “200”(HTTP 200 表示访问成功,若需匹配多个码,可选 “200,301”);
  • (可选)添加步骤 2(如 “验证首页关键词”):
    • 名称:“验证首页包含‘登录’关键词”;
    • URL:同步骤 1;
    • 检查类型:选择 “内容检查”;
    • 检查:“存在” → 输入关键词 “登录”(确保页面正常加载,避免出现空白页)。

(4)点击 “添加” 保存场景,Web 监测生效。

2. 查看 Web 监测数据与配置报警

(1)查看实时数据

进入 监测 → 主机 → 选择 Web 监测的主机 → Web检测

(2)配置 Web 监测报警(避免遗漏故障)

当 Web 访问超时、响应码异常时,需自动报警,配置逻辑与 “主机故障报警” 一致:

① 进入 配置 → 主机 →  触发器 → 创建触发器

  • 名称:“Web 首页访问超时”;
  • 表达式:{Web服务器:web.test.time[Web业务首页访问监测,访问首页,time].last()}>5(响应时间超过 5 秒触发报警);
  • 严重性:设为 “High”(Web 故障影响用户,优先级较高)。

② 将触发器关联到之前的 “主机故障报警” 动作(或单独创建 Web 报警动作),确保报警能通过 SMTP 邮箱发送。

三、Zabbix分布式监控部署

        分布式架构由三部分组成:Zabbix Server(核心节点)、Zabbix Proxy(代理节点)和 Zabbix Agent(被监控节点)。Proxy 节点负责与 Agent 通信并暂存监控数据,定期将数据同步至 Server 端。

        Zabbix 分布式监控通过引入 Proxy 节点,解决了单 Server 架构在大规模监控场景下的瓶颈问题。作用:

(1)减轻 Zabbix Server 的负载压力,将数据采集任务分散到 Proxy 节点

  • 场景示例:监控 1000 台跨机房服务器,部署 2 个 Proxy 分别接管 2 个机房的采集,Server 负载仅相当于单 Server 监控 300 台的水平。

(2)降低跨机房 / 跨地域网络带宽消耗,Proxy 可在本地收集数据后批量上报

  • 场景示例:北京 Server 监控上海机房的 50 台服务器,部署上海 Proxy 后,跨地域带宽仅需承载 Proxy 批量上报的聚合数据,而非 50 台设备的实时原始数据。

(3)提高监控系统可用性,局部网络故障不会影响整个监控体系。

  • 场景示例:深圳 Proxy 所在服务器意外断电,深圳机房的监控数据会暂存于 Proxy 本地(若配置了 MySQL 缓存),断电 1 小时恢复后,Proxy 自动补传 1 小时内的所有数据,Server 无需重新配置。

(4)弹性拓展:随监控规模动态扩容

  • ​​​​新增机房 / 区域时,只需部署新的 Proxy 节点,配置其 “负责的 IP 段” 和 “Server 地址”,即可接入监控体系;

(一) 环境描述

本次部署采用以下环境配置:

角色

操作系统

IP 地址

主要组件

Zabbix Server

CentOS 7.9

192.168.140.22

Zabbix Server 5.0、MySQL 8.0、PHP 7.4

Zabbix Proxy

CentOS 7.9

192.168.140.20

Zabbix Proxy 5.0、MySQL 8.0

Zabbix Proxy

CentOS 7.9

192.168.140.21

Zabbix Proxy 5.0、MySQL 8.0

被监控主机

CentOS 7.9

192.168.140.51

Zabbix Agent 5.0

网络要求:

  • 所有节点关闭防火墙或开放必要端口(10050/tcp、10051/tcp)

  • SELinux 设置为 permissive 或 disabled

  • 时间同步(建议配置 NTP 服务)

(二)Zabbix Server 添加代理

  • 登录 Zabbix Web 界面(http://192.168.1.10/zabbix

  • 导航至:管理→ Proxy → 创建proxy

  • 填写代理信息:

    • Proxy name:Zabbix proxy 1(必须与 proxy 配置文件中的 Hostname 一致)
    • Proxy mode:主动式
    • Proxy address:192.168.140.20(Proxy 节点 IP)# 可不写
  • 点击 "Add" 完成添加

  • 验证 Proxy 是否连接成功:(需要保证该主机的「状态」被设置为 “已启用”且代理正确)

    • ​​​​​​​查看 Server 日志:tail -f /var/log/zabbix/zabbix_server.log

(三) Zabbix Proxy 的部署

1、 安装 Zabbix Proxy 相关的软件

(1)配置 Zabbix 官方源:

cat > /etc/yum.repos.d/zabbix.repo << EOF
[zabbix]
name=zabbix
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/
enabled=1
gpgcheck=0
EOF

(2)安装 Proxy 及数据库

[root@bj-zabbix-proxy ~] yum install -y mariadb-server zabbix-proxy-mysql 

​​​​​​​(3)初始化 MySQL 安全配置:

mysql_secure_installation

2、创建 Proxy 需要的库、导入表

(1)登录 MySQL 创建数据库:

mysql -u root -p

(2)执行 SQL 命令创建数据库和用户:

create database zabbix_proxy character set utf8 collate utf8_bin;
create user 'zabbix'@'localhost' identified by 'Zabbix@123';
grant all privileges on zabbix_proxy.* to 'zabbix'@'localhost';
flush privileges;
quit;

(3)导入 Proxy 数据库表结构:

[root@tj-zabbix-proxy ~] cd /usr/share/doc/zabbix-proxy-mysql-5.0.47/
[root@tj-zabbix-proxy zabbix-proxy-mysql-5.0.47] ls
# AUTHORS  ChangeLog  COPYING  NEWS  README  schema.sql.gz
[root@tj-zabbix-proxy zabbix-proxy-mysql-5.0.47] zcat schema.sql.gz | mysql -uroot tj_zabbix_proxy -p548165634

3、编辑 Zabbix Proxy 配置文件,指定数据库连接

(1)编辑配置文件:

vi /etc/zabbix/zabbix_proxy.conf
# Proxy名称(需与Server端配置一致)
Hostname=tj_zabbix_proxy# Zabbix Server地址
Server=192.168.140.22# 数据库类型
DBName=tj_zabbix_proxy# 数据库用户
DBUser=zabbix# 数据库密码
DBPassword=Tj@123

4、启动 Zabbix Proxy

(1)设置权限并启动服务:

chown -R zabbix:zabbix /var/log/zabbix/
systemctl start zabbix-proxy
systemctl enable zabbix-proxy

(2)检查服务状态:

[root@tj-zabbix-proxy ~] systemctl status zabbix-proxy
[root@tj-zabbix-proxy ~] netstat -tunlp |grep 100
# tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      18201/zabbix_proxy  
# tcp6       0      0 :::10051                :::*                    LISTEN      18201/zabbix_proxy 

(3)验证日志是否有错误:

tail -f /var/log/zabbix/zabbix_proxy.log
# 正常启动会显示 "proxy #xx started xxxx")

​​​​​​​(四)Zabbix-agent 指向代理监控

在被监控主机(192.168.1.30)上配置 Agent:

[root@lvm__100 ~] cat > /etc/yum.repos.d/zabbix.repo << EOF
> [zabbix]
> name=zabbix
> baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/
> enabled=1
> gpgcheck=0
> EOF
[root@lvm__100 ~] yum install -y zabbix-agent
[root@lvm__100 ~] vim /etc/zabbix/zabbix_agentd.conf 
# 指向Proxy节点而非直接指向Server
Server=192.168.140.20
# 被动模式下的服务器列表
ServerActive=192.168.140.20
# 被监控主机名称
Hostname=Web-server-1[root@lvm__100 ~] systemctl restart zabbix-agent
[root@lvm__100 ~] systemctl enable zabbix-agent[root@lvm__100 ~] netstat -tunlp
# tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      1676/zabbix_agentd

(五)验证结果

(1)在 Zabbix Web 界面创建主机(设置自动注册就不用创建了):

  • 导航至:配置 → 主机 → 创建主机

  • 主机名称:Web-server-1(需要一样)

  • 群组:选择合适的主机组

  • Agent 代理程序的接口:IP address 填写 192.168.140.51

  • 由agent代理程序检测:选择创建的 "bj_zabbix_proxy"

  • 点击 "Add" 添加

(2)为主机设置对应的检测模板

(3)验证数据采集:

  • 确认是否有正常采集的数据(如 CPU、内存等指标)

(4)验证分布式架构有效性:

  • 可以暂时断开 Proxy 与 Server 的连接,观察 Agent 仍能正常向 Proxy 上报数据

  • 恢复连接后,验证 Proxy 是否能将离线期间的数据同步至 Server

     // 有时有 “配置同步延迟”,而非 Proxy 或主机配置错误。本质是 清除配置缓存、重置通信状态、强制触发配置同步—— 这两个服务在运行中会缓存配置或维持旧的通信连接,当配置(如 Proxy 名称、主机分配)修改后,旧缓存 / 连接会阻碍新配置生效,重启则能彻底 “刷新” 这些状态。通过 “重启 Server + 重启 Proxy” 强制刷新配置。​​​​​​​

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

相关文章:

  • 企业网站建设公司公司网站开发客户挖掘
  • 天拓四方集团IOT平台:赋能电气设备制造商数智化转型新引擎
  • 【STM32项目开源】基于STM32的智能鱼缸养殖系统
  • 【小迪安全v2023】学习笔记集合 --- 持续更新
  • Django - DRF
  • Python全方位处理XML指南:解析、修改与重写实战
  • LabVIEW实现B样条曲线拟合
  • 门户网站系统建设招标文件中国建设教育协会网站培训中心
  • 常熟网站网站建设在线教育自助网站建设平台
  • 【Linux】深入探索多线程编程:从互斥锁到高性能线程池实战
  • 广州手机网站建设报价沧州市政务服务大厅
  • .net网站开发程序员深圳专业网站建设公司
  • DedeCMS命令执行复现研究 | CVE-2025-6335
  • BJDCTF2020
  • LeetCode:239. 滑动窗口最大值
  • 文件上传漏洞(二)iis6.0 CGI漏洞
  • PHP的json_encode()函数了解
  • LeetCode:76.数据流的中位数
  • 瑞达恒建筑网站网站设计技术大全
  • 32.Linux NFS 服务
  • ubuntu?centos?还是 redhat?Linux 系统选哪个?
  • Rich库演示教程
  • 买网站西安关键词优化平台
  • 构建质量的堡垒:一文读懂单元测试、集成测试、系统测试与回归测试
  • 深入MySQL、JVM与Maven核心原理​
  • MySQL中的数据去重,该用DISTINCT还是GROUP BY?
  • 低空物流自动驾驶机器人
  • 自动驾驶中的传感器技术54——USS(0)
  • 使用虚幻引擎(UE5)打造黑夜场景氛围
  • 嵌入式学习笔记3.基于寄存器方式控制GPIO