如何在 Ubuntu 16.04 上安装和配置 Zabbix 以安全监控远程服务器

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 如何在 Ubuntu 16.04 上安装和配置 Zabbix 以安全监控远程服务器

简介

Zabbix 是用于网络和应用程序的开源监控软件。它提供了对从服务器、虚拟机和任何其他类型的网络设备收集的数千个指标的实时监控。这些指标可以帮助您确定IT基础设施的当前健康状况,并在客户投诉之前检测到硬件或软件组件的问题。有用的信息存储在数据库中,因此您可以随时间分析数据并改进所提供的服务的质量,或者计划升级您的设备。

Zabbix 使用客户端-服务器架构,并在被监视的客户端上使用一个小型代理来收集数据并将其发送到Zabbix服务器。Zabbix 3 版本支持服务器和连接的客户端之间的加密通信,因此您的数据在通过不安全的网络传输时受到保护。

Zabbix服务器将其数据存储在由MySQL、PostgreSQL或Oracle提供支持的关系型数据库中。它还提供了一个Web界面,以便您可以查看数据并配置系统设置。在本教程中,我们将配置两台机器。一台将被配置为服务器,另一台将被配置为您要监视的客户端。服务器将使用MySQL数据库记录监控数据,并使用Apache提供Web界面。

先决条件

要按照本教程操作,您需要:

  • 两台配置了sudo非root用户的Ubuntu 16.04服务器。您可以按照这篇初始Ubuntu服务器设置文章进行设置。
  • 将运行Zabbix服务器的服务器需要安装Apache、MySQL和PHP。按照本指南在其中一台服务器上配置这些。

步骤 1 — 安装 Zabbix 服务器

首先,我们需要在安装了MySQL、Apache和PHP的服务器上安装Zabbix服务器。在本教程中,我们将把这台机器称为“Zabbix服务器”。以非root用户身份登录到此机器:

[本地环境]
ssh sammy@your_zabbix_server_ip_address

在安装Zabbix之前,我们需要安装Zabbix所需的一些PHP模块。首先,更新系统的可用软件包列表:

sudo apt-get update

然后安装Zabbix所需的PHP模块:

sudo apt-get install php7.0-xml php7.0-bcmath php7.0-mbstring

现在我们可以安装Zabbix了。

Zabbix可以在Ubuntu的软件包管理器中找到,但它已经过时,因此我们将使用官方的Zabbix存储库来安装最新的稳定版本。下载并安装存储库配置软件包:

wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb

您将看到以下输出:

选择了之前未选择的软件包zabbix-release。
(正在读取数据库 ... 目前已安装 55276 个文件和目录。)
正在准备解包 zabbix-release_3.2-1+xenial_all.deb ...
正在解包 zabbix-release (3.2-1+xenial) ...
正在设置 zabbix-release (3.2-1+xenial) ...

更新软件包索引,以便包含新的存储库:

sudo apt-get update

然后安装带有MySQL数据库支持的Zabbix服务器和Web前端:

sudo apt-get install zabbix-server-mysql zabbix-frontend-php

让我们还安装Zabbix代理,这样我们就可以收集有关Zabbix服务器状态本身的数据。

sudo apt-get install zabbix-agent

在使用Zabbix之前,我们必须设置一个数据库来保存Zabbix服务器从其代理收集的数据。

步骤 2 — 配置 Zabbix 的 MySQL 数据库

我们需要创建一个新的MySQL数据库,并填充一些基本信息,以使其适用于Zabbix。我们还将为此数据库创建一个特定的用户,以便Zabbix不使用root帐户登录到MySQL。

使用在MySQL服务器安装期间设置的root密码以root用户身份登录到MySQL:

mysql -uroot -p

创建具有UTF-8字符支持的Zabbix数据库:

create database zabbix character set utf8 collate utf8_bin;

然后创建Zabbix服务器将使用的用户,为该用户授予对新数据库的所有权限,并设置用户的密码:

grant all privileges on zabbix.* to zabbix@localhost identified by 'your_password';

然后应用这些新权限:

flush privileges;

这样就处理了用户和数据库。退出数据库控制台。

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用户的密码,而不是root用户的密码。

为了使Zabbix服务器使用此数据库,您需要在Zabbix服务器配置文件中设置数据库密码。在编辑器中打开配置文件:

sudo nano /etc/zabbix/zabbix_server.conf

查找文件中的以下部分:

### 选项:DBPassword
#       数据库密码。对于 SQLite 来说是被忽略的。
#       如果不使用密码,请注释掉这一行。
#                                                
# 必填:否                                  
# 默认值:                                       
# DBPassword=

