Zabbix监控实战:Linux主机全流程配置

Zabbix 监控实例,核心是添加主机、关联模板、配置监控项 / 触发器、设置告警,下面给你一套可直接落地的完整实战流程(以 Linux 服务器为例)。


一、环境准备(Zabbix Server 已部署)

  • Zabbix Server 已安装(版本 6.0+)
  • 被监控端:Linux 服务器(CentOS/RHEL/Ubuntu)
  • 网络:Zabbix Server 与被监控端网络互通,端口 10050/10051 开放

二、被监控端安装与配置 Zabbix Agent

1. 安装 Zabbix Agent
复制代码
# CentOS/RHEL
yum install -y zabbix-agent

# Ubuntu/Debian
apt update && apt install -y zabbix-agent
2. 配置 Agent(关键)
复制代码
vim /etc/zabbix/zabbix_agentd.conf

修改以下核心参数:

复制代码
# Zabbix Server IP(被动模式,允许 Server 拉取数据)
Server=192.168.1.100

# Zabbix Server IP(主动模式,Agent 主动推送数据)
ServerActive=192.168.1.100

# 主机名(必须唯一,后续 Web 界面要一致)
Hostname=web-server-01

# 开启自定义监控(后续自定义脚本用)
UnsafeUserParameters=1
3. 启动并设置开机自启
复制代码
systemctl restart zabbix-agent
systemctl enable zabbix-agent

# 验证端口监听(10050)
netstat -tulnp | grep zabbix_agentd

三、Zabbix Web 界面添加主机(核心步骤)

  1. 登录 Zabbix Web → Configuration(配置)Hosts(主机)Create host(创建主机)
  2. 填写主机信息:
    • Host name :与 Agent 配置的 Hostname 一致(如 web-server-01
    • Visible name :自定义显示名(如 Web服务器-01
    • Groups :选择主机组(如 Linux servers
    • Interfaces :添加 Agent 接口
      • Type:Agent
      • IP address:被监控端 IP
      • Port:10050(默认)
  3. Templates(模板) 标签页:
    • 点击 Select → 搜索 Template OS Linux by Zabbix agentAdd
    • 点击 Add 保存主机
  4. 等待 1--2 分钟,查看 Monitoring → Latest data,即可看到 CPU、内存、磁盘等基础监控数据

四、实战:自定义监控实例(以监控 Nginx 进程为例)

1. 被监控端:编写监控脚本
复制代码
# 创建脚本目录
mkdir -p /etc/zabbix/scripts
vim /etc/zabbix/scripts/check_nginx.sh

脚本内容(检查 Nginx 进程数):

复制代码
#!/bin/bash
count=$(ps -ef | grep nginx | grep -v grep | wc -l)
echo $count

# 赋予执行权限
chmod +x /etc/zabbix/scripts/check_nginx.sh
2. 被监控端:配置自定义 Key
复制代码
vim /etc/zabbix/zabbix_agentd.conf
# 末尾添加
UserParameter=nginx.process.count,/etc/zabbix/scripts/check_nginx.sh

# 重启 Agent
systemctl restart zabbix-agent
3. Zabbix Web:创建监控项
  1. 进入主机 → Items(监控项)Create item(创建监控项)
  2. 配置:
    • Name:Nginx 进程数
    • Type:Zabbix agent
    • Keynginx.process.count(与自定义 Key 一致)
    • Type of information:Numeric (unsigned)
    • Update interval:30s
    • 点击 Add
4. 创建触发器(告警)
  1. 进入主机 → Triggers(触发器)Create trigger(创建触发器)
  2. 配置:
    • Name:Nginx 进程异常(进程数 < 1)
    • Severity:High(高)
    • Expression{web-server-01:nginx.process.count.last()}<1
    • 点击 Add
5. 验证
  • 停止 Nginx:systemctl stop nginx
  • 查看 Monitoring → Problems,应触发告警

五、实战:监控 MySQL 主从状态

1. 被监控端:MySQL 授权(允许 Zabbix 读取状态)
复制代码
# 登录 MySQL
mysql -uroot -p

# 创建监控用户
CREATE USER 'zabbix_mon'@'localhost' IDENTIFIED BY 'Zabbix@123';
GRANT REPLICATION CLIENT ON *.* TO 'zabbix_mon'@'localhost';
FLUSH PRIVILEGES;
2. 被监控端:编写监控脚本
复制代码
vim /etc/zabbix/scripts/check_mysql_slave.sh

脚本内容:

复制代码
#!/bin/bash
# 获取 Slave_IO_Running 和 Slave_SQL_Running 状态
IO_STATUS=$(mysql -uzabbix_mon -pZabbix@123 -e "SHOW SLAVE STATUS\G" | grep Slave_IO_Running | awk '{print $2}')
SQL_STATUS=$(mysql -uzabbix_mon -pZabbix@123 -e "SHOW SLAVE STATUS\G" | grep Slave_SQL_Running | awk '{print $2}')

# 状态正常返回 0,异常返回 1
if [ "$IO_STATUS" = "Yes" ] && [ "$SQL_STATUS" = "Yes" ]; then
    echo 0
else
    echo 1
fi

chmod +x /etc/zabbix/scripts/check_mysql_slave.sh
3. 配置自定义 Key
复制代码
vim /etc/zabbix/zabbix_agentd.conf
# 末尾添加
UserParameter=mysql.slave.status,/etc/zabbix/scripts/check_mysql_slave.sh

systemctl restart zabbix-agent
4. Zabbix Web:创建监控项与触发器
  • 监控项 Key:mysql.slave.status
  • 触发器表达式:{mysql-server:mysql.slave.status.last()}=1(值为 1 时告警)

六、告警配置(邮件 / 钉钉)

1. 配置告警媒介(以邮件为例)
  1. Administration(管理)Media types(告警媒介)Email
  2. 配置 SMTP 信息(如 QQ/163 邮箱)
  3. Users(用户) → 选择管理员 → Media → 添加 Email 告警媒介
2. 配置动作(触发告警)
  1. Configuration(配置)Actions(动作)Create action(创建动作)
  2. Conditions(条件):默认匹配所有触发器
  3. Operations(操作)
    • 发送消息到用户邮箱
    • 消息内容可使用宏(如 {HOST.NAME}{TRIGGER.NAME}

七、常用监控模板推荐

  • 系统基础Template OS Linux by Zabbix agent
  • 数据库Template DB MySQL by Zabbix agent
  • Web 服务Template App Nginx by Zabbix agentTemplate App Apache by Zabbix agent
  • 云资源AWS EC2 by Zabbix agentAzure VM by Zabbix agentZabbix

八、常见问题排查

  1. 无数据:检查 Agent 配置 Server/ServerActive、防火墙 10050 端口、主机名是否一致
  2. 自定义 Key 不生效:检查脚本权限、UnsafeUserParameters=1、重启 Agent
  3. 触发器不触发:检查表达式语法、监控项数据更新间隔
相关推荐
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森5 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜5 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB6 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode8 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220708 天前
如何搭建本地yum源(上)
运维
大树8811 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠11 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
LDR00611 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言