免费且开源的企业级监控解决方案:Zabbix
一、Zabbix 简介
Zabbix 是一款功能强大的企业级开源监控解决方案。它可以监控各种 IT 基础设施组件,包括网络设备、服务器、虚拟机、云服务、应用程序和数据库等。Zabbix 提供实时的监控、告警、报表和可视化功能,帮助用户及时发现和解决 IT 系统中的问题,保障系统的稳定性和可用性。
Zabbix 的主要特点包括:
- 灵活的数据采集: 支持多种数据采集方式,包括 Zabbix Agent、SNMP、IPMI、JMX、HTTP 等。用户可以根据不同的监控对象选择合适的采集方式。
- 强大的告警机制: 可以根据预设的阈值和条件触发告警,并通过邮件、短信、Webhook 等多种方式通知用户。告警可以进行升级、抑制和自定义。
- 丰富的可视化: 提供各种图表、仪表盘和网络拓扑图,帮助用户直观地了解监控数据的变化趋势和系统状态。用户可以自定义仪表盘以满足不同的需求。
- 可扩展性: 支持分布式监控,可以通过 Zabbix Proxy 扩展监控规模,适用于各种规模的 IT 环境。
- 模板化管理: 提供丰富的监控模板,可以快速部署对常见服务的监控。用户也可以自定义模板以方便管理。
- 安全可靠: 支持对 Zabbix 组件之间的通信进行加密,保障监控数据的安全性。同时提供高可用性方案,确保 Zabbix 系统的稳定运行。
- 完全开源: Zabbix 是完全开源的,用户可以免费使用和修改。
二、在 Debian 下安装 Zabbix
以下是在 Debian 系统下安装 Zabbix Server、Zabbix Frontend 和 Zabbix Agent 的步骤,以使用 MySQL 数据库和 Nginx Web 服务器为例。请根据您的具体需求选择相应的组件和数据库。
1. 添加 Zabbix 官方仓库:
首先,您需要添加 Zabbix 官方的 APT 仓库。请根据您使用的 Debian 版本执行相应的命令。以 Debian 12 (Bookworm) 为例:
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.0+debian12_all.deb
sudo dpkg -i zabbix-release_latest_7.0+debian12_all.deb
sudo apt update
注意: 请将 7.0
和 debian12
替换为您实际使用的 Zabbix 版本和 Debian 版本。您可以在 Zabbix 下载页面 找到对应的仓库信息。
2. 安装 Zabbix Server、Frontend、Agent 和相关组件:
执行以下命令安装 Zabbix Server、Frontend、Agent、MySQL 数据库支持和 Nginx Web 服务器:
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
3. 创建数据库和用户:
登录 MySQL 服务器并创建 Zabbix 数据库和用户,并授予相应的权限。请将 password
替换为您设置的密码:
mysql -uroot -p
在 MySQL 命令行中执行:
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;
EXIT;
4. 导入初始数据库架构和数据:
导入 Zabbix 的初始数据库架构和数据。系统会提示您输入之前创建的 Zabbix 用户的密码:
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
导入完成后,禁用 log_bin_trust_function_creators
选项:
mysql -uroot -p
SET GLOBAL log_bin_trust_function_creators = 0;
EXIT;
5. 配置 Zabbix Server 连接数据库:
编辑 Zabbix Server 的配置文件 /etc/zabbix/zabbix_server.conf
,找到以下参数并进行修改,将 DBPassword
设置为您在 MySQL 中为 Zabbix 用户设置的密码:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
6. 配置 Zabbix Frontend 的 PHP:
编辑 Nginx 的 Zabbix 配置文件 /etc/zabbix/nginx.conf
,取消注释并设置 listen
和 server_name
指令。例如:
listen 8080;
server_name your_zabbix_domain_or_ip;
您可以根据您的网络环境修改监听端口和服务器名称。
7. 启动 Zabbix Server、Agent 和 Nginx:
启动 Zabbix Server、Agent 和 Nginx 服务,并设置开机自启:
sudo systemctl restart zabbix-server zabbix-agent nginx php$(php -v | awk '/PHP/ {print substr($2, 1, 3)}')-fpm
sudo systemctl enable zabbix-server zabbix-agent nginx php$(php -v | awk '/PHP/ {print substr($2, 1, 3)}')-fpm
注意: php$(php -v | awk '/PHP/ {print substr($2, 1, 3)}')-fpm
用于匹配您系统上安装的 PHP-FPM 版本。
8. 访问 Zabbix Web 界面:
在您的 Web 浏览器中访问您在 Nginx 配置文件中设置的 server_name
或服务器 IP 地址,加上您设置的监听端口(如果不是默认的 80 端口)。例如:http://your_zabbix_domain_or_ip:8080
。
您将看到 Zabbix 的安装向导。按照向导的指示完成前端的配置,包括设置管理员账号和密码等。默认的管理员账号是 Admin
,密码是 zabbix
。
三、配置 Zabbix
成功安装 Zabbix 后,可以通过 Web 界面进行配置。以下是一些常见的配置任务:
- 添加主机: 在 "Configuration" -> "Hosts" 中添加您要监控的服务器、网络设备等。需要指定主机名、可见名称、主机组、IP 地址或 DNS 名称以及使用的 Agent 接口等信息。
- 添加监控项: 在 "Configuration" -> "Hosts" 中选择一个主机,然后点击 "Items" 创建监控项。监控项定义了您要收集的数据,例如 CPU 使用率、内存使用率、磁盘空间、网络接口流量等。您可以选择不同的监控项类型和配置参数。
- 添加触发器: 在 "Configuration" -> "Hosts" 中选择一个主机,然后点击 "Triggers" 创建触发器。触发器定义了告警的条件。当监控项的值满足触发器的条件时,Zabbix 会生成告警。
- 添加图形: 在 "Monitoring" -> "Hosts" 中选择一个主机,然后点击 "Graphs" 创建图形。图形可以将监控项的数据以图表的形式展示出来,方便您分析数据的变化趋势。
- 创建仪表盘: 在 "Monitoring" -> "Dashboards" 中创建自定义仪表盘,将您关心的监控数据以各种小组件的形式展示在一个页面上。
- 配置告警通知: 在 "Administration" -> "Media types" 中配置告警通知的方式,例如邮件、短信、Webhook 等。然后在 "Administration" -> "Users" 中为用户配置接收告警的媒介。最后,在 "Configuration" -> "Actions" 中创建告警动作,定义在哪些情况下发送告警通知给哪些用户。
- 使用模板: Zabbix 提供了丰富的模板,可以快速部署对常见服务的监控。您可以在 "Configuration" -> "Templates" 中导入和链接模板到您的主机。
四、 Zabbix使用手册
Zabbix 使用手册,点链接可以访问官方使用手册,非常详细。