Zabbix 使用教程:从入门到实战

Zabbix 使用教程:从入门到实战

Zabbix 是一款开源的企业级监控解决方案,支持对服务器、网络设备、虚拟机、数据库等 IT 组件进行实时监控,并提供告警通知、数据可视化等功能。本教程将详细介绍 Zabbix 的安装、配置以及基本使用方法,帮助您快速上手 Zabbix。

一、Zabbix 架构与组件

Zabbix 采用 C/S 架构,主要组件包括:

Zabbix Server:核心组件,负责收集 Agent 采集的数据并持久化存储到数据库。

Zabbix Agent:部署在被监控主机上,采集监控数据并发送到 Server。

数据库:存储采集到的数据,支持 MySQL、PostgreSQL 等。

Zabbix Web 界面:提供图形化界面,方便用户进行监控配置和查看数据。

Zabbix Proxy(可选):代理端,用于分布式环境,分担 Server 负载。

二、安装 Zabbix

1. 环境准备

操作系统:以 CentOS 7 为例。

软件依赖:LAMP/LNMP 环境(Apache/Nginx + MySQL/MariaDB + PHP)。

2. 安装步骤

安装 LAMP 环境

# 安装 Apache、MySQL、PHP 及相关扩展

yum install -y httpd mariadb-server mariadb php php-mysql php-gd php-mbstring php-xml php-bcmath

# 启动服务并设置开机自启

systemctl start httpd mariadb

systemctl enable httpd mariadb

# 配置 MySQL 密码

mysqladmin -u root password 'yourpassword'

安装 Zabbix

# 添加 Zabbix 官方源

rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm

yum clean all

# 安装 Zabbix Server、Agent 和 Web 界面

yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent

配置数据库

# 创建 Zabbix 数据库和用户

mysql -uroot -p

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'yourpassword';

GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';

FLUSH PRIVILEGES;

EXIT;

# 导入初始数据

zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

配置 Zabbix Server

# 编辑配置文件

vim /etc/zabbix/zabbix_server.conf

# 修改以下参数

DBName=zabbix

DBUser=zabbix

DBPassword=yourpassword

# 重启服务

systemctl restart zabbix-server httpd

systemctl enable zabbix-server

接下来我们就可以开始访问 Web 界面

在浏览器中访问 http://server-ip/zabbix,按照安装向导完成安装。初始用户名和密码为 Admin/zabbix。

三、配置 Zabbix 监控

1. 添加主机

安装 Agent:在被监控主机上安装 Zabbix Agent。

# 安装 Agent

yum install -y zabbix-agent

# 编辑配置文件

vim /etc/zabbix/zabbix_agentd.conf

# 修改以下参数

Server=

ServerActive=

Hostname=<被监控主机名>

# 启动服务

systemctl start zabbix-agent

systemctl enable zabbix-agent

在 Web 界面添加主机:

进入 Configuration > Hosts。

点击 Create host。

填写主机名称、群组、接口(Agent 接口,IP 为被监控主机 IP)。

在 Templates 选项卡中关联模板(如 Template OS Linux)。

点击 Add 保存。

2. 自定义监控项

如果内置监控项不能满足需求,可以通过自定义监控项实现:

编写脚本:在被监控主机上编写自定义脚本,例如监控 TCP 连接状态。

# 示例脚本:/etc/zabbix/zabbix_agentd.d/tcp_state.sh

#!/bin/bash

netstat -an | grep "$1" | wc -l

配置 Agent:

# 编辑 Agent 配置文件

vim /etc/zabbix/zabbix_agentd.conf

# 添加以下内容

UserParameter=tcp_state[*],/etc/zabbix/zabbix_agentd.d/tcp_state.sh $1

# 重启 Agent

systemctl restart zabbix-agent

在 Web 界面创建自定义监控项:

进入 Configuration > Templates。

选择或创建模板。

点击 Items > Create item。

填写名称、键值(如 tcp_state[ESTABLISHED])、类型等信息。

点击 Add 保存。

3. 配置触发器与告警

创建触发器:

进入 Configuration > Templates。

选择模板,点击 Triggers > Create trigger。

填写名称、表达式(如 {Template OS Linux:system.cpu.load[all,avg1].last()}>5)。

设置严重性(如 Warning)。

点击 Add 保存。

配置告警通知:

进入 Administration > Media types。

点击 Email(或其他通知方式)。

配置 SMTP 服务器等信息。

进入 Administration > Users。

选择用户,点击 Media > Add。

选择通知方式(如 Email),填写接收地址。

点击 Add 保存。

四、优化与实战技巧

1. 监控频率优化

性能指标(如 CPU、内存):建议设置为 1 次/分钟。

信息指标(如主机名、Agent 版本):建议设置为 1 次/小时。

自动发现监控项(如文件系统、网络接口):建议设置为 1 次/小时。

2. 告警抑制

通过触发器函数实现告警抑制,例如:

# CPU iowait 连续 5 分钟大于 20% 才告警

{Template OS Linux:system.cpu.util[,iowait].min(5m)}>20

3. 宏变量使用

模板宏:在模板中定义宏变量(如 {KaTeX parse error: Expected 'EOF', got '}' at position 10: CPUIOWAIT}̲),默认值为 20。

主机宏:…CPUIOWAIT} 改为 10)。

4. LLD 宏变量

在自动发现中为单个监控项定义宏变量,例如:

# 文件系统 /opt 的阈值设置为 95%

{host:vfs.fs.size[{#FSNAME},pfree].last()}<{$LOW_SPACE_LIMIT:"{#FSNAME}"}

在主机宏中添加 {$LOW_SPACE_LIMIT:“/opt”},值为 95。

五、总结

Zabbix 的基本安装、配置和使用方法就写到这里了。Zabbix 功能强大,支持自定义监控项、触发器、告警通知等,能够满足不同场景的监控需求。在实际应用中,我们也可以根据业务需求进一步优化监控配置,提高监控效率和准确性。