基于Elastic Stack的高校数据中心可视化运维的研究与实现

2021-08-28 02:08:36杜巧宝
电脑与电信 2021年6期
关键词:配置文件日志容器

杜巧宝 李 玲

(安徽职业技术学院,安徽 合肥 230011)

关键字:Docker;Elasticsearch;Beat;Kibana;可视化

1 引言

近几年,随着高校信息化发展不断深入,智慧校园服务不断丰富,校级数据中心规模越来越大,虚拟化服务器和业务服务的数量越来越多,学校对数据中心的运维管理工作也越来越重视。数据中心运维的基础是对海量日志数据的分析,对数据处理的准确性和实时性要求逐渐变高。如果运维人员继续通过编写脚本,收集汇总日志进行集中化管理,将会导致查询时间长,排障效率低[2]。那么就需要建立集中式日志收集分析系统,将服务器、网络设备、安全设备等节点上的日志统一收集、管理、分析和可视化展示。通过可视化日志分析工具,可以及时发现隐患和故障,提高运维效率,为数据中心的安全、稳定运行提供保障。

随着搜索技术和分析技术的发展和成熟,各种日志收集分析工具被广泛使用。高校中由于运维成本和人员数量的限制,采用开源的、易用的、功能全面的Elastic Stack 作为日志收集分析工具。Elastic Stack 提供了一整套解决方案,包括日志的收集、传输、存储、分析和可视化访问。各个模块之间互相配合,完美衔接,能够提供高效的日志收集分析功能。本文以Docker 容器化技术为Elastic Stack 提供支撑,使用Docker Compose工具快速搭建分布式可视化运维平台。

2 Docker和Elastic Stack简介

2.1 Docker容器技术

Docker是一个开源的应用容器引擎,开发者打包应用和依赖包到一个可移植的镜像中,可以快速移植到主流的Linux 和Windows 机器上。容器是通过沙箱机制运行,相互之间不会有任何接口,提高了应用的安全和稳定性[3]。Docker 提供了Compose 工具,用于定义和运行多容器应用程序,可以实现一个命令快速创建并启动多个服务。

2.2 Elastic Stack介绍

Elastic Stack是一款开源数据收集处理存储展示解决方案,是ELK Stack+Beats 的更新换代产品。该产品包括Elasticsearch、Logstash、Kibana和Beats,各个软件直接相互配置,无缝衔接,如图1 所示。Elasticsearch 是一个存储、搜索和分析引擎。Logstash是服务器端数据处理管道,能够同时从多个来源采集数据、转换数据,然后将数据发送到Elasticsearch等“存储库”中。Beats是采用go语言开发的轻量级的数据采集工具,它可以采集不同类型的数据发送到Elasticsearch中,也可以将采集完的数据发送到Logstash上进行中转,然后推送到Elasticsearch 中。Kibana 则可以让用户在Elasticsearch中使用图形和图表对数据进行可视化[4]。

图1 Elastic Stack的组成

3 可视化运维平台的实施部署

3.1 实现思路

高校的业务系统大部分选择架设在数据中心虚拟化服务器中,对虚拟化服务器系统健康指标和各项服务运行状态的检测是运维重点。根据学校数据中心资源情况,在数据中心中虚拟出一个8 核CPU、16G 内存和1T 存储的Centos7.5虚拟机,作为可视化运维平台运行服务器。为了充分使用虚拟机资源,采用Docker容器技术部署可视化运维平台,利用Compose 工具提高部署效率。在Centos7.5 虚拟机中部署3个Elasticsearch容器组成存储和分析集群,1个Elasticsearchhead容器为Elasticsearch集群提供可视化编辑处理工具,1个Kibana容器为Elasticsearch集群数据提供可视化展示平台。

校内业务系统服务器中需要安装配置Beats来采集系统健康指标数据和服务运行状态数据。Beats提供了很多数据采集模板,包括系统健康指标、Nginx、Tomcat、Redis 等常用服务。通过Beats数据模板采集的数据可以直接传输给Elasticsearch 集群进行存储分析。对于没有模板的日志数据,也可以使用Beats 进行采集,数据先传输给Logstash 进行转换处理,再装载到Elasticsearch集群中进行存储分析。

3.2 实施部署

3.2.1 Docker的安装

在Centos7.5 中可以使用yum 工具安装Docker。由于在国内从DockerHUB上拉取镜像很慢而且有时出现无法拉取现象,所以需要为Docker配置镜像加速器。具体安装方法如下:

(1)安装一些必要的系统工具:sudo yum install-y yumutils device-mapper-persistent-data lvm2

(2)添加和更新软件源信息:sudo yum-config-manager--add-repo http://mirrors.aliyun.com/docker-ce/linux/Centos/docker-ce.repo

sudo yum makecache fast

(3)安装Docker:sudo yum-y install docker-ce

(4)配置镜像加速器

国内很多云服务商和大学都提供了加速器服务,本文从稳定、成本和易用性角度考虑,选用阿里云的加速器。

1)在阿里云的容器镜像服务中申请镜像加速器地址。

2)在Centos 的/etc/docker/目录中新建daemon.json 文件,在该文件中输入配置代码,如图2所示。

图2 镜像加速器配置

3)重载配置文件和重新启动Docker服务

sudo systemctl daemon-reload

sudo systemctl restart docker

(5)可以使用sudo docker version命令查看Docker版本号。若能正常显示,即完成安装。

3.2.2 Elastic Stack容器的部署

