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服务状态以确保其正在运行。你将看到PostgreSQL状态显示为“running(exited)”,这表示服务正在运行,但systemd找不到需要监控的守护进程。

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

检查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

添加Zabbix仓库

之后,运行以下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包

将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

配置PostgreSQL和Nginx

重启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服务

运行以下命令重启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 Server运行状态

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

Zabbix Agent运行状态

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

Nginx服务运行状态

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

PHP-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安装向导-语言选择

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

Zabbix系统检查

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

PostgreSQL数据库配置

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

时区和服务器名配置

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

确认安装配置

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

点击“Finish”完成安装。

Zabbix安装成功

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

Zabbix登录页面

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

Zabbix管理仪表盘

总结

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