44Linux 运维新手入门课--Zabbix 监控平台搭建

Zabbix 监控平台搭建

探索监控平台的世界

Zabbix 是一个常用的监控软件,在 Linux 运维工作中,监控系统的搭建和维护是必不可少的一部分。
作为监控领域优秀的开源软件,Zabbix 功能齐全、图形展示功能强大、插件多,可以适用于大部分的监控需求。

Zabbix 介绍

什么是监控系统呢
指标,监控和警报都是相互关联的概念,它们共同构成了监控系统的基础。
指标代表系统中的数据,监控是收集、汇总和分析这些值的过程,用以提高对组件特征和行为的了解。
他们能够提供对系统运行状况的可见性,帮助了解系统使用或行为的趋势,并了解所做的更改的影响。如果指标超出预期范围,系统可以发送通知以提示操作员查看,然后可以提供帮助信息以确定可能的原因。
关于 Zabbix
Zabbix 是一个基于 Web 界面的企业级的分布式开源监控软件。它可以对各种网络参数以及服务器的健康性和完整性进行监控,保证系统的安全运行。

image.png

下面的图中罗列了 Zabbix 可以监控的内容:Network(网络)、Server(服务器)、Cloud(云资源)、Application(应用)、Services(服务)。
image.png

Zabbix 的组成

Zabbix 由以下几个主要软件组件构成:
Server
存储数据库
Web 界面
Agent 监控代理

服务端

image.png

核心部分包括 Server 、Web 前端 和 存储数据库。
Zabbix server 是监控代理程序、报告系统可用性、系统完整性和统计信息的核心组件。
Zabbix 可以使用 MySQL 或者 PostgreSQL 数据库来存储数据,所有配置信息和 Zabbix 收集到的数据都被存储在数据库中。由图中的结构可知,Web GUI 和 Server 都要与数据库交互,因此两者都要配置数据库相关的信息,这在本实验后面的部分中会介绍到。
Zabbix 的前端使用 Web 界面。用户可以直接通过 web 界面和 Zabbix 进行交互。
Agent
Zabbix Agent 监控代理部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给 Zabbix Server,完成信息的收集。
Zabbix 除了这些组件之外,可选的组件还有:Zabbix Proxy、Zabbix_Java_Gateway 等等。本实验着重介绍最基础的一种 Zabbix 监控架构。

搭建 Zabbix 监控环境

现在我们开始在实验环境中实践部署一个 Zabbix 监控平台。
搭建 Zabbix 监控平台有四个关键:Web 管理界面、服务器,客户端和数据库。
它们是可以安装在同一台服务器上(本实验即采用这种方式)。但是如果你拥有一个更大更复杂的环境,将它们安装在不同的主机上也是一个选择。
如果对于环境有不同的需求,可以自行前往 https://www.zabbix.com/cn/download 选择需要的配置进行,然后下载不同的包。本次实验选择在 Ubuntu20.04 上安装 Zabbix5.2,使用 MySQL 数据库和 Apache Web 服务器。

image.png

准备工作

下载配置包,该软件包包含了 apt(软件包管理器)配置文件,它给出了 zabbix 的源。

# 确保当前工作路径在家目录
cd ~

# 下载安装包
wget https://labfile.oss.aliyuncs.com/courses/1403/zabbix-release_5.2_all.deb

使用 dpkg 进行安装:

sudo dpkg -i zabbix-release_5.2_all.deb
image.png

修改安装源为阿里云:

sudo vim /etc/apt/sources.list.d/zabbix.list

按下 i 键进入编辑模式,将自带的源注释掉,换成下面阿里云的:

deb http://mirrors.cloud.aliyuncs.com/zabbix/zabbix/5.2/ubuntu focal main
deb-src http://mirrors.cloud.aliyuncs.com/zabbix/zabbix/5.2/ubuntu focal main

最后,更新一下源:

sudo apt update

服务器与界面

Server
要想搭建一个 Zabbix 的工作环境,需要从服务器入手。
安装支持 MySQL 的 Zabbix Server,以及对应的 Web 界面:

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf

注意,安装过程中需要输入 y 确认,文档后面的操作中也要注意这一点,之后的内容中将不再提示。

启动 MySQL

在实验楼的环境中,我们已经安装好了 MySQL,因此用户不需要进行操作。
使用 service 命令就可以启动 MySQL:

sudo service mysql start

https://doc.shiyanlou.com/courses/uid977658-20191008-1570524631520
环境中的 MySQL 无需密码就可以登录。因此登录 MySQL 的方式非常简单,只需要使用 -u 指定用户名就可以了,这里使用 root 用户。
环境里使用的 MariaDB 替代 MySQL,不影响实验。

