本教程适用于以下操作系统版本

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 18.04 (Bionic Beaver)

本页内容

  • 先决条件
  • 安装 Zabbix 仓库
  • 安装 Zabbix 监控服务器
  • 配置 MariaDB 数据库
  • 配置 Zabbix 服务器
  • 访问 Zabbix 仪表盘
  • 结论

Zabbix 是一款强大的开源监控解决方案,用于监控 IT 基础设施。借助 Zabbix,你可以监控各种 IT 组件,包括网络、服务器、虚拟机和云服务。Zabbix 提供基于 Web 的用户界面,用于跟踪和监控网络利用率、CPU 负载和磁盘空间消耗等指标。你可以使用这些指标来检查 IT 基础设施的当前健康状况,并检测硬件或软件组件的问题。Zabbix 在被监控的服务器上提供 agent 软件来收集数据并发送到 Zabbix 服务器。

本教程将向你展示如何在 Ubuntu 22.04 上安装 Zabbix 监控服务器。

先决条件

  • 一台运行 Ubuntu 22.04 的服务器。
  • 服务器上已配置了 root 密码。

安装 Zabbix 仓库

Zabbix 软件包在 Ubuntu 22.04 默认仓库中不可用。因此,你需要在服务器上下载并安装 Zabbix 官方仓库。

首先,使用以下命令从其官方网站下载 Zabbix 6 仓库软件包:

wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-4%2Bubuntu22.04_all.deb

接下来,使用以下命令安装它:

dpkg -i zabbix-release_6.2-4+ubuntu22.04_all.deb

Zabbix 仓库添加到 APT 后,你可以继续安装 Zabbix 服务器。

安装 Zabbix 监控服务器

首先,使用以下命令更新 Zabbix 仓库:

apt-get update -y

接下来,使用以下命令安装 Zabbix 服务器及其他所需组件:

apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent zabbix-frontend-php zabbix-apache-conf -y

安装完所有软件包后,编辑 PHP 配置文件并设置你的时区:

nano /etc/php/8.1/apache2/php.ini

修改以下行:

date.timezone = UTC

完成后保存并关闭文件。

配置 MariaDB 数据库

Zabbix 使用 MariaDB 作为数据库后端。你可以通过运行以下命令安装 MariaDB 数据库服务器:

apt-get install mariadb-server -y

MariaDB 服务器安装完成后,使用以下命令加固 MariaDB 安装并设置 root 密码:

mariadb-secure-installation

按如下方式回答所有问题:

Enter current password for root (enter for none): 