文件中的这些注释解释了如何连接到数据库。我们需要在文件中设置 DBPassword 的值为我们数据库用户的密码。在这些注释下面添加以下行来配置数据库:

DBPassword=your_zabbix_mysql_password

这样就完成了 Zabbix 服务器的配置,但是我们需要对 PHP 设置进行一些修改,以便让 Zabbix web 界面正常工作。

步骤 3 — 配置 PHP 以适配 Zabbix

Zabbix web 界面是用 PHP 编写的,需要一些特殊的 PHP 服务器设置。Zabbix 安装过程创建了一个包含这些设置的 Apache 配置文件。它位于目录 /etc/zabbix 中,并且会被 Apache 自动加载。我们需要对这个文件进行一些小的修改,因此打开它。

sudo nano /etc/zabbix/apache.conf

该文件包含了满足 Zabbix web 界面必要要求的 PHP 设置。你需要做的唯一修改就是设置适当的时区,这个设置默认是被注释掉的。

...
<IfModule mod_php7.c>
    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 always_populate_raw_post_data -1
    # php_value date.timezone Europe/Riga
</IfModule>

取消时区行的注释,如上所示,并将其更改为你的时区。你可以使用支持的时区列表来找到适合你的时区。然后保存并关闭文件。

现在重新启动 Apache 以应用这些新设置。

sudo systemctl restart apache2

现在可以启动 Zabbix 服务器了。

sudo systemctl start zabbix-server

然后检查 Zabbix 服务器是否正常运行:

sudo 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 Thu 2017-06-08 06:40:43 UTC; 6s ago
  Process: 15201 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
  ...

最后,启用服务器以在启动时启动:

sudo systemctl enable zabbix-server

服务器已经设置并连接到数据库。现在让我们设置 web 前端。

步骤 4 — 配置 Zabbix Web 界面的设置

Web 界面让我们可以查看报告并添加我们想要监视的主机,但在使用它之前,它需要一些初始设置。打开浏览器,转到地址 http://your_zabbix_server_ip_address/zabbix/。在第一个屏幕上,你会看到一个欢迎消息。点击 下一步 继续。

在下一个屏幕上,你会看到列出运行 Zabbix 所需的所有先决条件的表格。

!先决条件

这个表格中的所有值都必须是 OK,因此请验证它们。确保向下滚动并查看所有的先决条件。一旦验证了一切都准备就绪,点击 下一步 继续。

下一个屏幕会要求输入数据库连接信息。

!数据库连接

我们告诉 Zabbix 服务器关于我们的数据库,但是 Zabbix web 界面也需要访问数据库来管理主机和读取数据。因此,请输入在步骤 2 中配置的 MySQL 凭据,然后点击 下一步 继续。

在下一个屏幕上,你可以保留选项的默认值。

!Zabbix 服务器详情

名称 是可选的;如果你有多个监控服务器,它在 web 界面中用于区分一个服务器和另一个服务器。点击 下一步 继续。

下一个屏幕将显示预安装摘要,以便你确认一切都是正确的。

!摘要

点击 下一步 继续到最后一个屏幕。

Web 界面设置完成!这个过程创建了配置文件 /usr/share/zabbix/conf/zabbix.conf.php,你可以备份并在将来使用。点击 完成 进入登录界面。默认用户是 Admin,密码是 zabbix

在我们登录之前,让我们在另一个服务器上设置 Zabbix 代理。

步骤 5 — 安装和配置 Zabbix 代理

现在我们需要配置将监控数据发送到 Zabbix 服务器的代理软件。

登录到第二台服务器,我们将其称为“被监控服务器”。

[本地环境]
ssh sammy@your_monitored_server_ip_address

然后,就像在 Zabbix 服务器上一样,运行以下命令安装存储库配置包:

[第二台服务器环境]
wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb

接下来,更新软件包索引:

[第二台服务器环境]
sudo apt-get update

然后安装 Zabbix 代理:

[第二台服务器环境]
sudo apt-get install zabbix-agent

虽然 Zabbix 支持基于证书的加密,但设置证书颁发机构超出了本教程的范围,但我们可以使用预共享密钥(PSK)来保护服务器和代理之间的连接。

首先,生成一个 PSK:

[第二台服务器环境]
sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

显示密钥,以便您可以将其复制到其他地方。您将需要它来配置主机。

[第二台服务器环境]
cat /etc/zabbix/zabbix_agentd.psk

密钥看起来像这样:

cd12686e166a80aa09a227ae5f97834eaa3d5ae686d2ae39590f17ef85dd6de5

现在编辑 Zabbix 代理设置,以建立其与 Zabbix 服务器的安全连接。在文本编辑器中打开代理配置文件:

[第二台服务器环境]
sudo nano /etc/zabbix/zabbix_agentd.conf