mysql -uroot
image.png

登录之后不要退出,接下来的步骤需要在 MySQL 命令行中进行。

创建数据库和用户

我们需要在 MySQL 上创建 Zabbix 初始化数据库和用户。需要注意的是,数据库名和用户名都是 zabbix。
在上一个步骤中,我们已经登录到 MySQL 了。
创建一个名叫 zabbix 的数据库,字符集设置为 utf8。

CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

创建数据库之后,默认是没有任何表的,可以使用下面的命令先切换数据库:

USE zabbix;

然后查看所有的表:

SHOW TABLES;
image.png

从结果可以看出,数据库中没有任何的表和数据。
然后创建一个用户 zabbix,密码为 zabbixPSWD,用于连接数据库。

create user zabbix@localhost identified by 'zabbixPSWD';
grant all privileges on zabbix.* to zabbix@localhost;

这是一个授权的操作,意为允许用户 zabbix 从 localhost 的主机连接到 mysql 服务器的 zabbix 数据库。


image.png

修改完成后,我们输入 quit 再按回车就可以退出 MySQL 命令行,回到我们的终端命令行了。

quit

导入数据

还记得刚刚的操作 SHOW TABLES; 吗?它的作用是查看数据库中的所有表,zabbix 数据库创建之后是没有表的。需要使用命令导入数据之后,zabbix 数据库就会有表和数据。

使用 zcat 初始化查看其中数据,通过 zabbix 用户初始化名为 zabbix 的数据库。
注意,实验的容器环境下不会生成这个 create.sql.gz 文件,需要我们手动获取。

# 获取 create.sql.gx
wget https://labfile.oss.aliyuncs.com/courses/1403/create.sql.gz
sudo mv create.sql.gz /usr/share/doc/zabbix-server-mysql/
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz |  \
  mysql -uzabbix -pzabbixPSWD zabbix

注意:当输入 \ 之后,命令就可以换行输入,避免一行命令太长。这里 mysql 命令的 -u 与 zabbix 连写,及后面的 -p 与密码连写,都是为了防止 MySQL 无法识别。


image.png

数据的导入需要一定的时间,用户需要耐心等待命令执行完成。
接下来,我们使用刚刚创建的 zabbix 用户进行登录。

mysql -uzabbix -pzabbixPSWD

https://doc.shiyanlou.com/courses/uid977658-20191008-1570525527775
查看所有的数据库。我们会发现,有一个 zabbix 数据库。

SHOW DATABASES;
image.png

切换数据库

USE zabbix;
image.png

可以看到 zabbix 数据库已经导入了表。

SHOW TABLES;

https://doc.shiyanlou.com/courses/uid977658-20191008-1570525733934
使用下面的命令可以查看 users 表中的 1 行数据(一个记录)。表中已经导入了数据。

SELECT * FROM users LIMIT 1;

由于终端窗口的大小原因,显示不是很美观,但证明了表中是有数据的。


image.png

操作完成后,我们输入 quit; 再按回车退出 MySQL 命令行。

quit;
image.png

修改 Zabbix Server 的配置

在 zabbix_server.conf 中编辑数据库配置,这里我们使用 Vim 编辑器。

sudo vim /etc/zabbix/zabbix_server.conf

https://doc.shiyanlou.com/courses/uid977658-20191008-1570526222153
首先找到关于 DBHost 的配置。

DBHost=localhost

这里默认已经配置了数据库的地址为 localhost,所以不需要进行更改。


image.png
DBName=zabbix
DBUser=zabbix

这两行是配置数据库的名字和用户名。因为我们创建的用户和数据库都是同名的,因此也不需要更改。


image.png

最后是配置登录 zabbix 用户的密码。

DBPassword=zabbixPSWD

注:zabbixPSWD 是 MySQL 的 Zabbix 数据库密码。

image.png

编辑完成后,保存并退出。
https://doc.shiyanlou.com/courses/uid977658-20191008-1570526616574
启动 Zabbix Server

sudo service zabbix-server start

https://doc.shiyanlou.com/courses/uid977658-20191008-1570526668878

Zabbix 前端配置

需要先使用下面的命令启动一下 Apache2

sudo service apache2 start

https://doc.shiyanlou.com/courses/uid977658-20191008-1570526798605
虽然有一个提示 ServerName 的报错,但是不影响实验, Apache 也是启动成功了的。可以用下面的命令查看它的状态。

sudo service apache2 status
image.png

