Zabbix是一个免费开源的IT基础设施监控解决方案。它允许你监控网络、服务器、虚拟机和云服务。Zabbix采用客户端/服务器架构,你可以在目标服务器上安装Zabbix Agent,并通过Zabbix仪表盘进行监控。Zabbix还支持SNMP和IPMI等通用监控协议。
本教程将指导你在Debian 12服务器上安装Zabbix监控解决方案。你将使用PostgreSQL作为数据库服务器、Nginx作为Web服务器、PHP-FPM作为PHP处理器来安装Zabbix。
前提条件
开始本教程之前,请确保你已具备以下条件:
- 一台Debian 12服务器
- 一个具有管理员权限的非root用户
安装PostgreSQL服务器
默认情况下,Zabbix支持MySQL和PostgreSQL等RDBMS数据库。本教程将使用PostgreSQL作为Zabbix的安装数据库。首先,你将从Debian仓库通过APT包管理器安装PostgreSQL。
运行以下apt命令更新Debian软件包索引。
sudo apt update

现在运行以下命令安装PostgreSQL。输入Y确认安装。
sudo apt install postgresql postgresql-contrib

安装完成后,检查postgresql服务状态以确保其正在运行。你将看到PostgreSQL状态显示为“running(exited)”,这表示服务正在运行,但systemd找不到需要监控的守护进程。
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

创建PostgreSQL数据库和用户
安装PostgreSQL后,你需要为Zabbix创建新的用户和数据库。在这一步中,你将使用createuser命令创建PostgreSQL角色,使用createdb命令创建数据库。
运行以下命令创建PostgreSQL用户“zabbix”。输入并确认数据库用户的密码。
sudo -u postgres createuser --pwprompt zabbix
运行以下命令创建数据库“zabbix”,默认拥有者为“zabbix”。该数据库和用户将用于Zabbix安装。
sudo -u postgres createdb -O zabbix zabbix

安装Zabbix
现在你已经安装并配置了PostgreSQL,接下来添加Zabbix仓库,并安装zabbix-frontend-php、zabbix-server-pgsql、zabbix-agent等软件包。这也将自动安装Nginx Web服务器和PHP-FPM,用于Zabbix前端。
使用以下命令下载Zabbix仓库。本例将在Debian服务器上安装Zabbix 7.2。下载后,文件zabbix-release_latest_7.2+debian12_all.deb将保存在当前工作目录中。
wget https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.2+debian12_all.deb
运行以下dpkg命令将Zabbix仓库添加到系统中。
sudo dpkg -i zabbix-release_latest_7.2+debian12_all.deb

之后,运行以下apt命令刷新Debian仓库并安装Zabbix服务器。本例将安装使用PostgreSQL数据库、Nginx Web服务器和PHP-FPM的Zabbix服务器和Zabbix Agent。
sudo apt update
sudo apt install zabbix-server-pgsql zabbix-frontend-php php8.2-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
输入Y继续安装。

将Zabbix与PostgreSQL集成
安装Zabbix软件包后,下一步是将Zabbix与PostgreSQL数据库服务器集成。你需要导入Zabbix数据库架构并修改/etc/zabbix/zabbix_server.conf文件中的PostgreSQL凭证信息。
将Zabbix的数据库架构导入到“zabbix”数据库,使用用户“zabbix”。提示时输入你的zabbix密码。
zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
接下来,使用nano编辑器打开Zabbix配置文件/etc/zabbix/zabbix_server.conf。
sudo nano /etc/zabbix/zabbix_server.conf
取消默认的DBHost、DBName、DBUser和DBPassword,填写你的PostgreSQL凭证信息。
DBHost = localhost DBName = zabbix DBUser = zabbix DBPassword = password
完成后保存文件并退出编辑器。
配置Nginx Web服务器
现在你已经将Zabbix与PostgreSQL集成,接下来配置Nginx Web服务器。默认情况下,Zabbix的Nginx配置文件位于/etc/zabbix/nginx.conf,你需要修改默认域名和端口。
使用nano编辑器打开Zabbix的Nginx配置文件/etc/zabbix/nginx.conf。
sudo nano /etc/zabbix/nginx.conf
将默认的listen选项修改为端口8080。本例将在Nginx的8080端口上运行Zabbix。
listen 8080;
将server_name选项修改为你的域名。本例使用本地域名,你可以通过/etc/hosts文件创建。
server_name zabbix.howtoforge.local;
完成后保存文件并退出编辑器。
最后,运行以下命令验证Nginx配置。如果配置正确,你将看到“syntax is ok - test is successful”的输出。
sudo nginx -t

重启Zabbix服务
此时你已经安装了Zabbix软件包,并将Zabbix与PostgreSQL服务器和Nginx Web服务器集成。现在你需要重启每个Zabbix服务以应用所有更改,然后检查每个服务是否正常运行。
首先,运行以下systemctl命令启用zabbix-server、zabbix-agent、nginx和php8.2-fpm服务。
sudo systemctl enable zabbix-server zabbix-agent nginx php8.2-fpm

运行以下命令重启Zabbix服务,应用新的配置。
sudo systemctl restart zabbix-server zabbix-agent nginx php8.2-fpm
最后,检查Zabbix服务状态,确保服务正常运行。
sudo systemctl status zabbix-server zabbix-agent nginx php8.2-fpm
以下显示zabbix-server正在运行。

以下显示zabbix-agent也在运行。

以下显示nginx服务正在运行。

最后,你可以看到php8.2-fpm服务正在服务器上运行。

Zabbix安装向导
所有Zabbix服务运行后,你现在可以访问Zabbix安装界面了。
在本地计算机上,使用管理员权限编辑/etc/hosts文件。Windows用户可以以管理员身份编辑C:\Windows\System32\drivers\etc\hosts文件。
在hosts文件中,定义你的Zabbix服务器IP地址和域名:
192.168.10.10 zabbix.howtoforge.local
保存文件并退出编辑器。
现在打开浏览器访问http://zabbix.howtoforge.local:8080/。如果Zabbix安装成功,你将看到Zabbix安装向导。
选择Zabbix的默认语言,然后点击“Next step”继续。

在预检查阶段,确保服务器配置满足Zabbix要求。

选择数据库为PostgreSQL,输入你的数据库详细信息。

输入服务器名称并选择Zabbix的默认时区。

检查所有配置,然后点击“Next step”继续。

安装完成后,你将看到“Congratulations! You have successfully installed the Zabbix frontend.”的消息。
点击“Finish”完成安装。

现在你将被重定向到Zabbix登录页面。输入用户名Admin和密码zabbix,然后点击“Sign in”。

如果一切正常,你将看到以下Zabbix管理仪表盘。

总结
恭喜!你已经完成了在Debian 12服务器上安装Zabbix监控解决方案。你已经将Zabbix与PostgreSQL数据库服务器、Nginx Web服务器和PHP-FPM一起运行。你的服务器上还运行着zabbix-agent,用于监控Zabbix实例。从这里开始,你可以添加新的目标主机进行监控,配置多种服务的通知,然后通过Zabbix监控你的服务。