文章目录
- 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 核心组件
-
Zabbix Server:核心组件,负责接收Agent发送的监控数据、存储数据、处理告警规则、展示监控信息。需部署在性能较强的服务器上,支持集群部署以提高可用性。
-
Zabbix Agent:部署在被监控设备上的客户端程序,负责采集本地的监控数据(如系统资源、应用指标),并定期发送给Server或Proxy。支持主动模式(Agent主动上报数据)和被动模式(Server主动拉取数据)。
-
Zabbix Proxy:代理组件,用于分布式监控场景。可接收Agent发送的数据并转发给Server,减轻Server的网络压力和负载,尤其适合跨机房、跨区域的监控环境。Proxy本身不存储数据,数据最终仍存储在Server的数据库中。
-
Zabbix Database:用于存储监控数据、配置信息(如主机、模板、告警规则等)。支持的数据库有MySQL、PostgreSQL、Oracle等,其中MySQL是最常用的选择。
-
Zabbix Web Interface:Web管理界面,基于PHP开发,提供可视化的操作界面,运维人员可通过该界面进行主机配置、监控项设置、告警规则配置、查看监控图表等操作。
-
Zabbix Sender:用于主动向Server或Proxy发送自定义监控数据的工具,适用于需要手动推送数据的场景(如业务指标统计结果)。
-
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