ZABBIX概述

作者dmxsp

1月 14, 2025

1.Zabbix 概述

Zabbix 是一款开源的企业级分布式监控系统,旨在对各种网络设备、服务器、虚拟机、应用程序等进行实时监控和性能评估。它可以收集、存储和展示监控数据,并在出现问题时提供警报通知,帮助管理员及时发现和解决问题,保障系统的正常运行。

官网

2.主要功能特点

监控对象广泛

支持对多种类型的监控对象进行监控,包括但不限于:

服务器监控:如 Linux、Windows 服务器的 CPU 使用率、内存使用情况、磁盘 I/O、网络流量等关键指标。

网络设备监控:可监控路由器、交换机等设备的端口状态、带宽使用、设备温度等。

应用程序监控:像 MySQL、PostgreSQL 等数据库,以及 Apache、Nginx 等 Web 服务器的性能指标。

虚拟机监控:监控虚拟机的资源使用情况,如 VMware、KVM 等虚拟化平台。

可以通过 Zabbix Agent 代理程序在被监控主机上安装,以主动或被动模式向 Zabbix Server 发送数据,也支持无代理监控模式,如通过 SNMP 协议对网络设备进行监控。

灵活的监控项和触发器设置

监控项:

可以定义各种监控项,这些监控项代表了需要收集的数据,如系统的负载、进程数、文件系统的可用空间等。

可以使用自定义的键值来收集自定义数据,满足不同的监控需求。

触发器:

基于监控项的阈值设置触发器,当监控项的值达到设定的阈值时,触发器会触发相应的动作。

触发器可使用表达式来定义复杂的条件,如可以设置当 CPU 使用率超过 80% 持续 5 分钟时触发警报。

丰富的报警机制

当触发器触发时,Zabbix 可以通过多种方式发送警报通知,如电子邮件、短信、自定义脚本等。

可以对警报进行分级管理,不同严重程度的警报可以发送给不同的接收者,如将严重问题发送给高级管理员,将一般问题发送给普通运维人员。

可设置警报的时间周期,避免在非工作时间频繁发送警报。

数据存储和可视化

数据存储:

可以将监控数据存储在本地数据库(如 MySQL、PostgreSQL 等)或外部存储系统中。

数据存储具有一定的时间范围,可以根据不同的监控项设置不同的数据保留周期,以节省存储空间。

可视化:

提供丰富的图形界面,可生成各种图表,如折线图、饼图、柱状图等,直观地展示监控数据的趋势和变化。

支持创建自定义的仪表盘,将多个重要的监控项图表组合在一起,方便管理员查看

3.系统架构

Zabbix Server

是整个监控系统的核心,负责接收来自 Zabbix Agent 或其他数据源的数据,处理数据存储、评估触发器,并发送警报通知。

可以进行分布式部署,对于大规模监控环境,可以使用多个 Zabbix Server 分担监控任务,提高系统的扩展性。

Zabbix Agent

安装在被监控主机上,负责收集本地的监控数据,并将数据发送给 Zabbix Server。

可以通过配置文件设置采集频率、监控项等信息,支持主动和被动模式向 Zabbix Server 发送数据。

Zabbix Proxy

用于在分布式环境中,当被监控主机距离 Zabbix Server 较远或网络环境复杂时,可作为代理来收集数据并发送给 Zabbix Server,减轻 Zabbix Server 的负担。

可以在防火墙隔离的网络环境中发挥重要作用,使得 Zabbix Server 可以通过 Zabbix Proxy 间接监控内部网络的主机。

4.使用场景

数据中心监控

对数据中心内的服务器、存储设备、网络设备等进行统一的监控,确保数据中心的稳定运行。

可以通过分布式部署 Zabbix 系统,对跨地域的数据中心进行集中监控。

应用性能监控

对各种业务应用的性能进行监控,如电子商务网站的响应时间、交易成功率、订单处理时间等,保障业务的正常开展。

云环境监控

在云平台中,监控虚拟机、容器等资源的使用情况,为资源的优化和扩展提供数据支持

5.安装和使用流程

安装 Zabbix Server

选择合适的操作系统,如 Linux 系统,安装 Zabbix Server 软件包,同时需要安装相应的数据库软件,用于存储监控数据。

配置 Zabbix Server 的参数,如数据库连接信息、监听端口等。

安装 Zabbix Agent

在被监控主机上安装 Zabbix Agent 软件包,根据不同的操作系统进行相应的配置。

配置 Agent 与 Zabbix Server 的通信信息,如 Server 的 IP 地址、端口等。

配置监控项和触发器

在 Zabbix 管理界面中添加监控项,选择监控的对象和指标。

为监控项设置触发器,定义警报条件。

配置报警

设置接收警报的用户和用户组,添加用户的联系方式,如邮箱、手机号等。