Switch to unix_socket authentication [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

接下来,使用以下命令连接到 MariaDB shell:

mysql -u root -p

登录后,使用以下命令为 Zabbix 创建数据库和用户:

MariaDB [(none)]> CREATE DATABASE zabbix character set utf8mb4 collate utf8mb4_bin;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'password';

接下来,使用以下命令刷新权限并退出 MariaDB:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

完成后,你可以继续下一步。

配置 Zabbix 服务器

接下来,编辑 Zabbix 配置文件,并使用以下文件定义你的数据库:

nano /etc/zabbix/zabbix_server.conf

修改以下行:

DBName=zabbix
DBUser=zabbix
DBPassword=password

完成后保存并关闭文件。接下来,使用以下命令导入 Zabbix 数据:

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix

最后,使用以下命令重启并启用所有服务:

systemctl restart apache2
systemctl enable zabbix-server zabbix-agent apache2
systemctl restart zabbix-server zabbix-agent

你现在可以使用以下命令检查 Zabbix 服务器状态:

systemctl status zabbix-server

你将看到以下输出:

? zabbix-server.service - Zabbix Server
     Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-11-28 16:17:18 UTC; 6s ago
    Process: 13840 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
   Main PID: 13844 (zabbix_server)
      Tasks: 48 (limit: 464122)
     Memory: 85.3M
     CGroup: /system.slice/zabbix-server.service
             ??13844 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
             ??13853 "/usr/sbin/zabbix_server: ha manager" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??13854 "/usr/sbin/zabbix_server: service manager #1 [processed 0 events, updated 0 event tags, deleted 0 problems, synced 0 ser>
             ??13855 "/usr/sbin/zabbix_server: configuration syncer [synced configuration in 0.226889 sec, idle 60 sec]"
             ??13858 "/usr/sbin/zabbix_server: alert manager #1 [sent 0, failed 0 alerts, idle 5.100929 sec during 5.101308 sec]"
             ??13859 "/usr/sbin/zabbix_server: alerter #1 started" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??13860 "/usr/sbin/zabbix_server: alerter #2 started" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??13861 "/usr/sbin/zabbix_server: alerter #3 started" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??13862 "/usr/sbin/zabbix_server: preprocessing manager #1 [queued 0, processed 5 values, idle 5.024623 sec during 5.027861 sec]"
             ??13863 "/usr/sbin/zabbix_server: preprocessing worker #1 started" ""
             ??13864 "/usr/sbin/zabbix_server: preprocessing worker #2 started" ""
             ??13865 "/usr/sbin/zabbix_server: preprocessing worker #3 started" ""
             ??13866 "/usr/sbin/zabbix_server: lld manager #1 [processed 0 LLD rules, idle 5.006720sec during 5.006902 sec]"
             ??13867 "/usr/sbin/zabbix_server: lld worker #1 started" "" "" "" "" "" "" "" "" "" "" ""
             ??13868 "/usr/sbin/zabbix_server: lld worker #2 started" "" "" "" "" "" "" "" "" "" "" ""
             ??13869 "/usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes]"
             ??13870 "/usr/sbin/zabbix_server: timer #1 [updated 0 hosts, suppressed 0 events in 0.001594 sec, idle 41 sec]"
             ??13872 "/usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.000712 sec, idle 5 sec]"
             ??13873 "/usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.000529 sec, idle 60 sec]"
             ??13875 "/usr/sbin/zabbix_server: history syncer #1 [processed 0 values, 0 triggers in 0.000020 sec, idle 1 sec]"
             ??13877 "/usr/sbin/zabbix_server: history syncer #2 [processed 4 values, 2 triggers in 0.001925 sec, idle 1 sec]"
             ??13878 "/usr/sbin/zabbix_server: history syncer #3 [processed 0 values, 0 triggers in 0.000013 sec, idle 1 sec]"
             ??13879 "/usr/sbin/zabbix_server: history syncer #4 [processed 0 values, 0 triggers in 0.000025 sec, idle 1 sec]"
             ??13880 "/usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.000911 sec, idle 3 sec]"
             ??13881 "/usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000057 sec, idle 5 sec]"
             ??13882 "/usr/sbin/zabbix_server: self-monitoring [processed data in 0.000031 sec, idle 1 sec]"
             ??13883 "/usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.006489 sec, idle 5 sec]"

要检查 Zabbix agent 状态,运行以下命令:

systemctl status zabbix-agent

你将看到以下输出:

? zabbix-agent.service - Zabbix Agent
     Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-11-28 16:17:18 UTC; 37s ago
    Process: 13842 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
   Main PID: 13846 (zabbix_agentd)
      Tasks: 6 (limit: 464122)
     Memory: 6.0M
     CGroup: /system.slice/zabbix-agent.service
             ??13846 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
             ??13847 "/usr/sbin/zabbix_agentd: collector [idle 1 sec]" "" "" "" "" "" "" "" "" "" ""
             ??13848 "/usr/sbin/zabbix_agentd: listener #1 [waiting for connection]"
             ??13849 "/usr/sbin/zabbix_agentd: listener #2 [waiting for connection]"
             ??13850 "/usr/sbin/zabbix_agentd: listener #3 [waiting for connection]"
             ??13851 "/usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]" "" "" ""

Nov 28 16:17:17 ubuntu22041 systemd[1]: Starting Zabbix Agent...
Nov 28 16:17:18 ubuntu22041 systemd[1]: Started Zabbix Agent.

要检查 Apache 状态,运行以下命令:

systemctl status apache2

你将看到以下输出:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-11-28 16:17:08 UTC; 1min 5s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 13828 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 13832 (apache2)
      Tasks: 6 (limit: 464122)
     Memory: 12.3M
     CGroup: /system.slice/apache2.service
             ??13832 /usr/sbin/apache2 -k start
             ??13833 /usr/sbin/apache2 -k start
             ??13834 /usr/sbin/apache2 -k start
             ??13835 /usr/sbin/apache2 -k start
             ??13836 /usr/sbin/apache2 -k start
             ??13837 /usr/sbin/apache2 -k start

Nov 28 16:17:08 ubuntu22041 systemd[1]: Starting The Apache HTTP Server...

访问 Zabbix 仪表盘

现在,打开你的 Web 浏览器,使用 URL http://your-server-ip/zabbix 访问 Zabbix Web 界面。你应该会看到 Zabbix 语言选择页面:

如何在 Ubuntu 22.04 上安装 Zabbix 监控工具

选择你的语言并点击 Next step。你应该会看到先决条件检查页面:

如何在 Ubuntu 22.04 上安装 Zabbix 监控工具

如果所有检查都通过,则点击 Next step 按钮。你应该会看到数据库连接页面:

如何在 Ubuntu 22.04 上安装 Zabbix 监控工具

填写你的数据库信息并点击 Next step 按钮。你应该会看到设置页面:

如何在 Ubuntu 22.04 上安装 Zabbix 监控工具

定义你的 Zabbix 服务器名称、时区、主题,然后点击 Next step 按钮。你应该会看到安装摘要页面:

如何在 Ubuntu 22.04 上安装 Zabbix 监控工具

如果一切正常,点击 Next step 按钮开始安装。Zabbix 安装完成后,你应该会看到以下页面:

如何在 Ubuntu 22.04 上安装 Zabbix 监控工具

点击 Finish 按钮完成安装。你应该会看到 Zabbix 登录页面:

如何在 Ubuntu 22.04 上安装 Zabbix 监控工具

输入默认用户名 Admin 和密码 zabbix,然后点击 Sign in 按钮。你应该在以下页面看到 Zabbix 仪表盘:

如何在 Ubuntu 22.04 上安装 Zabbix 监控工具

结论

恭喜!你已经成功在 Ubuntu 22.04 上安装了 Zabbix 监控服务器。现在你可以在远程服务器上安装 Zabbix agent,并从 Zabbix 仪表盘开始监控它们。如果你有任何问题,随时问我。