Zabbix 监控服务器部署

type
status
date
slug
summary
tags
category
icon
password
notion image
Zabbix Server 获取服务器,网络设备,数据库以及应用的监控数据,如果监控对象较多或者处于不同的隔离网段,还可以使用 Zabbix Proxy 获取监控数据后传输给 Zabbix Server,Zabbix Server 最终会将数据存储在数据库中,然后就可以使用浏览器访问 Zabbix Web 界面,进行配置和查看监控数据。如果出现异常,则会通过电子邮件,短信或者电话通知相关人员。

一、监控的作用(核心)

  • 发现问题:及时发现系统/服务异常。
  • 解决问题:通过报警和历史数据定位原因。
  • 预防问题:趋势分析与容量规划,提前预警。
监控方式:
  • 人工巡检、巡检脚本
  • 监控软件
    • Zabbix(IT基础设施:服务器、网络、存储)
      Promethues(容器化应用)
      Cacti、Nagios、Openfalcon(小米)

二、Zabbix 获取监控数据的方式(概念与用途)

  • Zabbix Agent:用于主机/服务器,支持被动(server 拉取)和主动(agent 推送)两种模式。
  • SNMP(UDP/161):简单网络管理协议,用于网络设备(交换机、路由器、防火墙、IDS/IPS)。三个版本(v1,v2,v3),常用 SNMP v2(稳定),需配置 community。
  • IPMI:用于物理硬件监控(温度、电源、序列号等)。
  • JMX:用于 Java 应用(如 Tomcat、Kafka)的指标采集(通过 JMX 接口)。
说明:每种方式适用场景不同,选择时按设备/应用类型决定(例如交换机优先 SNMP,Java 应用用 JMX)。

三、Zabbix Server 部署(保留并完善的步骤)

环境

  • OS:RHEL/CentOS 7 类(使用 yumsystemctl 等命令)。
  • 文档示例使用 Zabbix 4.4、MariaDB。实际生产请根据需求选择版本并确认兼容性。

1. 时间同步(必须)

  • 说明/建议(补充)
    • ntpdate 在很多系统被视为过时做法(会“step”时间),推荐使用 chronychronyd)或 ntpd 作持续同步。
    • 示例改进(推荐):
      • 若继续用 ntpdate,避免频繁在 cron 中 step 大时间差,可能影响服务稳定性。

    2. 添加 EPEL 源(阿里云)

    • 说明:为安装额外包(如 php 扩展)提供来源。

    3. 添加 Zabbix 仓库(示例)

    • 说明:示例使用 4.4 版本;生产环境请确认是否需要更高版本并替换 baseurl。

    4. 安装服务端软件(示例)

    • 注意:安装后需启动并初始化数据库

    5. 启动并初始化 MariaDB(必加)

    建议步骤:
    • 说明:必须先启动 DB 并完成 mysql_secure_installation

    6. 在数据库创建 zabbix 数据库、用户并导入 schema

    导入 schema:
    • 建议/安全提示
      • 使用强密码替换示例密码 redhat
      • 若数据库需要远程访问,应限制 zbuser 的访问范围,仅允许 zabbix server 主机或使用 socket 通信。
      • 可采用 GRANT ALL ON zabbix.*(Zabbix 升级时较常见)或根据最小权限原则酌情限制。

    7. 编辑 Zabbix server 配置

    编辑 /etc/zabbix/zabbix_server.conf
    • 说明:确保 DBPassword 使用强口令并且文件权限受限(chmod 600)。

    8. 启动 Zabbix server

    • 输出示例 显示服务器监听 10051 端口(Zabbix server)。

    9. 初始化 Zabbix Web UI

    编辑 /etc/httpd/conf.d/zabbix.conf,设置 PHP 时区:
    启动 httpd:
    • 说明/补充
      • 若系统在日本/东京,请把 Asia/Shanghai 改为 Asia/Tokyo
      • 确保 PHP 必需模块已安装:php, php-mysql/php-mysqli, php-gd, php-xml, php-bcmath 等(视 Zabbix 版本而定)。
      • 访问 Web UI:http://<server-ip>/zabbix/
      • 默认登录:Admin / zabbix首次登录后必须修改密码)。

    四、本机(Agent)监控配置

    安装 agent

    关键字段说明:
    • Server=<Zabbix Server IP> # 允许哪些 Zabbix Server/Proxy 连接(用于被动检查)
    • ServerActive=<Zabbix Server IP> # agent 主动模式时推送到的地址
    • Hostname=<唯一主机名> # 被监控机名称,必须和 Web UI 中主机名一致或使用 HostnameItem
    启动 agent:
    端口校验(示例):
    • agent 监听 10050
    • server 监听 10051

    Agent 模式说明(重要)

    • 被动(passive):Zabbix server 向 agent 的 10050 端口发起请求拉取数据。配置 Server 即可。
      • notion image
    • 主动(active):agent 主动连接 server(或 proxy)端口 10051,并推送数据。配置 ServerActive 并在 server 端允许该 agent 的连接。
      • notion image
        被监控机数量多,修改为主动模式,能有效减小Server工作压力。
        注意agent配置文件的主机名,要和zabbix-UI中的主机名对上。
        zabbix-UI里修改监控项为主动模式
        notion image
        notion image
        notion image

    五、常见问题与修复

    图形乱码

    Windows控制面板——>字体——>楷体 常规
    • 把中文字体文件(如 simkai.ttf)放入:
      • 编辑:
        • 补充:放入字体后重启 httpd(systemctl restart httpd),并检查文件权限与 Zabbix 前端缓存(可清浏览器缓存)。

        端口/服务检查

        • 如果 netstat 缺失,可用 ss -tunlp 替代。
        • 防火墙(firewalld/iptables)需放行相应端口(80/443, 10050, 10051等),并考虑只放行必要来源。

        六、重要概念

        • Zabbix Server:负责聚合、处理、触发报警并存储数据的核心服务。监听端口 10051
        • Zabbix Agent:部署在被监控主机上,采集指标并响应 server 查询或主动推送。监听端口 10050
        • SNMP:网络设备标准协议,使用 community 字符串做简单认证(v2 常见)。
        • IPMI:用于裸机硬件的传感器数据(风扇、温度、电源)。
        • JMX:Java 应用管理扩展,适合 JVM 指标采集。
        • 主动 vs 被动:主动由 agent 推送数据,被动由 server 拉取数据(选择依据网络拓扑与防火墙策略)。

        版本提示
        • 文档中的 Zabbix 版本(4.4)与 MariaDB 版本可能较旧。部署前验证当前需要的功能与兼容性并选择合适版本。

        七、快速命令清单


        八、建议的部署流程(按序、便于复现)

        1. 确认操作系统版本与依赖(PHP、数据库、httpd)。
        1. 配置时间同步(推荐 chrony)。
        1. 添加 EPEL 与 Zabbix 仓库。
        1. 安装 MariaDB / Zabbix server / web / agent。
        1. 启动 MariaDB 并运行 mysql_secure_installation
        1. 创建 zabbix 数据库与用户,导入 schema。
        1. 配置 /etc/zabbix/zabbix_server.conf(填写 DB 连接)。
        1. 配置 httpd/php(时区、扩展),重启 httpd。
        1. 启动并验证 zabbix-serverzabbix-agent
        1. 通过 Web UI 完成初始配置(更改默认密码、添加主机、应用模板、配置报警)。

        Loading...