共计 8934 个字符,预计需要花费 23 分钟才能阅读完成。
Zabbix 是最受欢迎的开源监控软件工具之一。Zabbix 从您的网络设备,系统和应用程序收集指标,并确保它们正常运行。如有任何问题,Zabbix 将通过各种方法发送通知警报。
Zabbix 可以部署用于基于代理和无代理的监控。Zabbix 代理占用空间小,可以在各种平台上运行,包括 Linux,UNIX,macOS 和 Windows。
本教程介绍如何使用 MySQL 作为数据库后端在 Ubuntu 18.04.4 LTS 服务器上安装和配置最新版本的 Zabbix 4.0。我们还将向您展示如何在远程主机上安装 Zabbix 代理并将主机添加到 Zabbix 服务器。
必要条件
在继续本教程之前,请确保以具有 sudo 权限的用户身份登录。
创建 MySQL 数据库
Zabbix 支持 MySQL/MariaDB 和 PostgreSQL。在本教程中,我们将使用 MySQL 作为数据库后端。
如果您在 Ubuntu 服务器上未安装 MySQL,则可以参考《如何在 Ubuntu 18.04 上安装 Joomla 内容管理系统 https://www.linuxidc.com/Linux/2020-03/162723.htm》。
键入以下命令登录 MySQL shell:
[linuxidc@linux:~/www.linuxidc.com]$ sudo mysql
[sudo] linuxidc 的密码:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 152
Server version: 10.1.44-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE zabbix CHARACTER SET utf8 collate utf8_bin;
Query OK, 1 row affected (0.05 sec)
从 mysql 控制台内部,运行上面这条 SQL 语句以创建新数据库。
接下来,创建一个 MySQL 用户帐户并授予对数据库的访问权限:
MariaDB [(none)]> GRANT ALL ON zabbix.* TO ‘zabbix’@’localhost’ IDENTIFIED BY ‘change-with-strong-password’;
Query OK, 0 rows affected (0.07 sec)
确保使用强密码更改 change-with-strong-password。
刷新数据库
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)
完成后,键入以下命令退出 mysql 控制台:
MariaDB [(none)]> EXIT;
Bye
在 Ubuntu 上安装 Zabbix
在撰写本文时,Zabbix 的最新稳定版本是 4.0 版。Ubuntu 存储库中提供的 Zabbix 软件包经常过时,因此我们将使用官方的 Zabbix 存储库。
1、安装 Zabbix
使用以下 wget 命令下载最新的 Zabbix 存储库.deb 包:
[linuxidc@linux:~/www.linuxidc.com]$ 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 系统:
[linuxidc@linux:~/www.linuxidc.com]$ sudo apt install ./zabbix-release_4.0-2+bionic_all.deb
更新软件包索引并安装 Zabbix 服务器,带有 MySQL 数据库支持的 Web 前端和 Zabbix 代理:
[linuxidc@linux:~/www.linuxidc.com]$ sudo apt update
[linuxidc@linux:~/www.linuxidc.com]$ sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent
上面的命令还将安装 Apache,PHP 和所有必需的 PHP 模块。
2、为 Zabbix 前端配置 PHP
在安装过程中,会创建一个包含所有必需的 Apache 和 PHP 设置的 Apache 配置文件。您只需进行一些小改动并设置适当的时区。
打开配置文件,取消注释时区线并将其更改为您的时区。您可以在此处找到 PHP 支持的完整时区列表。
[linuxidc@linux:~/www.linuxidc.com]$ sudo vim /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 Asia/Shanghai
</IfModule>
…
完成后,保存配置文件并重新启动 Apache 服务以使更改生效:
[linuxidc@linux:~/www.linuxidc.com]$ sudo systemctl restart apache2
3、为 Zabbix Server 配置 MySQL 数据库
Zabbix 安装包提供了一个转储文件,其中包含 Zabbix 服务器和 MySQL 的初始模式和数据。
通过运行以下命令导入 MySQL 转储文件:
[linuxidc@linux:~/www.linuxidc.com]$ zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
Enter password:
出现提示时,输入您之前创建的用户密码。成功时,没有给出输出。
接下来,我们需要编辑 Zabbix 配置并设置数据库密码。
在编辑器中打开配置文件:
[linuxidc@linux:~/www.linuxidc.com]$ sudo vim /etc/zabbix/zabbix_server.conf
搜索以下部分,取消注释 DBPassword 指令并添加数据库密码。
[linuxidc@linux:~/www.linuxidc.com]$ sudo vim /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
…
保存并关闭文件。
重新启动 Zabbib 服务器和代理服务,并使它们在系统引导时启动:
[linuxidc@linux:~/www.linuxidc.com]$ sudo systemctl restart zabbix-server zabbix-agent
[linuxidc@linux:~/www.linuxidc.com]$ sudo systemctl enable zabbix-server zabbix-agent
Synchronizing state of zabbix-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-server
Synchronizing state of zabbix-agent.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-agent
要检查 Zabbix 服务器是否正在运行,请执行以下操作:
[linuxidc@linux:~/www.linuxidc.com]$ sudo systemctl status zabbix-server
● zabbix-server.service – Zabbix Server
Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor pr
Active: active (running) since Sat 2020-04-04 16:00:32 CST; 1min 29s ago
Main PID: 75143 (zabbix_server)
Tasks: 34 (limit: 4637)
CGroup: /system.slice/zabbix-server.service
├─75143 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
├─75188 /usr/sbin/zabbix_server: configuration syncer [synced configu
├─75268 /usr/sbin/zabbix_server: housekeeper [startup idle for 30 min
├─75269 /usr/sbin/zabbix_server: timer #1 [updated 0 hosts, suppresse
├─75270 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.00
├─75271 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in
安装和配置 Zabbix 前端
Zabbix Web 界面是用 PHP 编写的,允许我们配置服务器,查看收集的数据并添加我们想要监控的主机。
在开始使用 Web 界面之前,我们需要安装它。
打开您喜欢的浏览器并键入您的服务器的域名或公共 IP 地址,然后键入 /zabbix:
https://www.linuxidc.com/zabbix
在第一个屏幕上,您将看到欢迎信息。单击下一步继续。
Zabbix 4.0 安装截图
接下来,您将看到以下信息页面,其中列出了运行 Zabbix 前端所需的所有 PHP 先决条件。此表中的所有值都应该是正常的,向下滚动以验证是否所有内容都已正确设置。验证后,单击“下一步”继续。
Check of pre-requisites
在下一个屏幕上,安装向导将要求您输入数据库连接详细信息。输入您之前创建的 MySQL 用户和数据库详细信息。
zabbix-configure-db-connection
输入服务器的名称是可选的。如果您有多个 Zabbix 监控服务器,请输入它。如果提供,它将显示在菜单栏和页面标题中。
单击下一步继续。
zabbix-server-details
在下一个屏幕上,您将看到安装前摘要。
Pre-installation summary
单击下一步,安装完成后,您将进入一个页面,通知您已安装 Zabbix Web 界面。要访问 Zabbix 登录页面,请单击“完成”按钮。
zabbix-install
恭喜你!您已成功安装 Zabbix 前端。
配置文件“/usr/share/zabbix/conf/zabbix.conf.php”已创建。
默认用户为“Admin”,密码为“zabbix”。输入用户名和密码,然后单击“登录”按钮。
zabbix-login-screen
登录后,您将被重定向到 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.deb
sudo apt install ./zabbix-release_4.0-2+bionic_all.deb
更新程序包索引并安装 Zabbix 代理程序包:
sudo apt update
sudo apt install zabbix-agent
Zabbix 支持两种方法用于服务器 – 客户端通信加密,预共享密钥(PSK)和基于证书的加密。在本教程中,我们将使用预共享密钥(PSK)方法来保护服务器和代理之间的连接。
使用以下命令生成预共享密钥并将其保存到文件中:
[linuxidc@linux:~/www.linuxidc.com]$ openssl rand -hex 32 | sudo tee /etc/zabbix/zabbix_agentd.psk
[sudo] linuxidc 的密码:
PSK 键看起来像这样:
d29afe7076f78793aef43dfc6459a9c148050afca95968a77eaad2d1c0349b2e
打开 Zabbix 代理配置文件:
[linuxidc@linux:~/www.linuxidc.com]$ sudo vim /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 代理服务并将其设置为在启动时启动:
[linuxidc@linux:~/www.linuxidc.com]$ sudo systemctl start zabbix-agent
[linuxidc@linux:~/www.linuxidc.com]$ sudo systemctl enable zabbix-agent
接下来,您需要添加防火墙规则,以便在 TCP 端口 10050 上启用来自 Zabbix 服务器的流量。
假设您正在使用 UFW 来管理防火墙,并且您希望允许从 192.168.166.189 IP 地址进行访问,那么您将运行以下命令:
[linuxidc@linux:~/www.linuxidc.com]$ sudo ufw allow proto tcp from 192.168.166.189 to any port 10050
设置新主机
既然已安装并配置了要监视的远程主机上的代理,则下一步骤是在 Zabbix 服务器上注册主机。
以 admin 用户登录 Zabbix Server Web 界面:
https://www.linuxidc.com/zabbix
进入内部后,在顶部导航栏中单击“配置”,然后单击“主机”
接下来,单击屏幕右上角的蓝色“创建主题”按钮,将打开主机配置页面:
zabbix-hosts-host
输入要监视的远程主机的主机名和 IP 地址。通过从列表中选择组,将主机添加到一个或多个组,或输入不存在的组名称以创建新组。Linux servers 组是一个不错的选择(如图)。
zabbix-hosts-templateszabbix-hosts-templates
完成后,单击“模板”选项卡。选择 Template OS Linux 并单击 Add 链接将模板添加到主机。
接下来,单击“加密”选项卡。为主机连接和主机连接选择 PSK。
将 PSK 标识值设置为 PSK 001,即您在上一步中配置的 Zabbix 代理的 TLSPSKIdentity 选项的值。
在 PSK 值字段中,添加为 Zabbix 代理生成的密钥,即存储在 /etc/zabbix/zabbix_agentd.psk 文件中的密钥。
zabbix-hosts-encryptionzabbix-hosts-encryption
最后,要添加主机,请单击蓝色的“添加”按钮。
总结
您已在 Ubuntu 系统上成功安装了最新的 Zabbix,并学习了如何添加要监视的新主机。
您现在应该查看 Zabbix 文档并了解有关如何配置和使用 Zabbix 的更多信息。
如果您遇到问题或有反馈,请在下面留言。
: