如何在Ubuntu 18.04上安装和配置Zabbix

Zabbix是最流行的开源监视软件工具之一。 Zabbix从您的网络设备,系统和应用程序收集指标,并确保它们已启动并正在运行。 如有任何问题,Zabbix将通过各种方法发送通知警报。

Zabbix可以部署为基于代理和无代理的监视。 Zabbix代理占地很小,可以在各种平台上运行,包括Linux,UNIX,macOS和Windows。

本教程描述了如何在将MySQL作为数据库后端的Ubuntu 18.04服务器上安装和配置最新版本的Zabbix 4.0。 我们还将向您展示如何在远程主机上安装Zabbix代理并将该主机添加到Zabbix服务器。

先决条件

在继续本教程之前,请确保您以具有sudo特权的用户身份登录。

创建MySQL数据库

Zabbix支持MySQL / MariaDB和PostgreSQL。 在本教程中,我们将使用MySQL作为数据库后端。

如果您尚未在Ubuntu服务器上安装MySQL,您可以按照以下说明安装。

通过键入以下命令登录到MySQL Shell:

sudo mysql

在MySQL Shell中,运行以下SQL语句创建一个新数据库:

CREATE DATABASE zabbix CHARACTER SET utf8 collate utf8_bin;

接下来,创建一个MySQL用户帐户并授予对数据库的访问权限:

GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'change-with-strong-password';

确保你改变 change-with-strong-password 具有强密码。

完成后,输入以下命令退出mysql控制台:

EXIT;

在Ubuntu上安装Zabbix#

在撰写本文时,Zabbix的最新稳定版本是4.0版。 Ubuntu存储库中可用的Zabbix软件包通常已过时,因此我们将使用官方的Zabbix存储库。

1.安装Zabbix#

下载最新的Zabbix存储库 .deb 使用以下wget命令打包:

wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.deb

下载文件后,通过键入以下命令将Zabbix存储库添加到您的Ubuntu 18.04系统:

sudo apt install ./zabbix-release_4.0-2+bionic_all.deb

更新软件包索引并安装Zabbix服务器,具有MySQL数据库支持的Web前端和Zabbix代理:

sudo apt updatesudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent

上面的命令还将安装Apache,PHP和所有必需的PHP模块。

2.为Zabbix前端配置PHP#

在安装过程中,将创建一个Apache配置文件,其中包含所有必需的Apache和PHP设置。 您只需要进行少量更改并设置适当的时区。

打开配置文件,取消注释时区行并将其更改为您的时区。 您可以在此处找到PHP支持的时区的完整列表。

/etc/apache2/conf-enabled/zabbix.conf

...
    <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 max_input_vars 10000
        php_value always_populate_raw_post_data -1
        php_value date.timezone America/Denver
    </IfModule>
...

完成后,保存配置文件并重新启动Apache服务以使更改生效:

sudo systemctl restart apache2

3.为Zabbix服务器配置MySQL数据库#

Zabbix安装包提供了一个转储文件,其中包含带有MySQL的Zabbix服务器的初始架构和数据。

通过运行以下命令导入MySQL转储文件:

zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

出现提示时,输入您先前创建的用户密码。 成功时,不会给出任何输出。

接下来,我们需要编辑Zabbix配置并设置数据库密码。

在编辑器中打开配置文件:

sudo nano /etc/zabbix/zabbix_server.conf

搜索以下部分,取消注释 DBPassword 指令并添加数据库密码。

/etc/zabbix/zabbix_server.conf

...
### Option: DBPassword
#       Database password.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=change-with-strong-password
...

保存并关闭文件。

重新启动Zabbix服务器和代理服务,并使它们在系统启动时启动:

sudo systemctl restart zabbix-server zabbix-agentsudo systemctl enable zabbix-server zabbix-agent

要检查Zabbix服务器是否正在运行,请输入:

sudo systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
   Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-11-29 03:30:44 PST; 43s ago
 Main PID: 14293 (zabbix_server)
    Tasks: 34 (limit: 2319)
   CGroup: /system.slice/zabbix-server.service
   ...

安装和配置Zabbix前端#

Zabbix Web界面是用PHP编写的,它使我们能够配置服务器,查看收集的数据并添加要监视的主机。

在开始使用Web界面之前,我们需要先安装它。

打开您喜欢的浏览器,然后输入服务器的域名或公共IP地址,然后输入 /zabbix

http(s)://your_domain_or_ip_address/zabbix

在第一个屏幕上,将向您显示欢迎消息。 请点击 Next step 接着说。

接下来,您将看到以下信息页面,其中列出了运行Zabbix前端所需的所有PHP先决条件。 该表中的所有值均应为 OK,向下滚动以确认所有设置均正确。 验证后,点击 Next step 继续。

Zabbix检查先决条件

在下一个屏幕上,安装向导将要求您输入数据库连接详细信息。 输入您先前创建的MySQL用户和数据库详细信息。

Zabbix配置数据库连接