该文件中的每个设置都通过文件中的信息性注释进行了文档化,但您只需要编辑其中的一些设置。

首先,您需要编辑 Zabbix 服务器的 IP 地址。找到以下部分:

### 选项: Server
#       逗号分隔的 Zabbix 服务器的 IP 地址(或主机名)列表。
#       只有列在此处的主机才会接受传入连接。
#       如果启用了 IPv6 支持,则 '127.0.0.1'、'::127.0.0.1'、'::ffff:127.0.0.1' 被视为相等。
#
# 必填: 否
# 默认值:
# Server=
Server=127.0.0.1

将默认值更改为您的 Zabbix 服务器的 IP:

Server=your_zabbix_server_ip_address

接下来,找到配置与 Zabbix 服务器的安全连接并启用预共享密钥支持的部分。找到 TSLConnect 部分,如下所示:

### 选项: TLSConnect
#       代理应如何连接到服务器或代理。用于主动检查。
#       只能指定一个值:
#               unencrypted - 不加密连接
#               psk         - 使用 TLS 和预共享密钥连接
#               cert        - 使用 TLS 和证书连接
#
# 必填: 是,如果定义了 TLS 证书或 PSK 参数(即使对于 'unencrypted' 连接也是如此)
# 默认值:
# TLSConnect=unencrypted

然后添加此行以配置预共享密钥支持:

TLSConnect=psk

接下来,找到 TLSAccept 部分,如下所示:

### 选项: TLSAccept
#       接受哪些传入连接。
#       可以指定多个值,用逗号分隔:
#               unencrypted - 接受未加密的连接
#               psk         - 接受使用 TLS 和预共享密钥保护的连接
#               cert        - 接受使用 TLS 和证书保护的连接
#
# 必填: 是,如果定义了 TLS 证书或 PSK 参数(即使对于 'unencrypted' 连接也是如此)
# 默认值:
# TLSAccept=unencrypted

通过添加此行配置传入连接以支持预共享密钥:

TLSAccept=psk

接下来,找到 TLSPSKIdentity 部分,如下所示:

### 选项: TLSPSKIdentity
#       用于标识预共享密钥的唯一、区分大小写的字符串。
#
# 必填: 否
# 默认值:
# TLSPSKIdentity=

通过添加此行选择一个唯一的名称来标识您的预共享密钥:

TLSPSKIdentity=PSK 001

当您通过 Zabbix Web 界面添加主机时,您将使用此作为PSK ID

然后设置指向您先前创建的预共享密钥的选项。找到 TLSPSKFile 选项:

### 选项:TLSPSKFile
#       包含预共享密钥的文件的完整路径名。
#
# 强制性:否
# 默认值:
# TLSPSKFile=

添加以下行以将 Zabbix 代理指向您创建的 PSK 文件:

TLSPSKFile=/etc/zabbix/zabbix_agentd.psk

保存并关闭文件。现在您可以启动 Zabbix 代理并设置其在启动时启动:

[环境 第二步]
sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent

为了确保,检查 Zabbix 代理是否正常运行:

[环境 第二步]
sudo systemctl status zabbix-agent

您将看到以下状态,表示代理正在运行:

● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-06-08 08:33:52 UTC; 4s ago
  Process: 18185 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
  ...

我们的代理现在已准备好向 Zabbix 服务器发送数据。但是,为了使用它,我们必须从服务器的 Web 控制台链接到它。

步骤 6 — 将新主机添加到 Zabbix 服务器

在要监视的服务器上安装代理只是过程的一半。我们要监视的每个主机都需要在 Zabbix 服务器上注册,我们可以通过 Web 界面完成。

通过导航到地址 http://your_zabbix_server_ip_address/zabbix/ 登录到 Zabbix 服务器的 Web 界面。

!Zabbix 登录界面

登录后,单击 Configuration,然后单击顶部导航栏中的 Hosts。然后单击屏幕右上角的 Create host 按钮。这将打开主机配置页面。

!创建主机

调整 Host nameIP ADDRESS 以反映客户端机器的主机名和 IP 地址。然后通过从列表中选择一个组或创建自己的组来将主机添加到组中。主机可以在多个组中。Linux Servers 组是一个不错的默认选择。添加组后,单击 Templates 选项卡。

!向主机添加模板

Search 字段中键入 Template OS Linux,然后单击 Add 将此模板添加到主机。

接下来,转到 Encryption 选项卡。选择 PSK 作为 Connections to hostConnections from host 的值。然后将 PSK identity 设置为 PSK 001,这是我们之前配置的 Zabbix 代理的 TLSPSKIdentity 设置的值。然后将 PSK 值设置为您在代理机器上存储的密钥,即文件 /etc/zabbix/zabbix_agentd.psk 中的密钥。