本文采用Docker Compose工具快速部署Elastic Stack集群容器。Compose 工具是用于定义和运行多容器Docker 应用程序的工具。在Compose 的YML 文件中配置Elastic Stack集群所需要的所有服务,一个命令就可以从YML 文件配置中创建并启动所有服务。

(1)在/home/docker/compose/elk/目录下创建conf、data和log三个目录和docker-compose.yml配置文件。分别在data和log三个目录下创建es01、es02、es03 目录用于存放Elasticsearch 集群数据和日志文件,并为所有创建的目录进行777 授权操作。在conf 中创建Kibana 的配置文件kibana.yml。

(2)在/home/docker/compose/elk/目录下编辑dockercompose.yml 配置文件,services 中配置3 个node,1 个eshead和1个Kibana。分别为各服务配置镜像名称、容器名称、基础环境、数据卷、端口映射等参数。具体配置内容如图3所示。

图3 docker-compose.yml配置

(3)在/home/docker/compose/elk/conf 目录下新建kibana.yml配置文件,需要配置Elasticsearch地址和端口号,用来连接Elasticsearch的master node,配置如图4所示。

图4 Kibana.yml配置

(4)配置完成后,在/home/docker/compose/elk/目录下运行:sudo docker-compose up。运行完成后,在浏览器中输入Centos 主机地址:端口号,测试Elasticsearch、Elasticsearchhead和Kibana是否安装启动成功,若能正常显示说明已成功安装。

3.2.3 数据采集

Beats 作为数据采集工具,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向Logstash 或Elasticsearch 发送数据。Beats中包括采集日志文件的Filebeat,采集系统运行健康指标数据的Metricbeat,采集网络数据的Packetbeat,采集Windows事件日志的Winlogbeat等。

其中Metricbeat 可以获取操作系统的CPU 和内存使用率、文件系统、磁盘IO 和网络IO 等统计数据[1]。本文以Metricbeat工具为例,采集Centos系统和相关服务的运行健康指标数据直接传输装载到Elasticsearch中。在应用服务中具体安装采集过程如下:

(1)在/home/beat/目录下运行以下命令下载Metricbeat工具:

curl-L-O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.10.2-linux-x86_64.tar.gz

(2)解压到当前目录

tar xzvf metricbeat-7.10.2-linux-x86_64.tar.gz

(3)编辑metricbeat-7.10.2-linux-x86_64 目录下的metricbeat.yml 配置文件,设置output、Kibana 和Dashboards 三个模块中的相关配置。

(4)在metricbeat-7.10.2-linux-x86_64/modules.d 目录下选择Elastic Stack 提供的数据采集模板,重命名需要的采集模板,去除文件名后面的.disabled即可激活使用。本文选用system和tomcat采集模板,如图5所示。

图5 数据采集模板激活配置

(5)为配置文件授予root 权限:sudo chown root metricbeat.yml;sudo chown root modules.d/system.yml;sudo chown root modules.d/tomcat.yml。

(6)运行Metricbeat采集数据:sudo./metricbeat–e。

(7)在Elasticsearch-head 中连接Elasticsearch,可以看到Metricbeat 索引中有数据传入,说明已成功完成部署,如图6所示。

图6 Elasticsearch列表

3.2.4 数据可视化

Elasticsearch 是Elastic Stack 的核心,它是通过有限状态转换器实现用于全文检索的倒排索引,实现用于存储数值数据和地理位置数据的BKD 树,以及用于分析的列存储。由于每个数据都被编入了索引,开发者可以快速使用和访问所有数据。Elasticsearch 对外提供的是索引的概念,相当于Mysql 的数据库。用户查询是在索引上完成,每个索引由若干个分片组成,以此来达到分布式可扩展的能力。

Elastic Stack提供了Kibana可视化工具,可以为Logstash和Elasticsearch汇总、分析和搜索重要数据日志,同时提供日志分析可视化展示。Metricbeat将系统指标数据和业务运行状态数据传输给Elasticsearch 进行存储,Kibana 即可从Elasticsearch中查询数据进行可视化展示。

在浏览器中输入Centos 主机地址加Kibana 端口号5601,即可访问可视化页面。选择左侧工具栏中的Dashboard,打开可视化仪表盘页面。在搜索框中搜索Metricbeat system,选择下拉选项中的[Metricbeat System] Host overview ECS,即可看到业务系统运行健康指标可视化页面。通过设置刷新频率即可实时图形化观察服务器运行情况,如图7所示。

图7 可视化运维平台

4 结语

数据中心支撑各信息系统运行,服务于学校教学、科研、管理各个方面,需要各项服务具有强连续性和高稳定性。本文介绍的可视化运维平台相对于传统的运维方式,部署方便、功能强大,扩展简便、实用性强。通过图形化仪表盘可以快速发现系统运行问题,提前制作和完成相关解决方案。改变传统运维方式,变被动为主动,极大提高了系统的连续性和稳定性。今后数据中心新增各项应用服务时,只需在对应的系统中增加Beats 模块,即可通过“热插拔式”快速加入Elastic Stack可视化运维平台中。

猜你喜欢
配置文件日志容器
提示用户配置文件错误 这样解决
Different Containers不同的容器
一名老党员的工作日志
华人时刊(2021年13期)2021-11-27 09:19:02
扶贫日志
心声歌刊(2020年4期)2020-09-07 06:37:14
搭建简单的Kubernetes集群
难以置信的事情
互不干涉混用Chromium Edge
忘记ESXi主机root密码怎么办
游学日志
取米