一、Zabbix简介
Zabbix 是一款开源的分布式监控解决方案,由 Alexei Vladishev 于 2001 年创立,专为实时监控 IT 基础设施(服务器、网络设备、应用程序等)的性能和状态而设计。其核心目标是通过自动化监控、告警和可视化,帮助运维团队快速定位问题并优化资源。
- 主要功能
多协议数据采集
- Agent 监控:通过部署轻量级 Agent(支持 Linux/Windows)实时采集 CPU、内存、磁盘等指标。
- 无 Agent 监控:支持 SNMP(网络设备)、JMX(Java应用)、IPMI(硬件传感器)、HTTP/API(自定义接口)等。
- 日志监控:分析日志文件,匹配关键字触发告警(如错误日志检测)。
- 自定义脚本:通过 UserParameter 扩展监控项,灵活适配业务需求。
告警与通知
- 多级告警:支持触发器(Trigger)定义复杂阈值条件(如连续3次CPU超90%)。
- 告警升级:可配置告警自动升级策略(如未及时处理则通知更高级别人员)。
- 通知渠道:邮件、Slack、Telegram、短信(需集成第三方服务)、Webhook 等。
自动化与扩展
- 自动发现:扫描网络设备或云资源,动态添加监控对象。
- API 驱动:提供 RESTful API,支持与 CI/CD、运维工具链集成。
- 分布式监控:通过 Proxy 节点实现跨地域、大规模环境的分层监控。
架构组成
- Zabbix Server:核心组件,负责数据处理、告警计算和存储。
- Zabbix Agent:部署在被监控主机上,采集本地数据。
- Zabbix Proxy:可选组件,用于分布式环境中缓存和转发数据。
- Web 前端:基于 PHP 的交互界面,提供配置、监控和报告功能。
- 数据库:支持 MySQL/MariaDB、PostgreSQL、Oracle 等,存储配置和历史数据。
二、安装步骤
1.安装必要组件;
- 更新dnf系统工具(安装完毕后如果没有生效可以reboot执行虚拟机重启)
sudo dnf update -y
备注: 之前使用yum安装了之后可能会缺少文件的现象,所以现在我们是有dnf,用法是一致的;
- 安装系统的必要工具
sudo dnf install -y vim wget curl net-tools
- 安装EPEL仓库(Zabbix有一些依赖包还需要从EPEL仓库中下载)
sudo dnf install -y epel-release
- 添加Zabbix官方仓库(用于后面下载Zabbix组件)
sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/$(rpm -E %rhel)/x86_64/zabbix-release-6.0-4.el$(rpm -E %rhel).noarch.rpm
- 安装Zabbix组件
sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent -y
备注:如果在安装组件的过程中出现一下问题的话需要执行下面的解决办法;
[root@localhost ~]# sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent -y
上次元数据过期检查:0:00:10 前,执行于 2025年04月10日 星期四 14时18分43秒。
错误:
问题: package zabbix-web-deps-6.0.39-release1.el9.noarch from zabbix requires zabbix-web = 6.0.39-release1.el9, but none of the providers can be installed
- cannot install both zabbix-web-6.0.39-release1.el9.noarch from zabbix and zabbix-web-1:6.0.36-1.el9.noarch from epel
- package zabbix-nginx-conf-6.0.39-release1.el9.noarch from zabbix requires zabbix-web-deps = 6.0.39-release1.el9, but none of the providers can be installed
- package zabbix-web-mysql-1:6.0.36-1.el9.noarch from epel requires zabbix-web = 1:6.0.36-1.el9, but none of the providers can be installed
- 无法为该任务安装最佳候选
(尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)
解决办法:
1.修改EPEL仓库的配置文件
sudo vi /etc/yum.repos.d/epel.repo
2.添加规则,过滤从EPEL仓库去寻找zabbi一切相关的安装包
在 [epel] 部分添加排除规则:excludepkgs=zabbix*
- 安装数据库并配置(以MariaDB数据库为例)
sudo dnf install -y mariadb-server
sudo systemctl enable --now mariadb # 设置启动数据库
- 配置数据库
# 安全初始化数据库
sudo mysql_secure_installation
# 按照提示设置root密码
sudo mysql_secure_installation
# 创建Zabbix数据库和用户
mysql -u root -p # 进入数据库
> CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Abc@123!';
> GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
> FLUSH PRIVILEGES;
> EXIT;
- 导入初始数据(输入刚刚数据库设置的用户为zabbix的密码Abc@123!)
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix
2.配置Zabbix Server
- 编辑配置文件(进入配置文件/etc/zabbix/zabbix_server.conf后可以通过/号来进行字段搜索进行修改)
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Abc@123!
- 启动Zabbix服务
sudo systemctl enable --now zabbix-server zabbix-agent
3.配置前端Web界面(Nginx + PHP)
- 安装PHP和Nginx
sudo dnf install -y nginx php-fpm php-mysqlnd php-gd php-xml php-bcmath php-mbstring
- 配置PHP(进入/etc/php.ini配置文件,可以按照自己的需求设置)
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
- 配置启动Nginx
sudo mv /etc/nginx/conf.d/zabbix.conf.example /etc/nginx/conf.d/zabbix.conf
sudo systemctl enable --now nginx php-fpm
通过以上操作,我们可以通过ip访问到我们的Zabbix的Web界面了,下面开始Web之旅!
4.Web界面
好了,经过我们傻瓜式的下一步点点点就可以得到下面这个界面了,这样我们就搭建成功了!撒花!!(账号默认Admin,密码默认zabbix)
验证安装!
祝各位轻舟已过万重山,这才是刚刚开始!!
三、被监控主机加入
1.服务器主机
- 使用web端(图片步骤!)
2.被控主机
- 被控主机命令行;
安装Zabbix Agent
sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/$(rpm -E %rhel)/x86_64/zabbix-release-6.0-4.el$(rpm -E %rhel).noarch.rpm sudo dnf install -y zabbix-agent
- 配置Agent
sudo vim /etc/zabbix/zabbix_agentd.conf # 修改以下参数: Server=zabbix-server-ip # 被动模式:允许Zabbix Server连接 ServerActive=zabbix-server-ip # 主动模式:Agent主动上报 Hostname=Web-Server-01 # 必须与Zabbix Web中设置的Host name完全一致
- 启动服务并放行防火墙(如果是测试学习捡起防火墙直接关闭)
sudo systemctl enable --now zabbix-agent sudo firewall-cmd --permanent --add-port=10050/tcp sudo firewall-cmd --reload
3.成功
下面我们就可以看到我们创建的监控主机的状态成绿色的了,这样说明我们监控成功了!
结尾:
以上只是简单的搭建,学习的可以看看,大佬就别看了,对你们是0帮助!笔记只为了后面自己更好的使用!