Zabbix 是一个开源监控软件工具,适用于各种 IT 组件,包括网络、服务器、虚拟机和云服务。Zabbix 提供监控指标,其中包括网络利用率、CPU 负载和磁盘空间消耗。Zabbix 具有丰富的功能集,使用户能够监控的不仅仅是主机,在为每种情况选择最合适的选项时为管理员提供了极大的灵活性。
Zabbix 使用基于 XML 的模板,其中包含要监控的元素。Zabbix 的后端是用 C 编程编写的,PHP 用于 Web 前端。 Zabbix 可以根据为您的 IT 环境定义的指标和阈值向您发送 警报 以通知不同的事件和问题。它支持基于代理和无代理的监控。但是 Zabbix 代理安装可以帮助您获得详细的监控,例如 CPU 负载、网络、磁盘空间利用率。
在撰写本文时,最新的 Zabbix 版本是 6.0。在本指南中,我们将学习如何在 Ubuntu 22.04 上安装和配置 Zabbix。
1、确保服务器包是最新的
在继续之前,让我们使用以下命令确保我们的服务器包是最新的:
sudo apt update
sudo apt -y upgrade
让我们也安装一些我们需要的常用包
sudo apt install -y vim
2.安装Mariadb
Zabbix 需要 mysql 才能运行。Mariadb 是一个流行的开源关系管理系统。我们将在本指南中使用它。它在默认存储库中以 mariadb-server. 有关详细指南,请查看如何在 Ubuntu 22.04 中安装和配置 Mariadb 10。
安装 Mariadb:
sudo apt install -y mariadb-server
安装 mariadb 后,您可以使用以下命令确认详细信息:
$ apt-cache policy mariadb-server
mariadb-server:
Installed: 1:10.6.7-2ubuntu1.1
Candidate: 1:10.6.7-2ubuntu1.1
Version table:
*** 1:10.6.7-2ubuntu1.1 500
500 http://europe-west1.gce.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages
100 /var/lib/dpkg/status
1:10.6.7-2ubuntu1 500
500 http://europe-west1.gce.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
该服务将默认启动。使用以下命令确认状态:
$ sudo systemctl status mariadb
● mariadb.service - MariaDB 10.6.7 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-10-20 18:48:44 UTC; 18s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Process: 104565 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
Process: 104566 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 104568 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
Process: 104607 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 104609 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
Main PID: 104597 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 11 (limit: 4392)
Memory: 56.9M
CPU: 594ms
CGroup: /system.slice/mariadb.service
└─104597 /usr/sbin/mariadbd
Oct 20 18:48:44 unstable-ubuntusrv mariadbd[104597]: Version: '10.6.7-MariaDB-2ubuntu1.1' socket: '/run/mysqld/mysqld.sock' port: 3306 Ubuntu 22.04
Oct 20 18:48:44 unstable-ubuntusrv systemd[1]: Started MariaDB 10.6.7 database server.
Oct 20 18:48:44 unstable-ubuntusrv /etc/mysql/debian-start[104611]: Upgrading MySQL tables if necessary.
Oct 20 18:48:44 unstable-ubuntusrv /etc/mysql/debian-start[104614]: Looking for 'mysql' as: /usr/bin/mysql
Oct 20 18:48:44 unstable-ubuntusrv /etc/mysql/debian-start[104614]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Oct 20 18:48:44 unstable-ubuntusrv /etc/mysql/debian-start[104614]: This installation of MariaDB is already upgraded to 10.6.7-MariaDB.
Oct 20 18:48:44 unstable-ubuntusrv /etc/mysql/debian-start[104614]: There is no need to run mysql_upgrade again for 10.6.7-MariaDB.
Oct 20 18:48:44 unstable-ubuntusrv /etc/mysql/debian-start[104614]: You can use --force if you still want to run mysql_upgrade
Oct 20 18:48:44 unstable-ubuntusrv /etc/mysql/debian-start[104622]: Checking for insecure root accounts.
Oct 20 18:48:44 unstable-ubuntusrv /etc/mysql/debian-start[104628]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
要确保 mariadb 在启动时启动,请使用以下 systemd 命令启用它:
sudo systemctl enable mariadb
一旦 mysql 服务运行,您需要对其进行保护。Mysql 提供了一个命令行实用程序来执行此操作:
sudo mysql_secure_installation
上面的命令将引导您通过提示来保护和设置 mysql 实例的 root 密码。
要确认安装的 MariaDB 版本,请运行以下命令:
$ mysql -V
mysql Ver 15.1 Distrib 10.3.32-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
3、为Zabbix创建mysql用户
我们将为 zabbix 创建一个专用用户。在此处查看有关管理 mysql 权限的指南 。
连接到mysql服务器:
mysql -u root -p
提供您的 root 密码后,在 mysql 提示符下输入以下内容:
create database zabbix character set utf8 collate utf8_bin;
create user 'zabbix_user'@'%' identified by 'S0mStrongPa$$word';
grant all privileges on zabbix.* to 'zabbix_user'@'%';
保存用户名、数据库名和密码,稍后我们将需要它们。
现在我们已经配置了 mysql 连接,让我们进入下一部分安装和配置 PHP。
4、安装PHP和所需的php模块
Zabbix 服务器使用 PHP。我们需要安装和配置 PHP 以使 zabbix 工作。
安装 PHP 和Zabbix安装所需的 PHP 模块 :
sudo apt install -y \
php \
php-cli \
php-common \
php-fpm \
php-curl \
php-mysqlnd
检查php版本
$ php -v
PHP 8.1.2 (cli) (built: Aug 8 2022 07:28:23) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
5、安装 Apache Web 服务器
接下来,让我们在系统中安装 Apache。使用此命令安装 Apache Web 服务器。
sudo apt install -y apache2
Apache 2 将默认启动。使用以下命令检查状态:
$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-10-20 18:50:48 UTC; 3min 36s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 113972 (apache2)
Tasks: 34 (limit: 4392)
Memory: 34.9M
CPU: 308ms
CGroup: /system.slice/apache2.service
├─113972 /usr/sbin/apache2 -k start
├─114005 /usr/sbin/apache2 -k start
├─114006 /usr/sbin/apache2 -k start
├─114007 /usr/sbin/apache2 -k start
├─114008 /usr/sbin/apache2 -k start
├─114009 /usr/sbin/apache2 -k start
└─114010 /usr/sbin/apache2 -k start
Oct 20 18:50:47 unstable-ubuntusrv systemd[1]: Starting The Apache HTTP Server...
Oct 20 18:50:48 unstable-ubuntusrv systemd[1]: Started The Apache HTTP Server.
Active: active (running) 表示该服务现在已启动并正在运行。
要在启动时启用服务,请使用以下命令:
sudo systemctl enable apache2
6、为 Zabbix 编辑 PHP 和 php-fpm 配置
更新 php 配置以优化 Zabbix 安装。
打开php.ini文件
sudo vim /etc/php/8.1/cli/php.ini
然后将这些设置修改为显示的值。更新时区以适合您的。
memory_limit = 2G
max_execution_time = 360
date.timezone = Africa/Nairobi
cgi.fix_pathinfo=0
接下来让我们编辑 php-fpm 设置。
sudo vim /etc/php/8.1/fpm/pool.d/www.conf
然后更新这些值
listen = /run/php/php8.1-fpm.sock
user = www-data
group = www-data
listen.allowed_clients = 0.0.0.0
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = dynamic
保存更改并退出文件。
7、启动并启用php-fpm服务
php-fpm 服务默认启动。通过检查状态确认:
$ sudo systemctl status php8.1-fpm
● php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-10-20 18:50:53 UTC; 9min ago
Docs: man:php-fpm8.1(8)
Main PID: 114987 (php-fpm8.1)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 4392)
Memory: 8.2M
CPU: 129ms
CGroup: /system.slice/php8.1-fpm.service
├─114987 "php-fpm: master process (/etc/php/8.1/fpm/php-fpm.conf)" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
├─114988 "php-fpm: pool www" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
└─114989 "php-fpm: pool www" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Oct 20 18:50:53 unstable-ubuntusrv systemd[1]: Starting The PHP 8.1 FastCGI Process Manager...
Oct 20 18:50:53 unstable-ubuntusrv systemd[1]: Started The PHP 8.1 FastCGI Process Manager.
使服务在启动时启动
sudo systemctl enable php8.1-fpm
至此,我们已经成功安装了 LAMP 堆栈。我们现在可以安装 Zabbix
8、安装Zabbix
Zabbix 在默认的 Ubuntu 存储库中不可用,但它提供了一个存储库。
首先下载并安装zabbix仓库
curl -LO https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-2%2Bubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.2-2%2Bubuntu22.04_all.deb
安装存储库后,安装 Zabbix 服务器、Zabbix 代理和相关的 Zabbix 包。
sudo apt update && sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
接下来,导入数据库模式:
sudo zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix_user -p zabbix
当提示输入密码时,提供 Zabbix 用户的密码。
编辑 Zabbix 配置文件并更新数据库凭据
sudo vim /etc/zabbix/zabbix_server.conf
确保 DBName、 DBUser、 DBPassword 值反映您为数据库提供的值
DBHost=localhost
DBName=zabbix
DBUser=zabbix_user
DBPassword=S0mStrongPa$$word
保存更改并退出配置文件。
要应用所做的所有更改,请重新启动所有服务,如图所示
sudo systemctl restart zabbix-server zabbix-agent apache2
此外,请考虑在启动时启用它们。
sudo systemctl enable zabbix-server zabbix-agent apache2
9、配置防火墙
如果您安装并启用了 ufw 防火墙,请启用 web 和 Zabbix 端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10050:10051/tcp
sudo ufw enable
10、完成Zabbix安装
要完成安装,请启动您的浏览器,然后转到此 URL:
http://server-ip/zabbix
迎接您的第一页是 Zabbix 欢迎页面,它粗体显示您正在安装的版本。选择安装语言并单击“下一步”按钮。
在下一页中,您将获得先决条件列表,一直向下滚动并确保所有先决条件都在最后一列中获得“ OK ”标签。必须满足所有要求。然后点击“下一步”按钮。
在“配置数据库连接”页面上。填写您的数据库详细信息。对于数据库端口,将其保留为 0。按“下一步”。
然后指定您的服务器名称,确认您的时区并随意选择您喜欢的主题。然后按“下一步”。
确认所有设置,如果一切正常,请按“下一步”以完成安装。
如果您提供的所有设置都正确,您将收到一条祝贺消息,通知您成功设置 Zabbix 的前端。按“完成”按钮。
这会将您定向到 Zabbix 登录页面。使用以下凭据登录:
Username: Admin
Password: zabbix
然后单击“登录”以访问 Zabbix 仪表板。您可以稍后更改密码以增加安全性,因此不必担心。
最后,您将可以访问 Zabbix 的仪表板
这就对了!我们已经 在Ubuntu 22.04上成功安装了Zabbix 监控工具 。