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

打印 上一主题 下一主题

主题 700|帖子 700|积分 2100

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给各人。点击跳转到网站。
简介

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用户身份登录到此机器:
  1. [本地环境]
  2. ssh sammy@your_zabbix_server_ip_address
复制代码
在安装Zabbix之前,我们需要安装Zabbix所需的一些PHP模块。起首,更新体系的可用软件包列表:
  1. sudo apt-get update
复制代码
然后安装Zabbix所需的PHP模块:
  1. sudo apt-get install php7.0-xml php7.0-bcmath php7.0-mbstring
复制代码
现在我们可以安装Zabbix了。
Zabbix可以在Ubuntu的软件包管理器中找到,但它已经过时,因此我们将利用官方的Zabbix存储库来安装最新的稳定版本。下载并安装存储库配置软件包:
  1. wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
  2. sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
复制代码
您将看到以下输出:
  1. 选择了之前未选择的软件包zabbix-release。
  2. (正在读取数据库 ... 目前已安装 55276 个文件和目录。)
  3. 正在准备解包 zabbix-release_3.2-1+xenial_all.deb ...
  4. 正在解包 zabbix-release (3.2-1+xenial) ...
  5. 正在设置 zabbix-release (3.2-1+xenial) ...
复制代码
更新软件包索引,以便包含新的存储库:
  1. sudo apt-get update
复制代码
然后安装带有MySQL数据库支持的Zabbix服务器和Web前端:
  1. sudo apt-get install zabbix-server-mysql zabbix-frontend-php
复制代码
让我们还安装Zabbix署理,如许我们就可以收集有关Zabbix服务器状态自己的数据。
  1. sudo apt-get install zabbix-agent
复制代码
在利用Zabbix之前,我们必须设置一个数据库来生存Zabbix服务器从其署理收集的数据。
步调 2 — 配置 Zabbix 的 MySQL 数据库

我们需要创建一个新的MySQL数据库,并填充一些基本信息,以使其适用于Zabbix。我们还将为此数据库创建一个特定的用户,以便Zabbix不利用root帐户登录到MySQL。
利用在MySQL服务器安装期间设置的root密码以root用户身份登录到MySQL:
  1. mysql -uroot -p
复制代码
创建具有UTF-8字符支持的Zabbix数据库:
  1. create database zabbix character set utf8 collate utf8_bin;
复制代码
然后创建Zabbix服务器将利用的用户,为该用户授予对新数据库的所有权限,并设置用户的密码:
  1. grant all privileges on zabbix.* to zabbix@localhost identified by 'your_password';
复制代码
然后应用这些新权限:
  1. flush privileges;
复制代码
如许就处置惩罚了用户和数据库。退出数据库控制台。
  1. quit;
复制代码
接下来,我们必须导入初始模式和数据。Zabbix安装为我们提供了一个设置此项的文件。
运行以下命令来设置模式并将数据导入zabbix数据库。我们将利用zcat,由于文件中的数据已经被压缩。
  1. 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服务器配置文件中设置数据库密码。在编辑器中打开配置文件:
  1. sudo nano /etc/zabbix/zabbix_server.conf
复制代码
查找文件中的以下部分:
  1. ### 选项:DBPassword
  2. #       数据库密码。对于 SQLite 来说是被忽略的。
  3. #       如果不使用密码,请注释掉这一行。
  4. #                                                
  5. # 必填:否                                 
  6. # 默认值:                                       
  7. # DBPassword=
复制代码
文件中的这些注释解释了怎样连接到数据库。我们需要在文件中设置 DBPassword 的值为我们数据库用户的密码。在这些注释下面添加以下行来配置数据库:
  1. DBPassword=your_zabbix_mysql_password
复制代码
如许就完成了 Zabbix 服务器的配置,但是我们需要对 PHP 设置进行一些修改,以便让 Zabbix web 界面正常工作。
步调 3 — 配置 PHP 以适配 Zabbix

Zabbix web 界面是用 PHP 编写的,需要一些特别的 PHP 服务器设置。Zabbix 安装过程创建了一个包含这些设置的 Apache 配置文件。它位于目次 /etc/zabbix 中,而且会被 Apache 自动加载。我们需要对这个文件进行一些小的修改,因此打开它。
  1. sudo nano /etc/zabbix/apache.conf
复制代码
该文件包含了满意 Zabbix web 界面必要要求的 PHP 设置。你需要做的唯一修改就是设置适当的时区,这个设置默认是被注释掉的。
  1. ...
  2. <IfModule mod_php7.c>
  3.     php_value max_execution_time 300
  4.     php_value memory_limit 128M
  5.     php_value post_max_size 16M
  6.     php_value upload_max_filesize 2M
  7.     php_value max_input_time 300
  8.     php_value always_populate_raw_post_data -1
  9.     # php_value date.timezone Europe/Riga
  10. </IfModule>
复制代码
取消时区行的注释,如上所示,并将其更改为你的时区。你可以利用支持的时区列表来找到适合你的时区。然后生存并关闭文件。
现在重新启动 Apache 以应用这些新设置。
  1. sudo systemctl restart apache2
复制代码
现在可以启动 Zabbix 服务器了。
  1. sudo systemctl start zabbix-server
复制代码
然后检查 Zabbix 服务器是否正常运行:
  1. sudo systemctl status zabbix-server
复制代码
你将看到以下状态:
  1. ● zabbix-server.service - Zabbix Server
  2.    Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled)
  3.    Active: :active (running) since Thu 2017-06-08 06:40:43 UTC; 6s ago
  4.   Process: 15201 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
  5.   ...
