15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
31.10.2024
1 +1

Zabbix:它是什么、它如何工作以及如何有效使用它

Zabbix是当今最强大的开源监控平台之一。无论您管理少数几台服务器还是监督复杂的企业基础设施,Zabbix都能为您提供保持系统平稳运行所需的可见性、告警和分析功能。在这份综合指南中,我们将涵盖从核心概念和架构到安装、配置和最佳实践的所有内容。

什么是Zabbix?

Zabbix是一个免费的开源监控解决方案,旨在跟踪服务器、网络、应用程序、数据库、云服务和虚拟机的性能和可用性。它从受监控设备收集指标,实时分析该数据,并通过直观的仪表板、图表和报告呈现。

Zabbix由Alexei Vladishev开发,首次发布于2001年,已发展成为一个企业级平台,受到全球数千个组织的信任——从初创公司到财富500强公司。

核心功能一览

  • 实时监控:持续跟踪服务器、数据库、网络设备、容器和云基础设施
  • 智能告警:当阈值被超过时,通过电子邮件、SMS、Slack、PagerDuty或自定义webhook发送通知
  • 数据可视化:可自定义的仪表板、趋势图和网络地图提供即时态势感知
  • 自动化:触发自动修复操作,例如在没有人工干预的情况下重启失败的服务
  • 开源灵活性:完全可自定义的源代码,无许可费用或供应商锁定

为什么使用Zabbix?关键优势解析

1. 全面的基础设施覆盖

Zabbix监控您IT堆栈的几乎每一层——物理服务器、虚拟机、网络交换机、存储系统、数据库、Web应用程序和云工作负载。这种广泛性使其成为系统管理员理想的单一管理界面解决方案。

2. 零许可成本

与Datadog、New Relic或SolarWinds等商业替代品不同,Zabbix完全免费。没有按主机费用、没有功能层级、没有意外发票。对于预算紧张的组织来说,这是一个显著的优势。

3. 企业级可扩展性

Zabbix的架构具有可扩展性。单个Zabbix服务器可以监控数万台设备。对于更大的环境,使用Zabbix代理的分布式监控允许您在多个数据中心或地理区域进行水平扩展。

4. 灵活的告警和自动化

使用Zabbix的触发器表达式定义复杂的告警条件。组合多个指标、设置依赖链和配置升级策略。当满足特定条件时,自动化操作可以执行远程命令、发送通知或调用外部脚本。

5. 活跃的社区和商业支持

Zabbix受益于庞大、活跃的开源社区和来自Zabbix LLC的官方商业支持,为组织提供两全其美的方案。

Zabbix如何工作:架构概览

在部署前理解Zabbix的架构至关重要。该平台围绕多个相互连接的组件构建:

Zabbix服务器

中央处理引擎。Zabbix服务器从代理和外部源收集数据,评估触发器条件,生成告警,并将所有内容存储在后端数据库中。所有配置和逻辑都位于此处。

Zabbix代理

直接安装在受监控主机上的轻量级守护进程(Linux、Windows、macOS等)。代理收集细粒度的系统指标——CPU利用率、内存消耗、磁盘I/O、运行进程、日志文件条目——并将其报告回Zabbix服务器。

Zabbix代理

一个可选但强大的分布式环境组件。代理从远程主机收集数据并将其转发到中央服务器,减少网络负载并支持跨防火墙或低速WAN链接的监控。

数据库后端

所有收集的数据、配置和历史记录都存储在关系数据库中。Zabbix官方支持:

  • MySQL / MariaDB——最常用
  • PostgreSQL——推荐用于高性能和大规模部署
  • Oracle数据库——用于企业环境

Web前端

一个基于PHP的Web应用程序,提供图形用户界面。管理员使用它来配置主机、定义监控模板、构建仪表板、管理用户和审查告警。

无代理监控

对于无法安装代理的设备(网络交换机、打印机、遗留硬件),Zabbix支持通过以下方式进行无代理监控:

  • SNMP——用于网络设备
  • IPMI——用于服务器硬件传感器
  • JMX——用于Java应用程序监控
  • HTTP/HTTPS检查——用于Web服务可用性

在Ubuntu上安装Zabbix:分步指南

