如何在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';
确保使用强密码更改“使用强密码更改”。
完成后,通过键入以下内容退出mysql控制台:
EXIT;
在Ubuntu上安装Zabbix
在撰写本文时,Zabbix的最新稳定版本是4.0版。
Ubuntu存储库中可用的Zabbix软件包通常已过时,因此我们将使用官方的Zabbix存储库。
1.安装Zabbix
使用以下wget命令下载最新的Zabbix存储库'.deb'软件包:
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 2016-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
在第一个屏幕上,将向我们显示欢迎消息。
点击“下一步”继续。
接下来,我们将看到以下信息页面,其中列出了运行Zabbix前端所需的所有PHP准备工作。
该表中的所有值均应为'OK',向下滚动以确认所有设置均正确。
验证后,点击“下一步”继续。
在下一个屏幕上,安装向导将要求我们输入数据库连接详细信息。
输入我们先前创建的MySQL用户和数据库详细信息。
输入服务器名称是可选的。
如果我们有多个Zabbix监视服务器,请输入。
如果提供,它将显示在菜单列和页面标题中。
点击“下一步”继续。
在下一个屏幕上,将显示安装前摘要。
单击“下一步”,安装完成后,我们将进入一个页面,通知我们已安装Zabbix Web界面。
要访问Zabbix登录页面,请单击“完成”按钮。
默认用户为“ Admin”,密码为“ 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
搜索“服务器” 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
进入内部后,在顶部导航列中单击“配置”,然后单击“主机”。
接下来,点击屏幕右上角的蓝色“创建主机”按钮,主机配置页面将打开:
输入要监视的远程主机的主机名和IP地址。
通过从列表中选择一个组,将主机添加到一个或者多个组中,或者输入不存在的组名来创建一个新的组。
“ Linux服务器”组是一个不错的选择。
完成后,点击“模板”标签。
选择“模板OS Linux”,然后单击“添加”链接以将模板添加到主机。
接下来,点击“加密”标签。
为“与主机的连接”和“与主机的连接”两者均选择PSK。
将“ PSK身份”值设置为“ PSK 001”,即我们在上一步中配置的Zabbix代理的“ TLSPSKIdentity”选项的值。
在“ PSK值”字段中,添加我们为Zabbix代理生成的密钥,该密钥存储在“ /etc/zabbix/zabbix_agentd.psk”文件中。
最后,要添加主机,请单击蓝色的“添加”按钮。