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 agent → Add
    • 点击 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
    • Key :nginx.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 agent、Template App Apache by Zabbix agent
  • 云资源 :AWS EC2 by Zabbix agent、Azure VM by Zabbix agentZabbix

八、常见问题排查

  1. 无数据:检查 Agent 配置 Server/ServerActive、防火墙 10050 端口、主机名是否一致
  2. 自定义 Key 不生效:检查脚本权限、UnsafeUserParameters=1、重启 Agent
  3. 触发器不触发:检查表达式语法、监控项数据更新间隔
相关推荐
xh didida3 分钟前
Linux -- 基础IO
linux·服务器·开发语言·c++
个 人 练 习 生21 分钟前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
2601_9669496531 分钟前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
坤坤子吖33 分钟前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
奋斗的阿狸_198643 分钟前
ESP32-S3 + ES7210 四通道麦克风录音上传方案
c语言·开发语言·fpga开发
心易行者1 小时前
Agent应用+API端点商业化进阶实战:从单体智能体到可付费调用的API全流程
运维·服务器·人工智能·python·apache
科技研学社1 小时前
精度决胜品质:羽绒服缝制工艺标准与自动化精度对标解析
运维·自动化
夜之眷属1 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
Initialize293081 小时前
Redis 内存打满、连接数飙红?运维排查四步法
运维
weixin199701080161 小时前
《1688图片空间API踩坑:img.upload 与 album.* 的防盗链与CDN缓存问题》(附Python源码)
开发语言·python·缓存