输入服务器名称是可选的。 如果您有多个Zabbix监视服务器,请输入。 如果提供,它将显示在菜单栏和页面标题中。

请点击 Next step 接着说。

Zabbix服务器详细信息

在下一个屏幕上,将显示安装前摘要。

Zabbix的预安装摘要

请点击 Next step 安装完成后,您将进入一个页面,通知您已安装Zabbix Web界面。 要访问您的Zabbix登录页面,请单击 Finish 按钮。

Zabbix安装

默认用户为“ Admin”,密码为“ zabbix”。 输入用户名和密码,然后单击 Log in 按钮。

Zabbix登录屏幕

登录后,您将被重定向到Zabbix管理仪表板。

从这里,您可以开始自定义Zabbix安装并添加新主机。 您的第一步应该是更改当前密码。 为此,通过单击顶部导航上的配置文件图标,导航到用户配置文件页面。

向Zabbix服务器添加新主机

向Zabbix服务器添加用于监视的新主机的过程包括两个步骤。

首先,您需要在远程主机上安装Zabbix代理,然后通过Web界面将该主机添加到Zabbix服务器。

安装Zabbix代理

本教程假定主机也使用Ubuntu 18.04。

与安装Zabbix服务器时相同,运行以下命令以启用Zabbix存储库:

wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.debsudo apt install ./zabbix-release_4.0-2+bionic_all.deb

更新软件包索引并安装Zabbix代理软件包:

sudo apt updatesudo apt install zabbix-agent

Zabbix支持两种服务器-客户端通信加密方法,即预共享密钥(PSK)和基于证书的加密。 在本教程中,我们将使用预共享密钥(PSK)方法来保护服务器与代理之间的连接。

使用以下命令生成预共享密钥并将其保存到文件中:

openssl rand -hex 32 | sudo tee /etc/zabbix/zabbix_agentd.psk

PSK密钥如下所示:

fc3077ed3db8589ec920ac98a7ddea96aca205eb63bbd29c66ae91743a7ecbb6

打开Zabbix代理配置文件:

sudo nano /etc/zabbix/zabbix_agentd.conf

搜索 Server IP地址并将其从默认值更改为您的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
...

接下来,找到 TSLConnect 选项,取消注释并将其设置为 psk

/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=psk
...

找到 TLSAccept 选项,取消注释并将其设置为 psk

/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=psk
...

接下来,找到 TLSPSKIdentity 选项,取消注释并将其设置为 PSK 001 该值必须是唯一的字符串:

/etc/zabbix/zabbix_agentd.conf

...
### Option: TLSPSKIdentity
#       Unique, case sensitive string used to identify the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKIdentity=PSK 001
...

最后,找到 TLSPSKFile 选项,取消注释,并将其设置为指向先前创建的预共享密钥:

/etc/zabbix/zabbix_agentd.conf

...
### Option: TLSPSKFile
#       Full pathname of a file containing the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk 
...

完成后,保存并关闭文件。

启动Zabbix代理服务,并使用以下命令将其设置为在启动时启动:

sudo systemctl start zabbix-agentsudo systemctl enable zabbix-agent

接下来,您需要添加防火墙规则,以启用来自Zabbix服务器的TCP端口上的流量 10050

假设您正在使用 UFW 管理防火墙,并且您希望允许从 192.168.121.70 IP地址,您将运行以下命令:

sudo ufw allow proto tcp from 192.168.121.70 to any port 10050

设置新主机

现在,已安装并配置了要监视的远程主机上的代理,下一步是在Zabbix服务器上注册该主机。

以管理员用户身份登录到Zabbix Server Web界面:

http(s)://your_domain_or_ip_address/zabbix

进入内部后,在顶部导航栏中单击 Configuration, 然后 Hosts

接下来,点击蓝色 Create host 屏幕右上角的按钮,主机配置页面将打开:

Zabbix主机主机

输入要监视的远程主机的主机名和IP地址。 通过从列表中选择一个组,将主机添加到一个或多个组中,或者输入不存在的组名来创建一个新的组。 的 Linux Servers 小组是一个不错的选择。

Zabbix主机模板

完成后,点击 Templates 标签。 选择 Template OS Linux 然后点击 Add 链接以将模板添加到主机。

接下来,点击 Encryption 标签。 同时选择PSK Connections to hostConnections from host

设置 PSK identity 重视 PSK 001,的价值 TLSPSKIdentity 您在上一步中配置的Zabbix代理的选项。

在里面 PSK value 文件中添加您为Zabbix代理生成的密钥,该密钥存储在 /etc/zabbix/zabbix_agentd.psk 文件。

Zabbix托管加密

最后,要添加主机,请点击蓝色的添加 button

结论#

您已在Ubuntu系统上成功安装了最新的Zabbix,并了解了如何添加要监视的新主机。

现在,您应该查看Zabbix文档,并了解有关如何配置和使用Zabbix的更多信息。

如果您遇到问题或有反馈,请在下面发表评论。

ubuntu zabbix监控

Sidebar