以下演练涵盖在Ubuntu 22.04 LTS上使用MySQL作为数据库后端的标准Zabbix安装。此设置适合在VPS主机计划或专用服务器上的生产使用。

前置条件

  • Ubuntu 22.04 LTS(推荐全新安装)
  • Root或sudo访问权限
  • 至少2 GB RAM和2个CPU核心(生产环境推荐4+ GB RAM)
  • 已安装MySQL或MariaDB

步骤1:更新系统包

始终从完全更新的系统开始,以避免依赖冲突。

sudo apt update && sudo apt upgrade -y

步骤2:添加官方Zabbix存储库

下载并安装Ubuntu 22.04的官方Zabbix存储库包:

wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo apt update

步骤3:安装Zabbix服务器、前端和代理

sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

步骤4:配置MySQL数据库

登录MySQL并为Zabbix创建专用数据库和用户:

CREATE DATABASE zabbixdb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbixuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON zabbixdb.* TO 'zabbixuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

导入初始Zabbix模式:

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbixuser -p zabbixdb

步骤5:编辑Zabbix服务器配置文件

打开主配置文件:

sudo nano /etc/zabbix/zabbix_server.conf

更新以下参数以匹配您的数据库设置:

DBName=zabbixdb
DBUser=zabbixuser
DBPassword=StrongPassword123!

保存并退出(Ctrl+X,然后Y,然后Enter)。

步骤6:启动并启用Zabbix服务

sudo systemctl start zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2

验证服务正在运行:

sudo systemctl status zabbix-server
sudo systemctl status zabbix-agent

步骤7:完成基于Web的设置向导

打开浏览器并导航到:

http://your-server-ip/zabbix

按照屏幕上的设置向导确认前置条件、配置数据库连接并设置服务器时区。完成后,使用默认凭据登录:

  • 用户名:Admin
  • 密码:zabbix

> ⚠️ 安全警告:首次登录后立即更改默认密码。导航到用户设置→更改密码并设置强大、唯一的密码。

在Zabbix中设置监控

安装并运行Zabbix后,是时候配置您的监控环境了。

添加主机

Zabbix术语中的”主机”是您想要监控的任何设备或系统——服务器、虚拟机、网络交换机或云实例。

  1. 导航到配置→主机
  2. 点击创建主机
  3. 填写主机名IP地址端口(默认代理端口:10050)
  4. 将主机分配给主机组(例如”Linux服务器”、”数据库”)
  5. 点击添加保存

应用监控模板

模板是针对特定用例的预构建项目、触发器、图表和仪表板集合。Zabbix附带数百个内置模板,涵盖:

  • Linux和Windows操作系统指标
  • Apache、Nginx和IIS Web服务器
  • MySQL、PostgreSQL和Oracle数据库
  • Cisco、Juniper和通用SNMP网络设备
  • Docker容器和Kubernetes集群

