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. 触发器不触发:检查表达式语法、监控项数据更新间隔
相关推荐
带娃的IT创业者2 小时前
Python 异步编程完全指南(二):深入 asyncio 核心概念
开发语言·python·协程·事件循环·asyncio·异步编程
CAACoder2 小时前
CATIA/3DE CAA二次开发-ScrollWindow滚动窗口
开发语言·c++·mfc·滚动窗口
还是大剑师兰特2 小时前
Vue3 页面权限控制实战示例(路由守卫 + 权限判断)
开发语言·前端·javascript
老前端的功夫2 小时前
【Java从入门到入土】06:String的72变:从字符串拼接到底层优化
java·开发语言
枕布响丸辣2 小时前
Web 技术基础与 Nginx 网站环境部署超详细教程
运维·前端·nginx
程序猿(雷霆之王)2 小时前
C++——AI大模型接入SDK
开发语言·c++
新的算法2 小时前
通过重装vCenter Server解决登录vCenter界面时,报“503 Service Unavailable“错误的问题
运维·vmware·虚拟化
Felven2 小时前
麒麟信安系统忘记root密码解决说明
linux·运维·服务器
会编程的土豆2 小时前
【从零学javase 第六天】网络编程(+多线程)
开发语言·网络·php