作为 Write for DOnations 计划的一部分,作者选择了 计算机历史博物馆 来接受捐赠。
介绍
Zabbix 是用于网络和应用程序的开源监控软件。 它提供对从服务器、虚拟机、网络设备和 Web 应用程序收集的数千个指标的实时监控。 这些指标可以帮助您确定 IT 基础架构的当前运行状况,并在客户投诉之前检测硬件或软件组件的问题。 有用的信息存储在数据库中,因此您可以随着时间的推移分析数据并提高所提供服务的质量或计划设备升级。
Zabbix 使用多种选项来收集指标,包括对用户服务和客户端-服务器架构的无代理监控。 为了收集服务器指标,它使用受监控客户端上的一个小代理来收集数据并将其发送到 Zabbix 服务器。 Zabbix 支持服务器和连接的客户端之间的加密通信,因此您的数据在通过不安全的网络传输时受到保护。
Zabbix 服务器将其数据存储在由 MySQL 或 PostgreSQL 驱动的关系数据库中。 您还可以将历史数据存储在 Elasticsearch 和 TimescaleDB 等 NoSQL 数据库中。 Zabbix 提供了一个 Web 界面,因此您可以查看数据和配置系统设置。
在本教程中,您将在两台 Ubuntu 20.04 机器上配置 Zabbix。 一个将配置为 Zabbix 服务器,另一个配置为您将监控的客户端。 Zabbix 服务器将使用 MySQL 数据库记录监控数据,并使用 Nginx 服务于 Web 界面。
先决条件
要遵循本教程,您将需要:
- 按照 Initial Server Setup Guide for Ubuntu 20.04 设置两台 Ubuntu 20.04 服务器,包括具有
sudo
权限的非 root 用户和配置有ufw
的防火墙。 在一台服务器上,您将安装 Zabbix; 本教程将把它称为 Zabbix 服务器。 它将监控您的第二台服务器; 这第二台服务器将被称为 第二台 Ubuntu 服务器 。 - 运行 Zabbix 服务器的服务器需要安装 Nginx、MySQL 和 PHP。 按照我们的 Ubuntu 20.04 LEMP 堆栈指南 的步骤 1-3 在您的 Zabbix 服务器上进行配置。
- 一个注册的域名。 本教程将自始至终使用
your_domain
。 您可以从 Namecheap 购买一个域名,通过 Freenom 免费获得一个,或者使用您选择的域名注册商。 - 为您的 Zabbix 服务器设置了以下两个 DNS 记录。 如果您使用的是 DigitalOcean,请参阅我们的 DNS 文档 了解如何添加它们的详细信息。
- 带有
your_domain
的 A 记录指向您的 Zabbix 服务器的公共 IP 地址。 - 带有
www.your_domain
的 A 记录指向您的 Zabbix 服务器的公共 IP 地址。
- 带有
此外,由于 Zabbix 服务器用于访问您不希望未经授权的用户访问的有关您的基础设施的有价值信息,因此通过安装 TLS/SSL 证书来确保服务器安全非常重要。 这是可选的,但强烈建议这样做。 如果您想保护您的服务器,请按照本教程第 3 步之后的 Let's Encrypt on Ubuntu 20.04 指南进行操作。
第 1 步 — 安装 Zabbix 服务器
首先,您需要在安装了 MySQL、Nginx 和 PHP 的服务器上安装 Zabbix。 以非 root 用户身份登录到这台机器:
ssh sammy@zabbix_server_ip_address
Zabbix 可以在 Ubuntu 的包管理器中使用,但是已经过时了,所以请使用 官方 Zabbix 存储库 安装最新的稳定版本。 下载并安装存储库配置包:
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb sudo dpkg -i zabbix-release_5.0-1+focal_all.deb
您将看到以下输出:
OutputSelecting previously unselected package zabbix-release. (Reading database ... 64058 files and directories currently installed.) Preparing to unpack zabbix-release_5.0-1+focal_all.deb ... Unpacking zabbix-release (1:5.0-1+focal) ... Setting up zabbix-release (1:5.0-1+focal) ...
更新包索引,以便包含新的存储库:
sudo apt update
然后安装支持 MySQL 数据库的 Zabbix 服务器和 Web 前端:
sudo apt install zabbix-server-mysql zabbix-frontend-php
此外,安装 Zabbix 代理,它可以让您收集有关 Zabbix 服务器状态本身的数据。
sudo apt install zabbix-agent
在您可以使用 Zabbix 之前,您必须设置一个数据库来保存 Zabbix 服务器将从其代理收集的数据。 您可以在下一步中执行此操作。
第 2 步 — 为 Zabbix 配置 MySQL 数据库
您需要创建一个新的 MySQL 数据库并使用一些基本信息填充它,以使其适合 Zabbix。 您还将为此数据库创建一个特定用户,这样 Zabbix 就不会使用 root
帐户登录 MySQL。
以 root 用户身份登录 MySQL:
sudo mysql
创建支持 UTF-8 字符的 Zabbix 数据库:
create database zabbix character set utf8 collate utf8_bin;
然后创建 Zabbix 服务器将使用的用户,授予它访问新数据库的权限,并为用户设置密码:
create user zabbix@localhost identified by 'your_zabbix_mysql_password'; grant all privileges on zabbix.* to zabbix@localhost;
这会照顾用户和数据库。 退出数据库控制台。
quit;
接下来,您必须导入初始架构和数据。 Zabbix 安装为您提供了一个设置它的文件。
运行以下命令设置架构并将数据导入 zabbix
数据库。 使用 zcat
因为文件中的数据被压缩:
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
输入您在提示时配置的 zabbix
MySQL 用户的密码。
执行此命令可能需要一两分钟。 如果您看到错误 ERROR 1045 (28000): Access denied for user ``zabbix``@'localhost' (using password: YES)
,请确保您为 zabbix 用户使用了正确的密码。
为了让 Zabbix 服务器使用这个数据库,您需要在 Zabbix 服务器配置文件中设置数据库密码。 在您喜欢的文本编辑器中打开配置文件。 本教程将使用 nano
:
sudo nano /etc/zabbix/zabbix_server.conf
查找文件的以下部分:
/etc/zabbix/zabbix_server.conf
... ### Option: DBPassword # Database password. Ignored for SQLite. # Comment this line if no password is used. # # Mandatory: no # Default: # DBPassword= ...
文件中的这些注释解释了如何连接到数据库。 您需要将文件中的 DBPassword
值设置为数据库用户的密码。 在这些注释之后添加此行以配置数据库:
/etc/zabbix/zabbix_server.conf
... DBPassword=your_zabbix_mysql_password ...
保存并关闭 zabbix_server.conf
,方法是按 CTRL+X
,然后按 Y
,然后按 ENTER
,如果您使用的是 nano
。
您现在已经配置了 Zabbix 服务器以连接到数据库。 接下来,您将配置 Nginx Web 服务器以服务于 Zabbix 前端。
第 3 步 — 为 Zabbix 配置 Nginx
要自动配置 Nginx,请安装自动配置包:
sudo apt install zabbix-nginx-conf
结果,您将获得配置文件 /etc/zabbix/nginx.conf
,以及在 Nginx 配置目录 /etc/nginx/conf.d/zabbix.conf
中的链接。
接下来,您需要对此文件进行更改。 打开配置文件:
sudo nano /etc/zabbix/nginx.conf
该文件包含一个自动生成的 Nginx 服务器块配置。 它包含两行确定服务器名称和它正在侦听的端口:
/etc/zabbix/nginx.conf
server { # listen 80; # server_name example.com; ...
取消注释这两行,并将 example.com
替换为您的域名。 您的设置将如下所示:
/etc/zabbix/nginx.conf
server { listen 80; server_name your_domain; ...
保存并关闭文件。 接下来,测试以确保您的任何 Nginx 文件中都没有语法错误并重新加载配置:
sudo nginx -t sudo nginx -s reload
现在 Nginx 已设置为服务于 Zabbix 前端,您将对 PHP 设置进行一些修改,以使 Zabbix Web 界面正常工作。
注意: 如前提条件部分所述,建议您在服务器上启用 SSL/TLS。 如果您想这样做,请按照 我们的 Ubuntu 20.04 Let's Encrypt 教程 ,然后继续进行第 4 步以获得 Nginx 的免费 SSL 证书。 此过程将自动检测您的 Zabbix 服务器块并将其配置为 HTTPS。 获得 SSL/TLS 证书后,您可以返回并完成本教程。
第 4 步 — 为 Zabbix 配置 PHP
Zabbix Web 界面是用 PHP 编写的,需要一些特殊的 PHP 服务器设置。 Zabbix 安装过程创建了一个包含这些设置的 PHP-FPM 配置文件。 它位于目录 /etc/zabbix
中,由 PHP-FPM 自动加载。 你需要对这个文件做一些小改动,所以用下面的命令打开它:
sudo nano /etc/zabbix/php-fpm.conf
该文件包含满足 Zabbix Web 界面必要要求的 PHP 设置。 但是,默认情况下会注释掉时区设置。 为了确保 Zabbix 使用正确的时间,您需要设置适当的时区:
/etc/zabbix/php-fpm.conf
... php_value[max_execution_time] = 300 php_value[memory_limit] = 128M php_value[post_max_size] = 16M php_value[upload_max_filesize] = 2M php_value[max_input_time] = 300 php_value[max_input_vars] = 10000 ; php_value[date.timezone] = Europe/Riga
取消注释前面代码块中突出显示的时区行并将其更改为您的时区。 您可以使用此 支持时区列表 来找到适合您的时区。 然后保存并关闭文件。
现在重新启动 PHP-FPM 以应用这些新设置:
sudo systemctl restart php7.4-fpm.service
您现在可以启动 Zabbix 服务器:
sudo systemctl start zabbix-server
然后检查Zabbix服务器是否正常运行:
sudo systemctl status zabbix-server
您将看到以下状态:
Output● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 05:59:32 UTC; 36s ago Process: 27026 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...
最后,使服务器在引导时启动:
sudo systemctl enable zabbix-server
服务器已设置并连接到数据库。 接下来,设置 Web 前端。
第 5 步 — 为 Zabbix Web 界面配置设置
Web 界面可让您查看报告并添加要监控的主机,但需要进行一些初始设置才能使用它。 启动浏览器并转到地址 http://zabbix_server_name
或 https://zabbix_server_name
(如果您设置了 Let's Encrypt)。 在第一个屏幕上,您将看到一条欢迎消息。 点击下一步继续。
在下一个屏幕上,您将看到列出运行 Zabbix 的所有先决条件的表格。
此表中的所有值都必须为 OK,因此请验证它们是否正确。 请务必向下滚动并查看所有先决条件。 确认一切准备就绪后,单击 下一步 继续。
下一个屏幕询问数据库连接信息。
你告诉 Zabbix 服务器你的数据库,但是 Zabbix Web 界面也需要访问数据库来管理主机和读取数据。 因此,输入您在步骤 2 中配置的 MySQL 凭据。 点击下一步继续。
在下一个屏幕上,您可以将选项保留为默认值。
Name 是可选的; 如果您有多个监控服务器,它在 Web 界面中用于区分一台服务器和另一台服务器。 点击下一步继续。
下一个屏幕将显示预安装摘要,以便您确认一切正确。
单击下一步进入最终屏幕。
Web 界面设置现已完成。 此过程创建配置文件 /usr/share/zabbix/conf/zabbix.conf.php
,您可以备份并在将来使用。 单击 完成 进入登录屏幕。 默认用户为Admin,密码为zabbix。
在您登录之前,在您的第二个 Ubuntu 服务器上设置 Zabbix 代理。
第 6 步 — 安装和配置 Zabbix 代理
现在您需要配置将监控数据发送到 Zabbix 服务器的代理软件。
登录到第二个 Ubuntu 服务器:
ssh sammy@second_ubuntu_server_ip_address
就像在 Zabbix 服务器上一样,运行以下命令来安装存储库配置包:
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb sudo dpkg -i zabbix-release_5.0-1+focal_all.deb
接下来,更新包索引:
sudo apt update
然后安装 Zabbix 代理:
sudo apt install zabbix-agent
虽然 Zabbix 支持基于证书的加密,但设置证书颁发机构超出了本教程的范围。 但是您可以使用 预共享密钥 (PSK) 来保护服务器和代理之间的连接。
首先,生成一个 PSK:
sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"
使用 cat
显示密钥,以便您可以将其复制到某处:
cat /etc/zabbix/zabbix_agentd.psk
密钥看起来像这样:
Output75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca
保存以备后用; 您将需要它来配置主机。
现在编辑 Zabbix 代理设置以设置其与 Zabbix 服务器的安全连接。 在文本编辑器中打开代理配置文件:
sudo nano /etc/zabbix/zabbix_agentd.conf
此文件中的每个设置都通过整个文件中的信息注释进行记录,但您只需要编辑其中的一些。
首先,您必须编辑 Zabbix 服务器的 IP 地址。 找到以下部分:
/etc/zabbix/zabbix_agentd.conf
... ### Option: Server # List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies. # Incoming connections will be accepted only from the hosts listed here. # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally # and '::/0' will allow any IPv4 or IPv6 address. # '0.0.0.0/0' can be used to allow any IPv4 address. # Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com # # Mandatory: yes, if StartAgents is not explicitly set to 0 # Default: # Server= Server=127.0.0.1 ...
将默认值更改为 Zabbix 服务器的 IP:
/etc/zabbix/zabbix_agentd.conf
... Server=zabbix_server_ip_address ...
默认情况下,Zabbix 服务器连接到代理。 但是对于某些检查(例如,监控日志),需要反向连接。 为了正确操作,您需要指定 Zabbix 服务器地址和唯一的主机名。
找到配置活动检查的部分并更改默认值:
/etc/zabbix/zabbix_agentd.conf
... ##### Active checks related ### Option: ServerActive # List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks. # If port is not specified, default port is used. # IPv6 addresses must be enclosed in square brackets if port for that host is specified. # If port is not specified, square brackets for IPv6 addresses are optional. # If this parameter is not specified, active checks are disabled. # Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1] # # Mandatory: no # Default: # ServerActive= ServerActive=zabbix_server_ip_address ### Option: Hostname # Unique, case sensitive hostname. # Required for active checks and must match hostname as configured on the server. # Value is acquired from HostnameItem if undefined. # # Mandatory: no # Default: # Hostname= Hostname=Second Ubuntu Server ...
接下来,找到配置与 Zabbix 服务器的安全连接并启用预共享密钥支持的部分。 找到 TLSConnect
部分,如下所示:
/etc/zabbix/zabbix_agentd.conf
... ### Option: TLSConnect # How the agent should connect to server or proxy. Used for active checks. # Only one value can be specified: # unencrypted - connect without encryption # psk - connect using TLS and a pre-shared key # cert - connect using TLS and a certificate # # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection) # Default: # TLSConnect=unencrypted ...
然后添加这一行来配置预共享密钥支持:
/etc/zabbix/zabbix_agentd.conf
... TLSConnect=psk ...
接下来,找到 TLSAccept
部分,如下所示:
/etc/zabbix/zabbix_agentd.conf
... ### Option: TLSAccept # What incoming connections to accept. # Multiple values can be specified, separated by comma: # unencrypted - accept connections without encryption # psk - accept connections secured with TLS and a pre-shared key # cert - accept connections secured with TLS and a certificate # # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection) # Default: # TLSAccept=unencrypted ...
通过添加以下行来配置传入连接以支持预共享密钥:
/etc/zabbix/zabbix_agentd.conf
... TLSAccept=psk ...
接下来,找到 TLSPSKIdentity
部分,如下所示:
/etc/zabbix/zabbix_agentd.conf
... ### Option: TLSPSKIdentity # Unique, case sensitive string used to identify the pre-shared key. # # Mandatory: no # Default: # TLSPSKIdentity= ...
通过添加以下行选择一个唯一名称来标识您的预共享密钥:
/etc/zabbix/zabbix_agentd.conf
... TLSPSKIdentity=PSK 001 ...
当您通过 Zabbix Web 界面添加主机时,您将使用它作为 PSK ID。
然后设置指向您之前创建的预共享密钥的选项。 找到 TLSPSKFile
选项:
/etc/zabbix/zabbix_agentd.conf
... ### Option: TLSPSKFile # Full pathname of a file containing the pre-shared key. # # Mandatory: no # Default: # TLSPSKFile= ...
添加此行以将 Zabbix 代理指向您创建的 PSK 文件:
/etc/zabbix/zabbix_agentd.conf
... TLSPSKFile=/etc/zabbix/zabbix_agentd.psk ...
保存并关闭文件。 现在您可以重新启动 Zabbix 代理并将其设置为在启动时启动:
sudo systemctl restart zabbix-agent sudo systemctl enable zabbix-agent
为了更好地衡量,检查 Zabbix 代理是否正常运行:
sudo systemctl status zabbix-agent
您将看到以下状态,表明代理正在运行:
Output● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 08:19:54 UTC; 25s ago ...
代理将在端口 10050
上侦听来自服务器的连接。 配置 UFW 以允许连接到此端口:
sudo ufw allow 10050/tcp
您可以在 如何在 Ubuntu 20.04 上使用 UFW 设置防火墙中了解有关 UFW 的更多信息。
您的代理现在已准备好将数据发送到 Zabbix 服务器。 但为了使用它,您必须从服务器的 Web 控制台链接到它。 在下一步中,您将完成配置。
第 7 步 — 将新主机添加到 Zabbix 服务器
在您要监控的服务器上安装代理只是整个过程的一半。 您要监控的每台主机都需要在 Zabbix 服务器上注册,您可以通过 Web 界面进行注册。
通过导航到地址 http://zabbix_server_name
或 https://zabbix_server_name
登录到 Zabbix Server Web 界面:
登录后,点击左侧导航栏中的Configuration,然后点击Hosts。 然后点击屏幕右上角的【X15X】创建主机【X30X】按钮。 这将打开主机配置页面。
调整 Host name 和 IP address 以反映您的第二个 Ubuntu 服务器的主机名和 IP 地址,然后将主机添加到组中。 您可以选择现有组,例如 Linux 服务器,或创建您自己的组。 主机可以在多个组中。 为此,请在 Groups 字段中输入现有或新组的名称,然后从建议的列表中选择所需的值。
在添加组之前,单击 Templates 选项卡。
在 Search 字段中键入 Template OS Linux by Zabbix agent
,然后从列表中选择它以将此模板添加到主机。
接下来,导航到 加密 选项卡。 为 Connections to host 和 Connections from host 选择 PSK。 然后将PSK identity设置为PSK 001
,也就是你之前配置的Zabbix agent的TLSPSKIdentity设置的值。 然后将 PSK 值设置为您为 Zabbix 代理生成的密钥。 它是存储在代理机器上的文件 /etc/zabbix/zabbix_agentd.psk
中的那个。
最后,点击表单底部的Add按钮创建主机。
您将在列表中看到您的新主机。 等待一分钟并重新加载页面以看到绿色标签,表明一切正常并且连接已加密。
如果您需要监控其他服务器,请登录到每台主机,安装 Zabbix 代理,生成 PSK,配置代理,然后按照添加第一台主机的相同步骤将主机添加到 Web 界面。
Zabbix 服务器现在正在监视您的第二个 Ubuntu 服务器。 现在,设置电子邮件通知以收到有关问题的通知。
第 8 步 — 配置电子邮件通知
Zabbix 自动支持多种类型的通知:电子邮件、OTRS、Slack、Telegram、SMS 等。 您可以在 Zabbix 网站 上查看完整的集成列表 。
例如,本教程将为 Email 媒体类型配置通知。
单击管理,然后单击左侧导航栏中的媒体类型。 您将看到所有媒体类型的列表。 电子邮件有两个预配置选项:纯文本通知和 HTML 通知。 在本教程中,您将使用纯文本通知。 单击 电子邮件。
根据您的电子邮件服务提供的设置调整 SMTP 选项。 本教程使用 Gmail 的 SMTP 功能来设置电子邮件通知; 如果您想了解有关设置的更多信息,请参阅 如何使用 Google 的 SMTP 服务器。
注意:如果您使用Gmail的两步验证,您需要为Zabbix生成一个应用密码。 在设置过程中,您只需输入一次应用密码。 您可以在 Google 帮助中心 中找到有关如何生成此密码的说明。
如果您使用的是 Gmail,请在 SMTP 服务器 字段中输入 smtp.gmail.com
,在 SMTP 服务器端口 字段中输入 465
,在 gmail.com
字段中输入] 用于 SMTP helo,您的电子邮件用于 SMTP 电子邮件。 然后为连接安全选择SSL/TLS,为身份验证选择用户名和密码。 输入您的 Gmail 地址作为 Username,输入您从 Google 帐户生成的应用程序密码作为 Password。
在 消息模板 选项卡上,您可以查看各种通知的预定义消息列表。 最后,点击表单底部的Update按钮更新邮件参数。
现在您可以测试发送通知。 为此,请单击相应行中带下划线的 Test 链接。
您将看到一个弹出窗口。 在 Send to 字段中输入您的电子邮件地址,然后单击 Test 按钮。 您将看到一条关于发送成功的消息,并且您将收到一条测试消息。
单击 Cancel 按钮关闭弹出窗口。
现在,创建一个新用户。 点击Administration,然后点击左侧导航栏中的Users。 您将看到用户列表。 然后点击屏幕右上角的创建用户按钮。 这将打开用户配置页面:
在 Alias 字段中输入新用户名并设置新密码。 接下来,将用户添加到管理员组。 在 Groups 字段中键入 Zabbix administrators
并从建议的列表中选择它。
添加组后,单击 Media 选项卡并单击带下划线的 Add 链接(不是其下方的 Add 按钮)。 您将看到一个弹出窗口。
从 Type 下拉列表中选择 Email 选项。 在 发送到 字段中输入您的电子邮件地址。 您可以将其余选项保留为默认值。 点击底部的【X10X】添加【X17X】按钮提交。
现在导航到 权限 选项卡。 从用户类型下拉菜单中选择Zabbix Super Admin。
最后点击表单底部的Add按钮创建用户。
注意:使用默认密码是不安全的。 要更改内置用户 Admin 的密码,请单击用户列表中的别名。 然后点击更改密码,输入新密码,点击更新按钮确认更改。
现在您需要启用通知。 单击左侧导航栏中的 Configuration 选项卡,然后单击 Actions。 您将看到一个预配置的操作,它负责向所有 Zabbix 管理员发送通知。 您可以通过单击其名称来查看和更改设置。 出于本教程的目的,请使用默认参数。 要启用该操作,请单击 Status 列中的红色 Disabled 链接。
现在您已准备好接收警报。 在下一步中,您将生成一个来测试您的通知设置。
第 9 步 — 生成测试警报
在此步骤中,您将生成一个测试警报以确保一切都已连接。 默认情况下,Zabbix 会跟踪服务器上的可用磁盘空间量。 它会自动检测所有磁盘安装并添加相应的检查。 此发现每小时执行一次,因此您需要等待一段时间才能触发通知。
创建一个足够大的临时文件以触发 Zabbix 的文件系统使用警报。 为此,如果您尚未连接,请登录到您的第二个 Ubuntu 服务器:
ssh sammy@second_ubuntu_server_ip_address
接下来,确定服务器上有多少可用空间。 您可以使用 df
命令找出:
df -h
命令 df
将报告文件系统的磁盘空间使用情况,而 -h
将使输出可读。 您将看到如下输出:
OutputFilesystem Size Used Avail Use% Mounted on /dev/vda1 78G 1.4G 77G 2% /
在这种情况下,可用空间为 77G。 您的可用空间可能会有所不同。
使用 fallocate
命令可以为文件预分配或取消分配空间,以创建占用超过 80% of 可用磁盘空间的文件。 这足以触发警报:
fallocate -l 70G /tmp/temp.img
大约一个小时后,Zabbix 将触发有关可用磁盘空间量的警报,并将运行您配置的操作,发送通知消息。 您可以检查收件箱中来自 Zabbix 服务器的消息。 您将看到如下消息:
Problem started at 09:49:08 on 2020.06.12 Problem name: /: Disk space is low (used > 80%) Host: Second Ubuntu Server Severity: Warning Operational data: Space used: 71.34 GB of 77.36 GB (92.23 %) Original problem ID: 106
您还可以导航到 Monitoring 选项卡,然后导航到 Dashboard 以查看通知及其详细信息。
既然您知道警报正在工作,请删除您创建的临时文件,以便您可以回收磁盘空间:
rm -f /tmp/temp.img
一分钟后,Zabbix 将发送恢复消息,并且警报将从主仪表板中消失。
结论
在本教程中,您学习了如何设置一个简单且安全的监控解决方案,以帮助您监控服务器的状态。 它现在可以警告您出现问题,并且您有机会分析 IT 基础架构中发生的流程。
要了解有关设置监控基础设施的更多信息,请查看我们的 监控主题页面 。