如何在Debian 9 Linux上安装和配置Zabbix

<p>Zabbix是成熟的开源软件,用于监视网络和应用程序。 Zabbix可以从各种网络设备,系统和应用程序收集指标。如果发生任何故障,Zabbix将通过各种方法发送通知警报。</p>

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

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

先决条件

您已登录的用户必须具有 sudo权限,才能安装软件包。

创建MySQL数据库

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

如果您的Debian服务器上未安装MariaDB,请按照这些说明进行安装。

登录到MySQL控制台:

sudo mysql

运行以下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;

在Debian上安装Zabbix

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

1.安装Zabbix

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

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

下载文件后,请使用以下工具进行安装:

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

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

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

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

2.为Zabbix前端配置PHP

在安装过程中,将创建具有所有必需的Apache和PHP设置的Apache配置文件。

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

/etc/apache2/conf-enabled/zabbix.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 always_populate_raw_post_data -1
        php_value date.timezone America/Denver

...

完成后,保存文件并重新启动Apache服务以激活更改。

sudo systemctl restart apache2

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

使用MySQL导入MySQL转储文件,该文件包含初始架构和Zabbix服务器的数据。

gunzip < /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
1.       Database password.
1.       Comment this line if no password is used.
1. 1. Mandatory: no
1. Default:
DBPassword=change-with-strong-password
...

保存并关闭文件。

重新启动并启用Zabbix服务器和代理服务:

sudo systemctl restart zabbix-server zabbix-agent
sudo 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 Mon 2019-01-28 15:37:21 CST; 35s ago
 Main PID: 27632 (zabbix_server)
   CGroup: /system.slice/zabbix-server.service
   ...

安装和配置Zabbix前端

Zabbix Web界面用PHP编写,可让您配置服务器,查看收集的数据并添加要监视的主机。

要开始安装,请打开最喜欢的浏览器,然后输入服务器的域名或公用IP地址,然后输入/zabbix

http(s)://your_domain_or_ip_address/zabbix

在第一个屏幕上,您会看到一条欢迎消息。点击Next step继续。

接下来,您将看到一个信息页面,其中包含运行Zabbix前端所需的必要PHP软件包的列表。向下滚动以确认所有内容均已安装并正确设置。验证后,单击Next step继续。

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

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

点击Next step继续。

在下一个屏幕上,您将看到安装前摘要。

单击Next step,一旦安装完成,您将进入显示Zabbix Web界面已安装的页面。要访问您的Zabbix登录页面,请单击Finish按钮。

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

登录后,您将被重定向到Zabbix管理信息中心。

从这里您可以开始自定义Zabbix安装并添加新主机。首先,您需要更改当前密码。为此,请单击顶部导航上的个人资料图标,导航到用户个人资料页面。

向Zabbix服务器添加新主机

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

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

安装Zabbix代理

本教程假定主机也使用Debian9。

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

wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb
sudo apt install ./zabbix-release_4.0-2+stretch_all.deb

更新软件包列表并安装Zabbix代理软件包:

sudo apt update
sudo 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
1.       List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
1.       Incoming connections will be accepted only from the hosts listed here.
1.       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
1.       and '::/0' will allow any IPv4 or IPv6 address.
1.       '0.0.0.0/0' can be used to allow any IPv4 address.
1.       Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
1. 1. Mandatory: yes, if StartAgents is not explicitly set to 0
1. Default:
1. Server=

Server=127.0.0.1
...

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

/etc/zabbix/zabbix_agentd.conf

...
### Option: TLSConnect
1.       How the agent should connect to server or proxy. Used for active checks.
1.       Only one value can be specified:
1.               unencrypted - connect without encryption
1.               psk         - connect using TLS and a pre-shared key
1.               cert        - connect using TLS and a certificate
1. 1. Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
1. Default:
TLSConnect=psk
...

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

/etc/zabbix/zabbix_agentd.conf

...
### Option: TLSAccept
1.       What incoming connections to accept.
1.       Multiple values can be specified, separated by comma:
1.               unencrypted - accept connections without encryption
1.               psk         - accept connections secured with TLS and a pre-shared key
1.               cert        - accept connections secured with TLS and a certificate
1. 1. Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
1. Default:
TLSAccept=psk
...

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

/etc/zabbix/zabbix_agentd.conf

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

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

/etc/zabbix/zabbix_agentd.conf

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

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

启动Zabbix代理服务并将其设置为在启动时通过以下方式启动:

sudo systemctl start zabbix-agent
sudo 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服务器Web界面:

http(s)://your_domain_or_ip_address/zabbix

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

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

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

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

下一步,单击Encryption选项卡。为Connections to hostConnections from host选择PSK。

PSK identity值设置为PSK 001,这是您在上一步中配置的Zabbix代理的TLSPSKIdentity选项的值。

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

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

结论

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

您现在应该查看 Zabbix文档,并详细了解如何配置和使用Zabbix。

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