配置警报发送的方式和时间,选择合适的报警媒介,如邮件服务器、短信网关等。

6.优势和局限性

优势

开源免费:可以免费使用,适合中小企业和创业公司,降低监控成本。

功能强大:提供丰富的监控功能,能够满足绝大多数企业的监控需求。

可扩展性:支持分布式部署,可通过添加 Zabbix Server 和 Proxy 扩展监控范围和性能。

社区支持:有活跃的社区,可以方便地找到帮助和资源,解决使用过程中的问题。

局限性

初始配置复杂:对于初学者来说,需要花费一定的时间来熟悉和配置系统的各个组件,尤其是在大规模部署时,配置工作较为繁琐。

性能瓶颈:在超大规模监控环境下,如果配置不当,可能会出现性能瓶颈,需要进行性能优化

7.核心特性

数据收集:Zabbix 可以通过多种方式收集数据,如主动检查(agent主动发送数据到server)、被动检查(server请求agent或设备)、简单网络管理协议(SNMP)、IPMI、JMX等。

分布式监控:支持分布式监控架构,可以部署多个Zabbix Proxy来分担主服务器的压力,尤其适合大型网络环境。

可视化:提供丰富的图形界面,用户可以创建自定义仪表板来显示所需的信息,如历史趋势图、最新数据点等。

告警与通知:当监控指标超出设定阈值时,Zabbix 能够触发告警,并通过邮件、短信、即时通讯工具等多种渠道发送通知给指定联系人。

自动化操作:支持自动化的响应动作,例如重启服务、执行脚本等,以应对某些预设条件下的事件。

Web接口:拥有直观易用的Web前端,方便管理和配置监控项、主机、模板等资源。

灵活扩展:可通过API进行二次开发,定制化满足特定需求;还有大量的第三方插件和社区贡献的功能模块可供选择。

报表生成:可以生成各种类型的报告,帮助企业了解其IT基础设施的健康状况和发展趋势。

高可用性和容错能力:Zabbix Server 支持集群部署,保证了系统的高可用性;同时提供了数据库复制等功能确保数据的安全性和一致性。

8.生命周期

Zabbix版本发布计划

我们目前的发布计划周期为六个月,每六个月将有一个新的Zabbix稳定版本发布。

Zabbix发布频率一览

每一年半Zabbix将会发布

Zabbix LTS (长期支持版本) 发布。 Zabbix LTS版本在五年内为Zabbix用户提供支持服务,包括三年的全面支持(基础的、紧急的以及安全性上的问题)和两年的最低限度支持(仅限紧急的和安全性上的问题)。Zabbix LTS版本的发布将体现在版本号第一位数字的变动上。

Zabbix 标准版本发布。 标准Zabbix发行版对Zabbix客户提供全面支持(一般支持、关键支持、安全支持)6个月,直到下一次Zabbix稳定版发布,此外还将为客户提供限制支持(关键支持和安全支持)6个月。Zabbix标准版本发布会导致第二个版本号的更改。

(!) 当任何Zabbix版本其生命周期到期后,Zabbix将会停止进一步的维护更新,包括blocker和严重bug修复。因此,我们强烈建议您将Zabbix监控解决方案升级到最新版本。

Zabbix LTS (长期支持版本)的生命周期

Zabbix标准版本的生命周期

关于Zabbix LTS

LTS代表“长期支持版本”。Zabbix LTS版本每一年半发布一次,且为Zabbix客户提供五年的支持服务

3年全面支持 – 支持修复基础的、紧急的以及安全性上的问题

2年最低限度支持 – 仅限支持修复紧急的和安全性上的问题

Zabbix LTS(长期支持)版本没有任何额外的或隐藏的消费成本。Zabbix是一个100%开源软件,每个人都可以下载使用。

Zabbix LTS 特点

支持期限更长,例如:为潜在的安全问题及bug迭代更新

令人期待的高质量更新以及全新的功能点

快速更新,可适用于多变的复杂环境

在版本升级方面,更容易规划管理

9.配置要求

官网

规模 平 CPU 内存       数据库 受监控的主机数量
小型 C ntOS V rtual Appliance M SQL InnoDB 1 0
中型 C ntOS 2 CPU cores/2GB M SQL InnoDB 5 0
大型 R dHat Enterprise Linux 4 CPU cores/8GB R ID10 MySQL InnoDB 或 PostgreSQL &g ;1000
极大型 Re Hat Enterprise Linux 8 PU cores/16GB Fa t RAID10 MySQL InnoDB 或 PostgreSQL &gt 10000

Zabbix Server

选择依据

监控规模

对于小型环境,例如只有几十台服务器和少量网络设备的环境,可以使用单机版的 Zabbix Server。它可以轻松处理这种规模的数据收集、存储和分析工作。