在进行修改之前,我们先确定一下 PHP 的版本。

php -v

注意:这里是小写的 v。


image.png

经过确认,是 PHP 7.4。然后,我们开始动手修改配置文件吧!Zabbix 前端的 Apache 配置文件位于 /etc/apache2/conf-enabled/zabbix.conf,使用下面的命令调用 Vim 编辑器进行编辑。

sudo vim /etc/apache2/conf-enabled/zabbix.conf

这里我们设置时区为 Asia/Shanghai。


image.png

编辑完成后,按下 Ecs 键,输入 :wq 保存并退出。
前端配置完成后,需要重新启动 Apache Web 服务器:

sudo service apache2 restart

https://doc.shiyanlou.com/courses/uid977658-20191008-1570527166738
与刚刚一样的报错,可以忽略掉。

初始化 Zabbix

Zabbix 前端可以在浏览器中通过 http://localhost/zabbix 进行访问。打开 Firefox 浏览器,在浏览页面中大家按照提示框一步一步进行 zabbix 初始安装。步骤如下:
☞ 步骤(1)左边红色框中是前端登录界面的步骤,点击切换语言为中文(zh_CN),然后选择右下角的下一步按钮。

image.png

☞ 步骤(2)然后是一些先决条件,可以看到我们的环境都是满足各项要求的,如果你的 PHP 版本不满足要求可以安装低版本的 zabbix。
之前配置的 date.timezone 显示的是 Asia/Shanghai。
image.png

☞ 步骤(3) 接着是连接 DB 数据库,需要输入之前设定的数据库密码 zabbixPSWD。如果选择了 HashiCorp Vault 选项来存储凭据则需要指定 Vault API 终端节点,这里使用文本即可。
image.png

☞ 步骤(4)然后是 zabbix 服务器主机和端口的设置,因为我们没有修改默认配置,所以使用默认设置即可。
image.png

☞ 步骤(5)接下来是 GUI 设置,默认时区是我们刚刚修改的 Asia/Shanghai,Web 界面的主题可以根据自己喜好设置。
image.png

☞ 步骤(6) 最后是安装前的汇总,将显示你的配置信息,确认无误后点击下一步。
image.png

配置文件已经创建,点击完成将会跳转登录界面。
image.png

现在可以登录 zabbix 了,输入用户名 Admin 和密码 zabbix 登录。
image.png

开始使用 Zabbix

Zabbix 的核心部分已经部署完成了,接下来还需要在 Zabbix 中添加 Agent 主机和主机群组。
因为我们只有一个环境,所以本地的主机既是 Server 也是被监控端,还需要安装 Agent:

sudo apt install -y zabbix-agent

https://doc.shiyanlou.com/courses/uid977658-20191008-1570524538853
默认启动 Zabbix Agent 的方式如下。

sudo service zabbix-agent start

但是容器环境内无法使用 service 启动,需要在终端里手动启动,注意不要关闭这个终端。

sudo /usr/sbin/zabbix_agentd --foreground -c /etc/zabbix/zabbix_agentd.conf

image.png

添加主机
回到 Zabbix 的 Web GUI,我们开始添加一个 Agent 到 Server 中。
系统会自动添加 zabbix server 到主机中。

点击菜单的 “配置” -> “主机”,然后点击 “创建主机”。

image.png

输入主机名 localhost,群组点击选择,然后勾选 Linux Servers 和 Zabbix Servers 这两个组,Interfaces 点击添加,选择客户端,其他信息我们暂时用不到,可以不用管。点击添加。
image.png

这样,本地的 Agent 就添加到 Zabbix Server 中了。
添加主机组
刚刚我们将主机添加到了 Linux Server 和 Zabbix Server 这两个组。现在我们创建一个自定义的主机群组,并把刚才创建的 localhost 主机添加进去。
如下图所示,点击 “主机群组” 之后,再点击 “创建主机群组”。
image.png

填写群组名 Shiyan HostGroup。
image.png

点击添加之后就创建完成了。
image.png

接下来,我们将主机添加到这个主机群组中。先点击菜单的 “主机”,再点击 localhost(我们刚才创建的主机)。
image.png

进入到配置页面之后就可以修改它的主机群组了。如下图进行操作,先点击群组的选择按钮,勾选 Shiyan HostGroup,然后点击更新。
image.png

至此,一个完整的 zabbix 平台搭建就完成了,在下一节中将继续给大家讲解如何去使用 zabbix。请误停止实验,避免在下一节实验中重新安装和配置。

你可能感兴趣的:(44Linux 运维新手入门课--Zabbix 监控平台搭建)