复制代码
末了,启用服务器以在启动时启动:
  1. 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 服务器的署理软件。
登录到第二台服务器,我们将其称为“被监控服务器”。
  1. [本地环境]
  2. ssh sammy@your_monitored_server_ip_address
复制代码
然后,就像在 Zabbix 服务器上一样,运行以下命令安装存储库配置包:
  1. [第二台服务器环境]wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
  2. sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
复制代码
接下来,更新软件包索引:
  1. [第二台服务器环境]
  2. sudo apt-get update
复制代码
然后安装 Zabbix 署理:
  1. [第二台服务器环境]
  2. sudo apt-get install zabbix-agent
复制代码
虽然 Zabbix 支持基于证书的加密,但设置证书颁发机构超出了本教程的范围,但我们可以利用预共享密钥(PSK)来掩护服务器和署理之间的连接。
起首,生成一个 PSK:
  1. [第二台服务器环境]
  2. sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"
复制代码
显示密钥,以便您可以将其复制到其他地方。您将需要它来配置主机。
  1. [第二台服务器环境]
  2. cat /etc/zabbix/zabbix_agentd.psk
复制代码
密钥看起来像如许:
  1. cd12686e166a80aa09a227ae5f97834eaa3d5ae686d2ae39590f17ef85dd6de5
复制代码
现在编辑 Zabbix 署理设置,以建立其与 Zabbix 服务器的安全连接。在文本编辑器中打开署理配置文件:
  1. [第二台服务器环境]
  2. sudo nano /etc/zabbix/zabbix_agentd.conf
复制代码
该文件中的每个设置都通过文件中的信息性注释进行了文档化,但您只需要编辑此中的一些设置。
起首,您需要编辑 Zabbix 服务器的 IP 地点。找到以下部分:
  1. ### 选项: Server
  2. #       逗号分隔的 Zabbix 服务器的 IP 地址(或主机名)列表。
  3. #       只有列在此处的主机才会接受传入连接。
  4. #       如果启用了 IPv6 支持,则 '127.0.0.1'、'::127.0.0.1'、'::ffff:127.0.0.1' 被视为相等。
  5. #
  6. # 必填: 否
  7. # 默认值:
  8. # Server=
  9. Server=127.0.0.1
复制代码
将默认值更改为您的 Zabbix 服务器的 IP:
  1. Server=your_zabbix_server_ip_address
复制代码
接下来,找到配置与 Zabbix 服务器的安全连接并启用预共享密钥支持的部分。找到 TSLConnect 部分,如下所示:
  1. ### 选项: TLSConnect
  2. #       代理应如何连接到服务器或代理。用于主动检查。
  3. #       只能指定一个值:
  4. #               unencrypted - 不加密连接
  5. #               psk         - 使用 TLS 和预共享密钥连接
  6. #               cert        - 使用 TLS 和证书连接
  7. #
  8. # 必填: 是,如果定义了 TLS 证书或 PSK 参数(即使对于 'unencrypted' 连接也是如此)
  9. # 默认值:
  10. # TLSConnect=unencrypted
复制代码
然后添加此行以配置预共享密钥支持:
  1. TLSConnect=psk
复制代码
接下来,找到 TLSAccept 部分,如下所示:
  1. ### 选项: TLSAccept
  2. #       接受哪些传入连接。
  3. #       可以指定多个值,用逗号分隔:
  4. #               unencrypted - 接受未加密的连接
  5. #               psk         - 接受使用 TLS 和预共享密钥保护的连接
  6. #               cert        - 接受使用 TLS 和证书保护的连接
  7. #
  8. # 必填: 是,如果定义了 TLS 证书或 PSK 参数(即使对于 'unencrypted' 连接也是如此)
  9. # 默认值:
  10. # TLSAccept=unencrypted
复制代码
通过添加此行配置传入连接以支持预共享密钥:
  1. TLSAccept=psk
复制代码
接下来,找到 TLSPSKIdentity 部分,如下所示:
  1. ### 选项: TLSPSKIdentity
  2. #       用于标识预共享密钥的唯一、区分大小写的字符串。
  3. #
  4. # 必填: 否
  5. # 默认值:
  6. # TLSPSKIdentity=
复制代码
通过添加此行选择一个唯一的名称来标识您的预共享密钥:
  1. TLSPSKIdentity=PSK 001
复制代码
当您通过 Zabbix Web 界面添加主机时,您将利用此作为PSK ID
然后设置指向您先前创建的预共享密钥的选项。找到 TLSPSKFile 选项:
  1. ### 选项:TLSPSKFile
  2. #       包含预共享密钥的文件的完整路径名。
  3. #
  4. # 强制性:否
  5. # 默认值:
  6. # TLSPSKFile=
复制代码
添加以下行以将 Zabbix 署理指向您创建的 PSK 文件:
  1. TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
复制代码
生存并关闭文件。现在您可以启动 Zabbix 署理并设置其在启动时启动:
  1. [环境 第二步]
  2. sudo systemctl start zabbix-agent
  3. sudo systemctl enable zabbix-agent
复制代码
为了确保,检查 Zabbix 署理是否正常运行:
  1. [环境 第二步]
  2. sudo systemctl status zabbix-agent
复制代码
您将看到以下状态,表示署理正在运行:
  1. ● zabbix-agent.service - Zabbix Agent
  2.    Loaded: loaded (/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: enabled)
  3.    Active: active (running) since Thu 2017-06-08 08:33:52 UTC; 4s ago
  4.   Process: 18185 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
  5.   ...
复制代码
我们的署理现在已预备好向 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 界面。
结论

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表