Zabbix 6.4 全栈部署与运维完全指南

Zabbix 6.4 全栈部署与运维完全指南

版本 : Zabbix 6.4.21 / MySQL 8.0.45 / Ubuntu 24.04 / Apache 2.4.58 / PHP 8.3

部署日期 : 2026-05-31

架构: 1 × Zabbix Server + 3 × Zabbix Agent + MySQL 监控 + 钉钉告警


目录

  1. 架构设计
  2. 服务器信息
  3. [Zabbix Server 部署](#Zabbix Server 部署)
  4. [Zabbix Agent 批量部署](#Zabbix Agent 批量部署)
  5. [MySQL 监控配置](#MySQL 监控配置)
  6. 钉钉告警集成
  7. 配置参数详解
  8. 运维命令参考
  9. 错误与解决
  10. 附录

1. 架构设计

复制代码
┌─────────────────────────────────────────────────────────────┐
│                      Zabbix 监控架构                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────┐                                        │
│  │ Zabbix Agent 2  │◄──  node-2 (ecs-6b2c-0004)            │
│  │ 183.87.37.69    │    192.168.0.203                       │
│  └────────┬────────┘                                        │
│           │ Agent:10050                                      │
│           ▼                                                  │
│  ┌─────────────────────────────────────────────┐            │
│  │         Zabbix Server (ecs-6b2c-0002)        │            │
│  │         119.8.46.41 / 192.168.0.234          │            │
│  │  ┌───────────┐  ┌─────────┐  ┌──────────┐   │            │
│  │  │ Zabbix    │  │ MySQL   │  │ Apache    │   │            │
│  │  │ Server    │  │ 8.0.45  │  │ PHP 8.3   │   │            │
│  │  │ :10051    │  │ :3306   │  │ :80       │   │            │
│  │  └───────────┘  └─────────┘  └──────────┘   │            │
│  │         │              │             │       │            │
│  │         │    ┌─────────┴───────┐     │       │            │
│  │         │    │ zabbix DB       │     │       │            │
│  │         │    │ (告警模板/数据) │     │       │            │
│  │         │    └─────────────────┘     │       │            │
│  │         │                      │     │       │            │
│  │   AlertScript────────────► DingTalk   │       │            │
│  │   (zabbix_dingtalk.py)    Webhook     │       │            │
│  └───────────────────────────────────────┘       │            │
│           ▲                          ▲                          │
│           │ Agent:10050              │ Agent:10050              │
│  ┌────────┴────────┐    ┌───────────┴─────────┐                │
│  │ Zabbix Agent 2  │    │ Zabbix Agent 2       │                │
│  │ node-1          │    │ node-3                │                │
│  │ ecs-6b2c-0003   │    │ ecs-6b2c-0001         │                │
│  │ 121.91.174.18   │    │ 119.8.50.194          │                │
│  │ 192.168.0.163   │    │ 192.168.0.158         │                │
│  │  ┌──────────┐   │    └───────────────────────┘                │
│  │  │ MySQL    │   │                                            │
│  │  │ 8.0.45   │   │                                            │
│  │  │ :3306    │   │                                            │
│  │  └──────────┘   │                                            │
│  └─────────────────┘                                            │
└─────────────────────────────────────────────────────────────────┘

数据流:

  1. Agent 采集指标 → 推送至 Zabbix Server (TCP:10051)
  2. Zabbix Server 写入 MySQL 数据库
  3. 触发器触发 → AlertManager 脚本 → DingTalk Webhook
  4. 管理员访问 Web 控制台 (Apache :80)

2. 服务器信息

主机名 公网 IP 内网 IP 角色 配置
ecs-6b2c-0002 119.8.46.41 192.168.0.234 Zabbix Server + MySQL + Web 2vCPU / 4G / c6.large
ecs-6b2c-0003 121.91.174.18 192.168.0.163 Zabbix Agent + MySQL 监控目标 2vCPU / 4G / c6.large
ecs-6b2c-0004 183.87.37.69 192.168.0.203 Zabbix Agent 2vCPU / 4G / c6.large
ecs-6b2c-0001 119.8.50.194 192.168.0.158 Zabbix Agent 2vCPU / 4G / c6.large

所有服务器: Ubuntu 24.04 LTS, root/1qaz@WSX, 华为云可用区2


3. Zabbix Server 部署

3.1 添加 Zabbix 6.4 官方仓库

bash 复制代码
wget -q https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu24.04_all.deb -O /tmp/zabbix-release.deb
dpkg -i /tmp/zabbix-release.deb
apt update -qq

3.2 安装核心组件

bash 复制代码
DEBIAN_FRONTEND=noninteractive apt install -y \
  zabbix-server-mysql \
  zabbix-frontend-php \
  zabbix-apache-conf \
  zabbix-sql-scripts \
  zabbix-agent \
  mysql-server-8.0 \
  php-mysql \
  libapache2-mod-php

3.3 MySQL 数据库初始化

bash 复制代码
# 创建 Zabbix 数据库和用户
mysql -u root -e "
  CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
  CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix_pass';
  GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
  FLUSH PRIVILEGES;
"

# 解决二进制日志函数限制
mysql -u root -e "SET GLOBAL log_bin_trust_function_creators = 1;"

# 导入 Zabbix Schema (约 170+ 表)
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz \
  | mysql --default-character-set=utf8mb4 -uzabbix -pzabbix_pass zabbix

3.4 配置 zabbix_server.conf

文件 : /etc/zabbix/zabbix_server.conf

ini 复制代码
DBName=zabbix             # 数据库名,默认值
DBUser=zabbix             # 数据库用户名,默认值
# DBHost=localhost         # 注释表示使用 Unix Socket 连接
DBPassword=zabbix_pass    # ⚠️ 生产环境需修改

详细参数说明见 [§7.1 zabbix_server.conf 详解](#§7.1 zabbix_server.conf 详解)。

3.5 配置 PHP 和 Web

文件 : /etc/zabbix/web/zabbix.conf.php

php 复制代码
<?php
$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']     = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'zabbix_pass';
$ZBX_SERVER      = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'Zabbix Server';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

文件 : /etc/php/8.3/apache2/php.ini

ini 复制代码
date.timezone = Asia/Shanghai    # 中国时区

3.6 启动服务

bash 复制代码
systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2

3.7 验证

bash 复制代码
# 检查 Zabbix Server 进程
systemctl status zabbix-server

# 检查端口监听
ss -tlnp | grep -E '10051|80'

# 访问 Web 控制台
curl -s -o /dev/null -w '%{http_code}' http://localhost/zabbix/
# 返回: 200

Web 访问 : http://119.8.46.41/zabbix

默认账号 : Admin / zabbix


4. Zabbix Agent 批量部署

4.1 安装 Zabbix Agent 2

在所有被监控节点(node-1/node-2/node-3)上执行:

bash 复制代码
# 添加仓库
wget -q https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu24.04_all.deb
dpkg -i zabbix-release_6.4-1+ubuntu24.04_all.deb
apt update -qq

# 安装 Agent 2
apt install -y zabbix-agent2

4.2 配置 Agent

文件 : /etc/zabbix/zabbix_agent2.conf(关键参数)

ini 复制代码
Server=119.8.46.41,192.168.0.234,127.0.0.1
# ⚠️ 必须同时包含 Zabbix Server 的公网和内网 IP
# 原因: Zabbix Server 通过内网 192.168.0.234 连接 Agent
# 如果只写公网 IP,内网连接会被 Agent 拒绝

ServerActive=119.8.46.41
# Agent 主动模式连接的 Server IP

Hostname=ecs-6b2c-0004
# 主机名,必须与 Zabbix Web 中配置的主机名一致

各节点 Hostname 分配:

节点 SSH 别名 Hostname IP
node-1 121.91.174.18 ecs-6b2c-0003 192.168.0.163
node-2 183.87.37.69 ecs-6b2c-0004 192.168.0.203
node-3 119.8.50.194 ecs-6b2c-0001 192.168.0.158

4.3 启动 Agent

bash 复制代码
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2
systemctl status zabbix-agent2

4.4 添加主机到 Zabbix

通过 Zabbix API 批量添加:

python 复制代码
# 关键 API 调用
host.create({
    "host": "ecs-6b2c-0003",
    "name": "ecs-6b2c-0003 (Node-1)",
    "interfaces": [{
        "type": 1,      # Zabbix Agent
        "main": 1,      # 主接口
        "useip": 1,     # 使用 IP 连接
        "ip": "192.168.0.163",
        "port": "10050"
    }],
    "groups": [{"groupid": "ECS Cluster"}],
    "templates": [{"templateid": "Linux by Zabbix agent"}]
})

4.5 验证 Agent 连通性

bash 复制代码
# 从 Zabbix Server 测试
zabbix_get -s 192.168.0.163 -k system.hostname
zabbix_get -s 192.168.0.203 -k system.hostname
zabbix_get -s 192.168.0.158 -k system.hostname

5. MySQL 监控配置

5.1 安装 MySQL

在 node-1 上:

bash 复制代码
DEBIAN_FRONTEND=noninteractive apt install -y mysql-server-8.0

5.2 创建 Zabbix 监控用户

sql 复制代码
CREATE USER 'zbx_monitor'@'localhost' IDENTIFIED BY 'zbx_monitor_pass';
GRANT USAGE, PROCESS, REPLICATION CLIENT ON *.* TO 'zbx_monitor'@'localhost';
FLUSH PRIVILEGES;

权限说明:

权限 用途
USAGE 基础连接权限
PROCESS 查看所有连接 (SHOW PROCESSLIST)
REPLICATION CLIENT 查看复制状态 (SHOW SLAVE STATUS)

5.3 配置 Zabbix Agent MySQL 插件

文件 : /etc/zabbix/zabbix_agent2.d/mysql.conf

ini 复制代码
Plugins.Mysql.Default.Uri=tcp://127.0.0.1:3306
Plugins.Mysql.Default.User=zbx_monitor
Plugins.Mysql.Default.Password=zbx_monitor_pass
Plugins.Mysql.Timeout=5

5.4 添加 MySQL 模板

通过 Zabbix API:

python 复制代码
host.update({
    "hostid": "<node-1-host-id>",
    "templates": [
        {"templateid": "Linux by Zabbix agent"},
        {"templateid": "MySQL by Zabbix agent"}    # 追加 MySQL 模板
    ],
    "macros": [
        {"macro": "{$MYSQL.DSN}", "value": "tcp://127.0.0.1:3306"},
        {"macro": "{$MYSQL.USER}", "value": "zbx_monitor"},
        {"macro": "{$MYSQL.PASSWORD}", "value": "zbx_monitor_pass"}
    ]
})

5.5 验证 MySQL 指标

bash 复制代码
# 重启 Agent 使插件生效
systemctl restart zabbix-agent2

# 测试 MySQL 指标采集
/usr/sbin/zabbix_agent2 -t mysql.ping      # → 1 (连接正常)
/usr/sbin/zabbix_agent2 -t mysql.version   # → 8.0.45-0ubuntu0.24.04.1

# 从 Zabbix Server 端验证
zabbix_get -s 192.168.0.163 -k mysql.ping      # → 1
zabbix_get -s 192.168.0.163 -k mysql.version   # → 8.0.45-0ubuntu0.24.04.1

MySQL 监控指标覆盖:

指标类别 典型 Key 说明
连接状态 mysql.ping 连通性测试
版本信息 mysql.version MySQL 版本号
查询统计 mysql.questions.rate, mysql.qps 每秒查询量
线程数 mysql.threads_connected, mysql.threads_running 连接/运行线程
缓冲池 mysql.innodb.buffer_pool_hit_rate InnoDB 命中率
复制延迟 mysql.slave_delay 主从延迟
表锁 mysql.table_locks_waited.rate 表锁等待率

6. 钉钉告警集成

6.1 告警脚本

文件 : /usr/lib/zabbix/alertscripts/zabbix_dingtalk.py

python 复制代码
#!/usr/bin/env python3
"""
Zabbix 钉钉告警脚本
通过 Zabbix Media Type 调用,发送 HMAC 签名消息到 DingTalk
"""
import sys, json, hmac, hashlib, base64, time
import urllib.request, urllib.parse

def send_dingtalk(webhook_url, secret, title, content):
    timestamp = str(round(time.time() * 1000))
    string_to_sign = f"{timestamp}\n{secret}"
    hmac_code = hmac.new(
        secret.encode('utf-8'),
        string_to_sign.encode('utf-8'),
        hashlib.sha256
    ).digest()
    sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))

    full_url = f"{webhook_url}&timestamp={timestamp}&sign={sign}"

    data = {
        "msgtype": "markdown",
        "markdown": {"title": title, "text": content}
    }

    req = urllib.request.Request(
        full_url,
        data=json.dumps(data).encode('utf-8'),
        headers={'Content-Type': 'application/json'}
    )
    urllib.request.urlopen(req, timeout=10)

if __name__ == "__main__":
    webhook_url = sys.argv[1]  # 来自 Media Type 的 sendto
    subject = sys.argv[2]
    message = sys.argv[3]

    SECRET = "SEC7acf1b961d10d3f476f2e9a793148482d75b627b61913c44833b49cc8c35e3a2"

    markdown = f"""## 🚨 Zabbix Alert
{message}
---
**Time**: {time.strftime('%Y-%m-%d %H:%M:%S')}
"""
    send_dingtalk(webhook_url, SECRET, subject, markdown)

权限设置:

bash 复制代码
chmod 755 /usr/lib/zabbix/alertscripts/zabbix_dingtalk.py
chown zabbix:zabbix /usr/lib/zabbix/alertscripts/zabbix_dingtalk.py

6.2 配置 Media Type

通过 Zabbix API 创建 DingTalk 媒体类型:

python 复制代码
mediatype.create({
    "name": "DingTalk",
    "type": 1,                              # Script 类型
    "exec_path": "zabbix_dingtalk.py",      # 脚本路径(相对于 alertscripts 目录)
    "exec_params": '{ALERT.SENDTO}\n{ALERT.SUBJECT}\n{ALERT.MESSAGE}',
})

6.3 告警动作配置

动作名称 : DingTalk Alert Action

触发条件: 所有触发器 PROBLEM 状态

消息模板 (问题通知):

复制代码
【问题】{HOST.NAME}: {TRIGGER.NAME}

**主机**: {HOST.NAME}
**问题**: {TRIGGER.NAME}
**严重性**: {TRIGGER.SEVERITY}
**时间**: {EVENT.DATE} {EVENT.TIME}
**详情**: {ITEM.NAME} = {ITEM.VALUE}
{TRIGGER.DESCRIPTION}

消息模板 (恢复通知):

复制代码
【恢复】{HOST.NAME}: {TRIGGER.NAME}

**主机**: {HOST.NAME}
**恢复时间**: {EVENT.DATE} {EVENT.TIME}
**持续时间**: {EVENT.DURATION}

6.4 默认告警触发器

"Linux by Zabbix agent" 模板自带以下触发器:

触发器 条件 严重级别
CPU utilization > 90% system.cpu.util[,user] > 90 for 5m Warning
Disk I/O overload I/O 拥塞 Warning
Host high memory usage vm.memory.size[pavailable] < 20 for 5m Warning
Lack of free swap swap 空间不足 Warning
Unavailable by ICMP 不可达 High
Host name was changed Hostname 变更 Info
System has been restarted 系统重启 Info

"MySQL by Zabbix agent" 模板自带触发器(部分):

触发器 条件 严重级别
MySQL is down mysql.ping = 0 High
MySQL replication lag 复制延迟 > 阈值 Warning
MySQL service is down 服务停止 Disaster
MySQL InnoDB buffer pool too low 缓冲池命中率过低 Warning

7. 配置参数详解

7.1 zabbix_server.conf 详解

文件路径 : /etc/zabbix/zabbix_server.conf

参数 默认值 说明
ListenPort 10051 Zabbix Server 监听端口。Agent (Passive) 和 Proxy 通过此端口上报数据。
SourceIP (空) 出站连接的源 IP。在多网卡环境中可指定特定网卡。
LogFile /tmp/zabbix_server.log 日志文件路径。生产环境建议改为 /var/log/zabbix/zabbix_server.log
LogFileSize 1 日志文件大小上限 (MB)。0=禁用自动轮转。
DebugLevel 3 日志级别: 0=基本信息, 1=关键, 2=错误, 3=警告 (默认), 4=调试, 5=扩展调试。
DBHost localhost MySQL 服务器地址。空值表示通过 Unix Socket 连接。
DBName zabbix 数据库名。
DBSchema (空) Schema 名称(仅 PostgreSQL)。
DBUser zabbix 数据库用户名。
DBPassword (空) 数据库密码。⚠️ 首次部署必须设置。
DBPort 3306 数据库端口。0=使用默认端口。
StartPollers 5 主动轮询进程数。控制 Agent (Passive) 采集的并发能力。每个进程一次处理一个检查。受监控主机多时可调高。
StartIPMIPollers 0 IPMI 监控进程数。
StartPollersUnreachable 1 不可达主机重试进程数。
StartTrappers 5 Trapper 进程数。处理 Agent (Active)、Sender 和 Proxy 的主动推送数据。
StartPingers 1 ICMP Ping 进程数。
StartDiscoverers 1 网络发现进程数。
StartHTTPPollers 1 Web 监控进程数。
StartTimers 1 定时器进程数(维护期计算等)。
StartEscalators 1 告警升级进程数。
CacheSize 8M 配置缓存。存储主机、监控项、触发器等配置。建议: 1000 台主机 → 64M+。
CacheUpdateFrequency 60 配置缓存刷新间隔 (秒)。
StartDBSyncers 4 数据库同步进程数。
HistoryCacheSize 16M 历史数据缓存。缓存采集到的数值。大监控量 → 128M+。
HistoryIndexCacheSize 4M 历史数据索引缓存。
TrendCacheSize 4M 趋势数据缓存(聚合数据)。
ValueCacheSize 8M 值缓存。用于触发器表达式计算。

性能调优建议 (4G 内存服务器):

ini 复制代码
CacheSize=32M
HistoryCacheSize=32M
ValueCacheSize=16M
StartPollers=10
StartTrappers=5

7.2 zabbix_agent2.conf 详解

文件路径 : /etc/zabbix/zabbix_agent2.conf

参数 默认值 说明
Server 127.0.0.1 白名单列表。允许哪些 Server/Proxy 从本 Agent 拉取数据 (Passive 模式)。多项用逗号分隔。支持 IP/CIDR。
ServerActive 127.0.0.1 主动上报目标。Agent 主动向 Server 推送数据的地址 (Active 模式)。多个地址用逗号分隔。
Hostname (系统 hostname) 主机标识名。必须与 Zabbix Web 中配置的 Host name 完全一致。用于 Active 模式的注册。
HostnameItem system.hostname 用于自动注册的 Host name 来源。
HostMetadata (空) 元数据,用于自动注册规则匹配。
HostMetadataItem (空) 动态元数据,从 Agent Key 获取。
ListenPort 10050 Agent 监听端口。
ListenIP 0.0.0.0 Agent 监听地址。
RefreshActiveChecks 120 主动模式检查项刷新间隔 (秒)。
BufferSend 5 主动模式数据缓存发送间隔 (秒)。
BufferSize 100 缓存最大条目数。
MaxLinesPerSecond 20 日志监控每秒最大发送行数。
Timeout 3 采集超时 (秒)。某些慢查询需调大。
ControlSocket /run/zabbix/agent.sock 运行时控制 Socket 路径。
Include /etc/zabbix/zabbix_agent2.d/*.conf 子配置文件加载路径。
LogFile /tmp/zabbix_agent2.log 日志文件路径。
LogFileSize 1 日志大小 MB。
DebugLevel 3 日志级别 (同 Server)。
Plugins.PATH /usr/sbin/zabbix-agent2-plugin/ 插件目录。
AllowKey (空) 明确允许的 Key 列表 (白名单)。
DenyKey (空) 明确禁止的 Key 列表。

MySQL 插件配置 (zabbix_agent2.d/mysql.conf):

参数 说明
Plugins.Mysql.Default.Uri MySQL 连接 URI。格式: tcp://host:portunix:///path/to/socket
Plugins.Mysql.Default.User MySQL 认证用户名。
Plugins.Mysql.Default.Password MySQL 认证密码。
Plugins.Mysql.Timeout 连接超时 (秒), 范围 1-30。
Plugins.Mysql.CallTimeout 请求超时 (秒)。
Plugins.Mysql.KeepAlive 连接保持时间 (秒), 范围 60-900, 默认 300。

7.3 zabbix.conf.php 详解

文件路径 : /etc/zabbix/web/zabbix.conf.php

参数 说明
$DB['TYPE'] 数据库类型: MYSQLPOSTGRESQL
$DB['SERVER'] 数据库地址。localhost 使用 Unix Socket。
$DB['PORT'] 数据库端口。0=默认端口。
$DB['DATABASE'] 数据库名称。
$DB['USER'] 数据库用户。
$DB['PASSWORD'] 数据库密码。
$DB['SCHEMA'] Schema (仅 PostgreSQL)。
$DB['ENCRYPTION'] 是否启用 TLS 加密。
$DB['KEY_FILE'] TLS 私钥文件。
$DB['CERT_FILE'] TLS 证书文件。
$DB['CA_FILE'] CA 证书文件。
$DB['VERIFY_HOST'] 验证数据库主机名。
$DB['DOUBLE_IEEE754'] 使用 IEEE 754 双精度格式。true 可解决浮点数精度问题。
$ZBX_SERVER Zabbix Server 地址。localhost=本机。
$ZBX_SERVER_PORT Zabbix Server 端口。10051=默认。
$ZBX_SERVER_NAME 显示在页面标题的 Zabbix Server 名称。
$IMAGE_FORMAT_DEFAULT 图表默认格式。IMAGE_FORMAT_PNGIMAGE_FORMAT_JPEG

7.4 Apache 集成

文件 : /etc/apache2/conf-enabled/zabbix.conf

Zabbix 安装自动创建此文件。内容包含:

apache 复制代码
Alias /zabbix /usr/share/zabbix    # URL 路径映射
<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

PHP 参数要求 (Zabbix 前端):

PHP 参数 要求 建议值
max_execution_time ≥ 300 300
memory_limit ≥ 128M 256M
post_max_size ≥ 16M 32M
upload_max_filesize ≥ 2M 16M
max_input_time ≥ 300 300
date.timezone 必须设置 Asia/Shanghai

7.5 Zabbix API 概念

概念 说明
Host 被监控的主机,通过 Host name 唯一标识(与 Agent Hostname 参数对应)
Interface 主机连接方式: type=1 (Agent), type=2 (SNMP), type=3 (IPMI), type=4 (JMX)
Template 监控模板。包含 Items、Triggers、Graphs、Discovery Rules。挂载到 Host 后自动继承。
Item 监控项 。具体的指标采集 Key,如 system.cpu.util
Trigger 触发器 。基于 Item 的逻辑表达式,如 system.cpu.util > 90
Action 动作。Trigger 触发后执行的自动化操作(发消息、远程命令等)。
Media Type 媒介类型。消息通道: Email、SMS、Script、Webhook 等。
Macro 宏变量{$NAME} 格式,可全局/模板/主机级别覆盖。

8. 运维命令参考

8.1 服务管理

bash 复制代码
# Zabbix Server
systemctl restart zabbix-server
systemctl status zabbix-server
journalctl -u zabbix-server -f        # 实时日志

# Zabbix Agent
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
journalctl -u zabbix-agent2 -f

# MySQL
systemctl restart mysql
systemctl status mysql

# Apache
systemctl restart apache2
systemctl status apache2

8.2 诊断命令

bash 复制代码
# 测试 Agent 指标采集 (本地)
/usr/sbin/zabbix_agent2 -t system.hostname
/usr/sbin/zabbix_agent2 -t system.cpu.util
/usr/sbin/zabbix_agent2 -t mysql.ping
/usr/sbin/zabbix_agent2 -t mysql.version

# 从 Server 端获取 Agent 数据
zabbix_get -s 192.168.0.163 -k system.hostname
zabbix_get -s 192.168.0.163 -k mysql.ping

# 查看 Server 进程状态
ps aux | grep zabbix_server

# 查看数据库状态
mysql -uzabbix -pzabbix_pass -e "SELECT COUNT(*) FROM zabbix.hosts;"
mysql -uzabbix -pzabbix_pass -e "SELECT COUNT(*) FROM zabbix.items;"

8.3 性能查询 SQL

sql 复制代码
-- 查看主机数量
SELECT COUNT(*) FROM hosts WHERE status=0;

-- 查看监控项数量
SELECT COUNT(*) FROM items WHERE status=0;

-- 查看触发器数量
SELECT COUNT(*) FROM triggers WHERE status=0;

-- 查看当前问题
SELECT h.name AS host, t.description AS trigger, p.clock
FROM problem p
JOIN triggers t ON p.objectid = t.triggerid
JOIN functions f ON t.triggerid = f.triggerid
JOIN items i ON f.itemid = i.itemid
JOIN hosts h ON i.hostid = h.hostid
WHERE p.r_eventid IS NULL
ORDER BY p.clock DESC LIMIT 20;

8.4 钉钉告警测试

bash 复制代码
# 直接测试告警脚本
python3 /usr/lib/zabbix/alertscripts/zabbix_dingtalk.py \
  "https://oapi.dingtalk.com/robot/send?access_token=090fba13440082ce1aab6f43a2cc47a7b9866521ddf94c7e9502ac100b87280c" \
  "测试标题" \
  "## 这是一条来自 Zabbix 的测试告警\n\n告警内容:系统 CPU 使用率超过 90%"

# 查看 Zabbix Server 告警相关日志
grep -i 'alert' /tmp/zabbix_server.log | tail -20

9. 错误与解决

# 错误现象 根因 解决方案
1 ERROR 1419: You do not have the SUPER privilege and binary logging is enabled MySQL 8.0 默认启用 binary log,创建函数需 SUPER 权限 SET GLOBAL log_bin_trust_function_creators = 1;
2 ERROR 1050: Table 'role' already exists 前次导入中途失败,表已部分创建 DROP DATABASE zabbix; 后重建并重新导入
3 Zabbix Web 返回 500 Internal Server Error zabbix.conf.php 中的 heredoc 被 Shell 截断 改用 SFTP 上传 PHP 文件,避免 Shell 插值
4 zabbix_get: Connection reset by peer Agent 的 Server 参数只配了公网 IP,Zabbix Server 通过内网 IP 连接被拒绝 Server=119.8.46.41,192.168.0.234,127.0.0.1 增加内网 IP
5 invalid parameter Plugins.Mysql.DSN at line 1: unknown parameter Zabbix Agent 2 的 MySQL 插件参数名格式不对 改为 Plugins.Mysql.Default.Uri / .Default.User / .Default.Password
6 Media Type API 创建失败: unexpected parameter "name" parameters 字段格式不正确 省略 parameters 字段,在 exec_params 中指定参数
7 zabbix_agent2: activating 状态 启动后短时间内状态为 activating 等待约 5 秒后变为 active(正常行为)

10. 附录

10.1 文件清单

文件 路径 用途
zabbix_server.conf /etc/zabbix/zabbix_server.conf Zabbix Server 主配置
zabbix_agent2.conf /etc/zabbix/zabbix_agent2.conf Zabbix Agent 主配置
mysql.conf /etc/zabbix/zabbix_agent2.d/mysql.conf MySQL 插件配置
zabbix.conf.php /etc/zabbix/web/zabbix.conf.php Web 前端数据库连接
zabbix_dingtalk.py /usr/lib/zabbix/alertscripts/zabbix_dingtalk.py 钉钉告警脚本
php.ini /etc/php/8.3/apache2/php.ini PHP 配置

10.2 关键凭证

系统 用户名 密码 用途
Zabbix Web Admin zabbix Zabbix 控制台登录
MySQL root root (空) 数据库管理
MySQL zabbix zabbix zabbix_pass Zabbix Server 连接
MySQL 监控 zbx_monitor zbx_monitor_pass Agent 采集 MySQL
SSH root 1qaz@WSX 服务器管理

10.3 端口清单

端口 服务 方向 用途
80 Apache 入站 Zabbix Web 前端
3306 MySQL 本地 数据库
10050 Zabbix Agent 入站 Passive 模式数据采集
10051 Zabbix Server 入站 Agent/Proxy 主动推送

10.4 钉钉 Webhook 配置

参数
Webhook URL https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx00b87280c
签名方式 HMAC-SHA256 (加签)
Secret xxxxxxx
消息格式 markdown

10.5 本地工具脚本

脚本 路径 用途
ssh_exec.py D:\tools\ssh_exec.py SSH 批量执行
sftp_upload.py D:\tools\sftp_upload.py SFTP 文件上传
zabbix_setup.py D:\tools\zabbix_setup.py 批量添加主机
zabbix_mysql_setup.py D:\tools\zabbix_mysql_setup.py MySQL 监控配置
zabbix_dingtalk_setup.py D:\tools\zabbix_dingtalk_setup.py 钉钉告警配置
zabbix_dingtalk.py D:\tools\zabbix_dingtalk.py 钉钉告警脚本(服务器版)
zabbix.conf.php D:\tools\zabbix.conf.php Zabbix Web PHP 配置

文档版本 : v1.0

最后更新: 2026-05-31

相关推荐
实心儿儿1 小时前
Linux —— 线程控制(2)
linux·运维·服务器
量子炒饭大师1 小时前
【Linux系统编程:进程概念】——【从 冯诺依曼系统体系结构 到 操作系统】
linux·运维·服务器·操作系统·冯诺依曼
00后程序媛2 小时前
ubuntu安装qemu和xv6
linux·运维·ubuntu
阿狸猿3 小时前
论系统负载均衡设计方法
运维·负载均衡
minji...3 小时前
Linux 高级IO(四)多路转接之epoll,epoll 模型及原理
linux·运维·服务器·多路转接·epoll·epoll模型·红黑树/就绪队列/回调
bitbrowser3 小时前
2026年Facebook广告账户频频“连坐”被封?聊聊出海投流
运维·服务器·facebook
汽车仪器仪表相关领域3 小时前
Kvaser Hybrid CAN/LIN 单通道三合一总线分析仪:高性价比CAN FD/LIN集成测试利器
运维·服务器·网络·数据挖掘·数据分析·单元测试·集成测试
志栋智能3 小时前
超自动化安全:实现安全运营现代化的关键
大数据·运维·网络·安全·自动化
zzipeng3 小时前
Linux 并发与竞争
java·linux·运维