本教程适用于以下操作系统版本
- 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 语言选择页面:

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

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

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

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

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

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

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

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