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. 触发器不触发:检查表达式语法、监控项数据更新间隔
相关推荐
Aurorar0rua1 天前
CS50 x 2024 Notes C -14
c语言·开发语言·学习方法
MAVER1CK1 天前
Docker容器创建好后修改容器配置
运维·docker·容器
小短腿的代码世界1 天前
从.qrc到rcc编译器:Qt资源系统的隐秘运作机制与大型项目性能突围
开发语言·qt
2401_833269301 天前
Java网络编程入门
java·开发语言
青瓦梦滋1 天前
C++的IO流与STL的空间配置器
开发语言·c++
五月君_1 天前
Bun v1.3.14 发布,Rust 版即将进 Claude Code 内测,下一版可能就告别 Zig
开发语言·后端·rust
鱼很腾apoc1 天前
【学习篇】第20期 超详解 C++ 多态:从语法规则到底层原理
java·c语言·开发语言·c++·学习·算法·青少年编程
NightReader1 天前
CPU 高使用率,怎么降下来
运维·服务器
SWAGGY..1 天前
Linux系统编程:(七)Makefile入门:轻松掌握编译自动化
linux·运维·自动化
不吃土豆的马铃薯1 天前
4.SGI STL 二级空间配置器 allocate 与_S_refill 源码解析
c语言·开发语言·c++·dreamweaver·内存池