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. 触发器不触发:检查表达式语法、监控项数据更新间隔
相关推荐
亚川楼宇自控系统数据中心厂家7 小时前
IBMS 集成如何打通数据中心的子系统数据孤
运维
蓝速科技7 小时前
桌面双屏翻译机量产调试:三类场景兼容性破局方案丨蓝速科技
运维·数据库·人工智能·科技·技术分享
见闻小天地7 小时前
脱硫脱硝塔选变频器避坑指南:四方DL500变频器使用体验分享
大数据·运维·人工智能·业界资讯
菜鸟~noob2337 小时前
【Bonjour】华为Peerium架构深度解析:从冯·诺依曼到百万处理器“一台计算机”,附MATLAB性能仿真【含matlab代码,可直接运行】
开发语言·matlab·华为·peerium
吴声子夜歌7 小时前
Shell编程实例——内务及管理任务(一)
linux·运维·shell
白远山8 小时前
24小时自助健身房系统开发实战:从需求分析到完整指南
java·开发语言·数据库·数据挖掘·需求分析
懂软件的胡子个哥8 小时前
微信二次开发如何保护接口安全,Token、权限和重放防护都要考虑
微信·自动化·wechatapi·个人微信号二次开发·微信群管理
wdfk_prog8 小时前
ROS教程10:从 gtest 到 rostest——Unit Test、Node 集成测试、rosbag 与 rqt 验证闭环
运维·缓存·docker·容器·ros
吴声子夜歌9 小时前
Shell编程实例——高级脚本编程(一)
linux·运维·网络·shell
shmily麻瓜小菜鸡10 小时前
TDD(测试驱动开发)详解
开发语言·javascript·typescript·node.js·ecmascript