如何在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 host
和Connections from host
选择PSK。
将PSK identity
值设置为PSK 001
,这是您在上一步中配置的Zabbix代理的TLSPSKIdentity
选项的值。
在PSK value
字段中,添加您为Zabbix代理生成的密钥,该密钥存储在/etc/zabbix/zabbix_agentd.psk
文件中。
最后,要添加主机,请点击蓝色的添加button
。
结论
您已成功在Debian系统上安装了最新的Zabbix,并了解了如何添加要监视的新主机。
您现在应该查看 Zabbix文档,并详细了解如何配置和使用Zabbix。
如果您遇到问题或有反馈,请在下面发表评论。