答案:在Linux上安装Zabbix需准备操作系统、数据库、Web服务器、PHP环境及网络配置。具体包括更新系统,安装MariaDB、Apache、PHP及其扩展,配置Zabbix官方仓库,部署Zabbix Server、Web前端和Agent,设置数据库并导入初始数据,调整PHP参数与时区,启动相关服务并开放防火墙端口,最后通过Web界面完成配置并添加被监控主机。

在Linux系统上安装和配置Zabbix以实现服务器监控,核心在于搭建一个稳定的监控平台,它包含Zabbix服务器、数据库、Web前端以及被监控主机上的Zabbix Agent。这个过程需要细致的操作,从系统环境准备到最终的Web界面配置,每一步都关乎监控系统的稳定性和效率。理解并妥善处理各个组件间的依赖关系和配置细节,是成功部署的关键。
要在Linux(以CentOS 8/9为例,其他发行版如Ubuntu/Debian思路类似,命令会有差异)上安装和配置Zabbix,以下是我觉得比较稳妥的详细步骤:
系统更新与依赖安装 首先,更新系统并安装必要的软件包。这总是第一步,能避免很多意想不到的问题。
sudo dnf update -y sudo dnf install -y epel-release sudo dnf install -y httpd mariadb-server php php-mysqlnd php-gd php-xml php-bcmath php-mbstring php-json php-ldap php-cli
安装Zabbix仓库 Zabbix官方提供了各个发行版的仓库,这能让安装变得非常简单。我们以Zabbix 6.0 LTS为例。
# 对于CentOS 8/9 sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm sudo dnf clean all
安装Zabbix服务器、Web前端和Agent
sudo dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent
配置数据库 Zabbix需要一个数据库来存储所有监控数据。MariaDB是MySQL的替代品,在Linux上很常用。
sudo systemctl start mariadb sudo systemctl enable mariadb sudo mysql_secure_installation # 设置root密码,删除匿名用户,禁止root远程登录等 # 登录数据库并创建Zabbix数据库和用户 sudo mysql -uroot -p # 输入之前设置的root密码 CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'your_zabbix_db_password'; # 替换为你的密码 GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; FLUSH PRIVILEGES; EXIT;
接着,导入Zabbix的初始数据库schema和数据。这个过程可能需要几分钟。
sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
输入之前为
zabbix
配置Zabbix服务器 编辑Zabbix服务器配置文件,主要是告诉它如何连接数据库。
sudo vi /etc/zabbix/zabbix_server.conf
找到并修改以下行(如果被注释,请取消注释):
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=your_zabbix_db_password # 替换为你的密码
配置PHP for Zabbix Web前端 Zabbix Web前端对PHP有特定的要求,比如时区和内存限制。
sudo vi /etc/php-fpm.d/zabbix.conf # 或者 /etc/php.ini,具体取决于你的PHP配置
修改或添加以下配置:
php_value[max_execution_time] = 300 php_value[memory_limit] = 256M php_value[post_max_size] = 16M php_value[upload_max_filesize] = 2M php_value[max_input_time] = 300 php_value[date.timezone] = Asia/Shanghai # 根据你所在的地理位置修改
对于Apache,Zabbix安装包通常会提供一个
zabbix.conf
/etc/httpd/conf.d/
启动并启用Zabbix服务
sudo systemctl restart httpd php-fpm mariadb zabbix-server zabbix-agent sudo systemctl enable httpd php-fpm mariadb zabbix-server zabbix-agent
配置防火墙 开放HTTP(80)、Zabbix Agent(10050)和Zabbix Server(10051)端口。
sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --add-port=10050/tcp --permanent sudo firewall-cmd --add-port=10051/tcp --permanent sudo firewall-cmd --reload
通过Web界面完成Zabbix设置 打开浏览器,访问
http://你的服务器IP地址或域名/zabbix
Admin
zabbix
配置Zabbix Agent(在被监控主机上) 在需要监控的Linux服务器上安装Zabbix Agent。
# 安装Zabbix仓库 (与Zabbix Server步骤2类似) sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm sudo dnf clean all sudo dnf install -y zabbix-agent # 配置Agent sudo vi /etc/zabbix/zabbix_agentd.conf
修改以下行:
Server=你的Zabbix服务器IP或域名 ServerActive=你的Zabbix服务器IP或域名 Hostname=该主机的唯一名称 # 建议使用FQDN或一个易于识别的名称
# 启动并启用Agent sudo systemctl start zabbix-agent sudo systemctl enable zabbix-agent # 配置防火墙 sudo firewall-cmd --add-port=10050/tcp --permanent sudo firewall-cmd --reload
最后,在Zabbix Web界面中添加主机,将Agent配置的主机名与Zabbix中添加的主机名保持一致,并关联相应的模板。
坦白说,Zabbix的安装过程虽然有官方文档,但对新手来说,其依赖关系和环境准备是常常让人头疼的地方。在我看来,提前规划和准备远比遇到问题再解决要高效得多。
首先,操作系统选择是基础。主流的Linux发行版,如RHEL/CentOS、Ubuntu、Debian,Zabbix都支持。选择你最熟悉或团队最常用的就好,这关系到后续的包管理、服务管理命令。比如,RHEL系用
dnf
yum
apt
其次,数据库是Zabbix的心脏,所有监控数据都存储在这里。MySQL/MariaDB和PostgreSQL是官方支持的两种。对于大多数中小型部署,MariaDB是一个非常好的选择,它易于安装和管理,性能也足够。如果你有大规模部署的需求,或者已经在使用PostgreSQL,那么选择PostgreSQL也很好。关键在于,你要对所选数据库有基本的管理能力,比如创建数据库、用户、授权以及后续的备份和维护。
Web服务器是提供Zabbix前端界面的载体,Apache和Nginx是主要选项。Zabbix官方通常会提供与Apache集成的配置包,这让Apache的部署相对简单。如果你对Nginx更熟悉,或者有性能上的考虑,Nginx配合PHP-FPM也是一个非常棒的组合。无论选择哪个,都需要确保它能正确解析PHP文件。
PHP及其模块是Zabbix前端运行的基石。Zabbix对PHP的版本有明确要求(比如Zabbix 6.0要求PHP 7.4到8.1),并且需要一系列的PHP扩展模块,例如
php-mysqlnd
php-pgsql
php-gd
php-xml
php-bcmath
php-mbstring
php-json
php-ldap
date.timezone
php.ini
网络连通性与防火墙规则是常被忽视但又至关重要的环节。Zabbix Server需要与Zabbix Agent(端口10050)通信,接收来自Agent的数据;Zabbix Agent也可能需要主动连接Server(端口10051,用于主动模式监控)。Web前端则需要通过HTTP/HTTPS(端口80/443)对外提供服务。因此,务必在服务器和客户端上正确配置防火墙,开放必要的端口。如果你的网络环境比较复杂,还需要考虑路由和NAT问题。
最后,系统资源。虽然Zabbix对轻量级监控的资源消耗不高,但如果监控大量主机或采集高频率数据,CPU、内存和磁盘I/O都会成为瓶颈。数据库的性能尤其关键,建议为数据库预留足够的内存(如
innodb_buffer_pool_size
总的来说,一个干净的、更新过的Linux系统,搭配一个你熟悉且配置得当的LAMP或LEMP环境,是Zabbix安装成功的良好开端。
确保Zabbix服务器与客户端(Agent)之间的通信安全,这不仅仅是技术配置问题,更是整个监控系统可靠性的基石。在我看来,有几个层面是必须考虑的。
首先,网络层面的隔离和限制是最直接的手段。
其次,Zabbix内置的加密功能是保障数据传输安全的核心。Zabbix从3.0版本开始支持TLS(Transport Layer Security)加密,包括基于证书和基于预共享密钥(PSK, Pre-Shared Key)两种方式。
TLSConnect
TLSAccept
TLSCertFile
TLSKeyFile
TLSServerCertFile
TLSPSKIdentity
TLSPSKFile
无论选择哪种TLS方式,在Zabbix Web界面添加或配置主机时,都应在“加密”选项卡中选择对应的加密方式,并填写相应的PSK Identity或证书路径。
再者,Agent本身的配置安全也不容忽视。
zabbix_agentd.conf
AllowKey
DenyKey
AllowKey
DenyKey
最后,系统层面的安全最佳实践也同样适用于Zabbix环境。
综合来看,我个人倾向于在生产环境中使用TLS基于证书的加密方式,虽然初期投入略大,但其提供的端到端安全性和身份验证能力是无可替代的。对于一些非核心或测试环境,PSK则是一个快速且有效的折衷方案。
当Zabbix开始监控大量主机和数据时,性能瓶颈会很快显现出来,尤其是在数据库、Zabbix Server本身以及Web前端。同时,为了避免单点故障,高可用性(HA)配置也变得至关重要。这绝对是一个系统性工程,需要从多个层面去考虑。
性能优化:
数据库优化:这通常是第一个也是最重要的优化点。
innodb_buffer_pool_size
history*
trends*
Zabbix Server参数调优:
StartPollers
StartTrappers
StartDiscoverers
CacheSize
HistoryCacheSize
TrendCacheSize
ValueCacheSize
HousekeepingFrequency
以上就是如何在Linux系统中安装和配置Zabbix监控?实现服务器监控的详细步骤的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号