对于中型到大型环境,即几百台甚至数千台服务器的环境,考虑使用分布式架构,将 Zabbix Server 部署在性能较强的服务器上,如使用多核 CPU、大容量内存(至少 16GB 以上)和快速存储(如 SSD)的服务器,以确保它可以高效处理大量的监控数据。

性能要求

如果需要高频率的监控数据采集和快速的警报响应,需要选择性能更高的服务器作为 Zabbix Server,以避免性能瓶颈。

考虑服务器的网络带宽,确保 Zabbix Server 与被监控对象之间的数据传输不受网络瓶颈的限制。

功能考虑

确保选择的 Zabbix Server 版本支持所需的数据库类型,如 MySQL、PostgreSQL 或 Oracle 等,不同数据库在性能和功能上可能有差异。

考虑是否需要支持高级功能,如分布式监控、加密通信等。

Zabbix Agent

选择依据

被监控对象的操作系统

对于 Linux 系统,选择相应的 Linux 版本的 Zabbix Agent,确保其支持你的 Linux 发行版,如 Ubuntu、CentOS 等。

对于 Windows 系统,使用 Windows 版的 Zabbix Agent,并且根据 Windows 的不同版本进行适配,如 Windows Server 2012、2016 等。

监控需求

如果需要对一些特殊的系统资源或应用程序进行监控,确保 Agent 支持相应的监控功能。例如,如果你要监控容器化环境,确保 Agent 支持对 Docker 或 Kubernetes 的监控。

对于一些自定义的监控需求,需要 Agent 可以支持自定义监控项和自定义脚本的执行。

部署方式

主动模式或被动模式

在主动模式下,Agent 主动向 Zabbix Server 发送数据,适合网络环境中 Zabbix Server 无法主动访问 Agent 的情况,或者需要更灵活的监控项采集频率。

被动模式下,Zabbix Server 向 Agent 发起请求获取数据,适合网络环境中 Server 可以方便访问 Agent 的情况,并且对于简单的监控环境较为适用。

Zabbix Proxy

使用场景

远程监控:当被监控对象与 Zabbix Server 之间存在网络隔离或距离较远时,使用 Zabbix Proxy 可以作为中间代理,收集远程位置的数据并发送给 Zabbix Server。

大规模监控:在大规模监控环境中,使用多个 Zabbix Proxy 可以分担 Zabbix Server 的工作压力,提高系统的扩展性和性能。

分布式环境:对于分布在不同地理位置或不同网络区域的被监控对象,Zabbix Proxy 可以在每个区域部署,提高监控的效率和可靠性。

性能考虑

根据所负责的监控范围和数据量,选择合适性能的服务器来部署 Zabbix Proxy,一般来说,它需要有足够的内存和处理能力来缓存和传输监控数据

网络要求

Zabbix Server 和 Agent 之间的通信

确保 Zabbix Server 和 Agent 之间的网络畅通,根据所选择的通信模式(主动或被动),确保相应的端口(默认 Zabbix Server 端口为 10051,Agent 端口为 10050)开放。

对于跨网络区域的监控,需要考虑防火墙规则,允许 Zabbix Server 和 Agent 之间的 TCP 或 UDP 通信。

Zabbix Server 和 Zabbix Proxy 之间的通信

确保它们之间的网络连接可靠,配置相应的端口(通常也是 10051)开放,以便 Proxy 向 Server 传输数据。

Web 访问

对于 Zabbix 的 Web 界面访问,确保端口(通常是 80 或 443)开放,并且有足够的网络带宽以支持多个用户同时访问,特别是在查看详细的监控数据和报表时

其他配置考虑

监控项和触发器

合理设置监控项的数量和采集频率,避免过度采集导致性能问题。对于不太重要的监控项,可以降低采集频率或延长数据存储周期。

精心设计触发器的表达式,确保它们准确反映系统状态,避免误报或漏报。

模板和组管理

利用模板来简化配置工作,将相似的监控项和触发器组织在一起,方便部署和管理。

对被监控对象进行分组管理,以便于查找和维护,同时根据不同的组设置不同的监控策略和警报规则。

10.常用查看状态命令

项目 对应检查命令
网站/业务/api: curl/wget
服务:systemctl/service/chkconfig(c6)
进程:ps/pstree/pgrep/pidstat/top/htop
CPU:top/htop/vmstat/mpstat/lscpu/cpuinfo/w/uptime/sar
内存:top/free/ps/iotop(swap)/vmstat/mpstat/sar/hcache(buffer+cache)
磁盘:iotop/iostat/sar #磁盘测试命令 dd,fio
网络:iftop(整体带宽使用情况)/nethogs(精确到进程)/nstat/ifstat/mtr/sar
硬件:Megacli(raid)/ipmitool(温度,cpu风扇转速)/lm_sensors(温度)

作者 dmxsp

发表回复

您的电子邮箱地址不会被公开。