zabbix

文章目录

  • Zabbix
    • Zabbix基础认知
      • [1.1 什么是Zabbix](#1.1 什么是Zabbix)
      • [1.2 Zabbix的核心特点](#1.2 Zabbix的核心特点)
    • Zabbix核心组件与架构
      • [2.1 核心组件](#2.1 核心组件)
      • [2.2 架构模式](#2.2 架构模式)
        • [2.2.1 单机架构](#2.2.1 单机架构)
        • [2.2.2 分布式架构](#2.2.2 分布式架构)
    • Zabbix安装与部署
      • [3.1 环境准备](#3.1 环境准备)
      • [3.2 关闭防火墙和SELinux](#3.2 关闭防火墙和SELinux)
      • [3.3 安装依赖包](#3.3 安装依赖包)
      • [3.4 启动并配置数据库](#3.4 启动并配置数据库)
      • [3.5 安装Zabbix Server和Agent](#3.5 安装Zabbix Server和Agent)
      • [3.6 导入Zabbix数据库初始数据](#3.6 导入Zabbix数据库初始数据)
      • [3.7 配置Zabbix Server](#3.7 配置Zabbix Server)
      • [3.8 配置Zabbix Web(PHP)](#3.8 配置Zabbix Web(PHP))
      • [3.9 启动Zabbix Server和Agent](#3.9 启动Zabbix Server和Agent)

Zabbix

Zabbix基础认知

1.1 什么是Zabbix

Zabbix是一款开源的企业级分布式监控系统,能够对服务器、网络设备、应用程序等IT基础设施的状态进行实时监控,采集各类指标数据(如CPU使用率、内存占用、网络带宽、磁盘空间等),并支持异常告警、数据可视化展示、报表生成等功能,帮助运维人员及时发现并解决系统故障,保障业务稳定运行。

1.2 Zabbix的核心特点

  • 开源免费:基于GPLv2协议开源,无商业授权费用,可自由定制和二次开发。

  • 分布式架构:支持多区域、多机房的分布式监控,通过Proxy节点分担Server压力,适合大规模IT环境。

  • 全面的监控范围:可监控硬件设备(服务器、交换机、路由器等)、操作系统(Linux、Windows、Unix等)、应用程序(MySQL、Nginx、Tomcat等)、云服务(阿里云、腾讯云等)及自定义业务指标。

  • 灵活的告警机制:支持邮件、短信、微信、钉钉等多种告警方式,可设置多级告警阈值、告警升级策略和告警抑制,避免告警风暴。

  • 强大的数据可视化:提供丰富的图表(折线图、柱状图、饼图等)、仪表盘、拓扑图,支持自定义报表和数据导出。

  • 高扩展性:通过API接口可与其他系统(如运维管理平台、工单系统)集成,支持自定义监控脚本和模板,满足个性化监控需求。

Zabbix核心组件与架构

2.1 核心组件

  1. Zabbix Server:核心组件,负责接收Agent发送的监控数据、存储数据、处理告警规则、展示监控信息。需部署在性能较强的服务器上,支持集群部署以提高可用性。

  2. Zabbix Agent:部署在被监控设备上的客户端程序,负责采集本地的监控数据(如系统资源、应用指标),并定期发送给Server或Proxy。支持主动模式(Agent主动上报数据)和被动模式(Server主动拉取数据)。

  3. Zabbix Proxy:代理组件,用于分布式监控场景。可接收Agent发送的数据并转发给Server,减轻Server的网络压力和负载,尤其适合跨机房、跨区域的监控环境。Proxy本身不存储数据,数据最终仍存储在Server的数据库中。

  4. Zabbix Database:用于存储监控数据、配置信息(如主机、模板、告警规则等)。支持的数据库有MySQL、PostgreSQL、Oracle等,其中MySQL是最常用的选择。

  5. Zabbix Web Interface:Web管理界面,基于PHP开发,提供可视化的操作界面,运维人员可通过该界面进行主机配置、监控项设置、告警规则配置、查看监控图表等操作。

  6. Zabbix Sender:用于主动向Server或Proxy发送自定义监控数据的工具,适用于需要手动推送数据的场景(如业务指标统计结果)。

  7. Zabbix Get:用于从Agent端主动获取监控数据的工具,常用于调试Agent是否正常工作。

2.2 架构模式

2.2.1 单机架构

所有组件(Server、Database、Web Interface)部署在同一台服务器上,Agent部署在被监控设备上。适用于小型监控环境(如监控设备数量少于50台),优点是部署简单、维护成本低,缺点是扩展性差,Server故障会导致整个监控系统失效。

2.2.2 分布式架构

在多机房、多区域的监控环境中,部署多个Proxy节点,每个Proxy负责接收对应区域Agent的数据,再统一转发给Server。Server和Database可部署集群以提高可用性。优点是可分担Server负载、减少跨区域网络传输压力,扩展性强,适合大规模监控环境(如监控设备数量大于100台)。

Zabbix安装与部署

3.1 环境准备

  • 操作系统:CentOS 7(最小安装)

  • 内存:至少2GB(建议4GB及以上)

  • CPU:至少2核

  • 磁盘:至少20GB可用空间

  • 网络:确保服务器能访问互联网(用于下载依赖包),关闭防火墙或开放相关端口(80、10050、10051)

  • 依赖包:Apache、MySQL/MariaDB、PHP(Zabbix Web需要)

3.2 关闭防火墙和SELinux

bash 复制代码
systemctl stop firewalld
systemctl disable firewalld

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3.3 安装依赖包

安装Apache、MariaDB、PHP及相关组件

bash 复制代码
yum install -y httpd mariadb-server mariadb php php-mysql php-gd php-xml php-bcmath php-mbstring php-ldap php-pear

3.4 启动并配置数据库

启动MariaDB服务

bash 复制代码
systemctl start mariadb
systemctl enable mariadb

初始化数据库

bash 复制代码
mysql_secure_installation

登录数据库,创建Zabbix数据库和用户

bash 复制代码
mysql -u root -p
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix123';  # zabbix123为自定义密码
flush privileges;
exit;

3.5 安装Zabbix Server和Agent

安装

bash 复制代码
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all

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

3.6 导入Zabbix数据库初始数据

导入初始数据(5.0版本为例,其他版本路径可能略有不同)

bash 复制代码
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix

3.7 配置Zabbix Server

编辑Zabbix Server配置文件

bash 复制代码
vim /etc/zabbix/zabbix_server.conf

DBName=zabbix          # 数据库名
DBUser=zabbix          # 数据库用户
DBPassword=zabbix123   # 数据库密码
DBSocket=/var/lib/mysql/mysql.sock  # MySQL socket路径(CentOS 7默认路径)
LogFile=/var/log/zabbix/zabbix_server.log  # 日志文件路径

3.8 配置Zabbix Web(PHP)

编辑PHP配置文件

bash 复制代码
vim /etc/httpd/conf.d/zabbix.conf

# 确保以下参数配置正确(时区需与服务器一致)
php_value date.timezone Asia/Shanghai

# 启动Apache服务
systemctl start httpd
systemctl enable httpd

3.9 启动Zabbix Server和Agent

bash 复制代码
systemctl start zabbix-server
systemctl enable zabbix-server
systemctl start zabbix-agent
systemctl enable zabbix-agent

# 检查服务状态
systemctl status zabbix-server zabbix-agent httpd mariadb
相关推荐
阿方索17 小时前
zabbix
zabbix
OpsEye17 小时前
Zabbix Server内存泄漏排查及优化实践
zabbix
lvbinemail1 天前
添加zabbix-agentd.service
linux·运维·服务器·zabbix·监控
2301_800050991 天前
Zabbix和ELK
笔记·elk·zabbix
小波小波轩然大波1 天前
ELK 与 Zabbix
elk·zabbix
2301_767902641 天前
Zabbix
运维·zabbix
神秘面具男032 天前
Zabbix 部署与监控
zabbix
一心0923 天前
zabbix proxy 参数优化-配置缓存使用率(%)> 85%
缓存·zabbix·zabbix proxy
FIT2CLOUD飞致云7 天前
操作教程丨通过1Panel快速安装Zabbix,搭建企业级监控系统
运维·服务器·开源·zabbix·监控·1panel