!设置加密。

最后,单击表单底部的 Add 按钮创建主机。

您将看到新主机,绿色标签表示一切正常工作,连接已加密。

!Zabbix 显示您的新主机。

几秒钟后,您可以导航到 Monitoring,然后单击 Latest data 查看来自代理的数据。

为了确保一切正常运行,请关闭您要监视的服务器,以便您可以看到 Zabbix 如何向您发出问题警报。一旦您要监视的服务器脱机,您将在主仪表板上看到警告:

!Zabbix 显示有关脱机主机的警告。

如果您有其他需要监视的服务器,请登录到每个主机,安装 Zabbix 代理,生成 PSK,配置代理,并按照添加第一个主机的相同步骤将主机添加到 Web 界面。

结论

在本教程中,您学会了如何设置一个简单且安全的监控解决方案,这将帮助您监视服务器的状态。它现在可以警告您有问题,并且您有机会根据获取的数据绘制一些图表,以便您可以对其进行分析并做出相应的计划。


目录
相关文章
|
7天前
|
存储 弹性计算 人工智能
阿里云服务器配置选择方法,八大使用场景选择合适的云服务器配置
本文详解阿里云ECS服务器在八大场景(新手入门、网站、数据库、大数据、游戏、视频、AI、高性能计算)中的配置选择策略,涵盖实例性能特点与推荐型号,助力用户精准选型,实现性能与成本的最优平衡。
|
15天前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
153 18
|
15天前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
125 18
|
17天前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
89 15
|
10天前
|
存储 弹性计算 固态存储
阿里云服务器租用价格参考:最新收费标准与不同实例热门配置活动价格
阿里云服务器租用价格参考:配置最低的1核0.5G云服务器,按量付费价格0.063元/小时,按月租用价格为18元/1月,爆款配置的活动价格目前直降,2核2G配置轻量应用服务器抢购价为38元一年;经济型e实例2核2G3M特惠价99元1年;通用算力型u1实例2核4G5M带宽特惠价199元1年;2核8G配置的活动价格最低为一年652.32元;4核16G配置的活动价格最低为1196.64元;8核16G配置的最低一年租用价格为3815.03元。以下是2025年阿里云服务器最新收费标准与热门配置活动价格的详细内容。
|
11天前
|
存储 缓存 数据挖掘
阿里云轻量应用服务器“CPU优化型”配置介绍、费用价格说明
阿里云轻量应用服务器推出CPU优化型,提供更强计算性能,2核4GB起,最高16核64GB,全系支持200Mbps带宽。适用于企业级应用、数据库、游戏服务器等高算力场景,保障稳定高效运行。
101 1
|
7天前
|
弹性计算 定位技术 数据中心
阿里云服务器选择方法:配置、地域及付费模式全解析
2025阿里云服务器选购指南:就近选择地域以降低延迟,企业用户优选2核4G5M带宽u1实例,仅199元/年;个人用户可选2核2G3M带宽ECS,99元/年起。长期稳定业务选包年包月,短期或波动场景用按量付费,轻松搭建网站首选高性价比配置。
|
9天前
|
弹性计算 运维 安全
阿里云轻量应用服务器详解——2025升级到200M峰值带宽
阿里云轻量应用服务器(Simple Application Server)是面向个人开发者及中小企业的轻量级云服务,适用于网站搭建、开发测试、小程序后端等场景。2025年升级至200M峰值带宽,支持WordPress、宝塔面板、Docker等应用镜像一键部署,操作简单,运维便捷。按套餐售卖,不支持自定义CPU内存配置,价格低至38元/年起,是快速上云的高性价比选择。
|
1月前
|
存储 缓存 数据挖掘
阿里云目前最便宜云服务器介绍:38元、99元、199元性能,选购攻略参考
轻量应用服务器2核2G峰值200M带宽38元1年;云服务器经济型e实例2核2G3M带宽99元1年;云服务器通用算力型u1实例2核4G5M带宽199元1年。对于还未使用过阿里云服务器的用户来说,大家也不免有些疑虑,这些云服务器性能究竟如何?它们适用于哪些场景?能否满足自己的使用需求呢?接下来,本文将为您全方位介绍这几款云服务器,以供您了解及选择参考。
|
2月前
|
网络安全 云计算
如何设置阿里云轻量应用服务器镜像?
本文介绍了在阿里云轻量应用服务器上创建与配置镜像的详细步骤。镜像是一种特殊的文件系统映射,可用于快速克隆服务器配置。内容涵盖准备条件、登录控制台、创建实例、生成镜像、下载与设置镜像,以及如何使用镜像启动新实例。适合希望提升服务器部署效率的用户参考。