要应用模板:

  1. 打开主机配置
  2. 导航到模板选项卡
  3. 搜索并选择适当的模板(例如Template OS Linux by Zabbix agent
  4. 点击更新

配置自定义项目

如果内置模板不涵盖您的特定指标,请创建自定义监控项目:

  1. 转到配置→主机→项目
  2. 点击创建项目
  3. 定义(要测量的内容)、类型(Zabbix代理、SNMP、HTTP等)和更新间隔
  4. 设置值类型(数字、文本、日志等)

配置告警和触发器

触发器定义生成告警的条件。触发器根据阈值表达式评估收集的数据。

创建触发器

  1. 导航到配置→主机→触发器
  2. 点击创建触发器
  3. 编写触发器表达式,例如:
last(/your-host/system.cpu.util)>85

这在最后收集的值中CPU利用率超过85%时触发告警。

  1. 设置严重程度(信息、警告、平均、高、灾难)
  2. 点击添加

设置通知操作

  1. 转到配置→操作→触发器操作
  2. 点击创建操作
  3. 定义条件(哪些触发器激活此操作)
  4. 操作下,添加通知步骤——通知谁、通过哪种媒体类型以及在哪个升级阶段

配置媒体类型

媒体类型定义Zabbix如何传递通知:

  1. 导航到管理→媒体类型
  2. 配置电子邮件(SMTP服务器详情)、SMSWebhook集成
  3. 管理→用户→媒体下将媒体类型分配给用户

流行的webhook集成包括Slack、Microsoft Teams、Telegram和PagerDuty——所有这些都可以通过Zabbix的内置webhook模板进行配置。

Zabbix中的数据可视化

Zabbix最强大的功能之一是其可视化工具包,它将原始指标转化为可操作的智能。

仪表板

Zabbix仪表板完全可自定义。添加小部件用于:

  • 问题列表——按严重程度排序的活跃告警
  • 图表——任何受监控指标的时间序列图
  • 仪表和时钟——一目了然的状态指示器
  • 地图——可视化网络拓扑图
  • 顶部主机——按资源消耗排名

为不同的团队创建特定角色的仪表板——为您的NOC团队创建网络运营仪表板、为您的DBA团队创建数据库性能仪表板,以及为管理层创建执行摘要仪表板。

图表

导航到监控→主机→图表查看任何主机的预构建图表。您也可以创建自定义图表,覆盖多个指标——例如,在单个图表上绘制CPU使用率以及内存消耗和网络吞吐量。

网络地图

Zabbix地图提供网络拓扑的可视化表示。您可以:

  • 在自定义背景图像上放置主机图标
  • 在设备之间绘制链接
  • 根据实时状态对链接进行颜色编码
  • 从地图视图向下钻取到单个设备

Zabbix维护和性能调优

保持Zabbix更新

定期更新Zabbix以受益于安全补丁、错误修复和新功能:

sudo apt update && sudo apt upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent -y

管理数据库增长

在大型环境中,Zabbix数据库可能会快速增长。使用内置的管家自动清除旧数据:

  1. 导航到管理→常规→管家
  2. 设置历史和趋势数据的保留期(例如,历史30天,趋势365天)
  3. 启用启用内部管家进行自动清理

对于非常大的部署,考虑对MySQL或PostgreSQL数据库表进行分区以改进查询性能。

监控Zabbix本身

使用Zabbix的内置“Zabbix服务器健康”模板来监控监控平台本身。跟踪内部队列大小、处理时间和数据库性能,以在瓶颈影响监控可靠性之前捕获它们。

定期审查日志

检查Zabbix服务器日志中的警告和错误:

sudo tail -f /var/log/zabbix/zabbix_server.log

要注意的常见问题:

  • “无法连接到数据库”——数据库连接或凭据问题
  • “进程过多”——增加StartPollerszabbix_server.conf
  • “Zabbix代理不可用”——防火墙阻止端口10050或代理未运行

在AlexHost基础设施上部署Zabbix

Zabbix在可靠、低延迟的基础设施上表现最佳。对于生产部署,请考虑以下AlexHost解决方案:

  • VPS主机——适合小到中型Zabbix部署。可扩展的资源、SSD存储和完全的root访问权限使VPS成为一个绝佳的起点。
  • 专用服务器——对于监控数千台主机的大规模环境,专用服务器提供Zabbix所需的原始CPU能力、RAM和I/O性能。
  • 带cPanel的VPS——如果您更喜欢图形控制面板以及您的Zabbix部署,cPanel VPS提供便捷的管理界面。
  • SSL证书——使用SSL证书保护您的Zabbix Web前端,以加密所有管理流量并保护您的凭据。

Zabbix与其他监控工具的对比

功能ZabbixNagiosPrometheusDatadog
许可证开源(免费)开源(免费)开源(免费)商业(付费)
基于代理的监控
无代理监控
内置仪表板有限通过Grafana
自动发现有限有限
可扩展性非常高非常高
设置复杂性

Zabbix在功能丰富性、可扩展性和成本之间取得了很好的平衡——使其成为希望获得企业级监控而无需企业级许可费用的组织的首选。

关于Zabbix的常见问题

问:Zabbix的最低系统要求是什么?

答:对于小型部署(最多500台主机),具有2个CPU核心、4 GB RAM和50 GB SSD存储的服务器就足够了。更大的环境应相应扩展。

问:Zabbix可以监控云基础设施吗?

答:可以。Zabbix支持通过API集成和特定于云的模板监控AWS、Azure和Google Cloud资源。

问:Zabbix适合监控Docker和Kubernetes吗?

15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用