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的更多信息。
如果您遇到问题或有反馈,请在下面留言。