头图

随着业务的快速增长,每天系统产生的 log 会不断增长,这其中包含着大量有价值信息。我们通过焱融 SaaS 平台实现了日志备份的功能。然而,从实际业务的需求角度来看,日志备份只是最基本的功能,如何让日志发挥更大价值,为开发者快速做出决策,才是我们最终想要的结果。

工欲善其事,必先利其器。如果我们能拥有一个完整的软件结构,那么在一定程度上就可以提升工作效率。本篇文章,我们将和大家分享,如何基于焱融 SaaS 平台所提供的存储能力,通过 ELK 实时日志分享平台搭建整体软件结构。

01 工具分享

焱融 SaaS 数据服务平台

焱融 SaaS 数据服务是焱融科技面向海量非结构化数据应用场景而打造的高性能分布式文件存储 NAS,作为一款全球云文件系统,其具备灵活性、共享性和易用性的特点,在支持多个主流云的基础上,无缝对接云中的企业级部署,满足不同应用场景下的多样化存储需求。

ELK

ELK是 Elasticsearch, Logstash, Kibana 的缩写,它是一个开源的实时日志分析平台,主要由 Elasticsearch, Logstash 和 Kiabana 三部分组成。ELK 是目前典型的做日志分析的开源组件组合。其中:

  • Elasticsearch (ES)是一个分布式的 Restful 风格的搜索和数据分析引擎,具备可扩展性、弹性、灵活性、高速、可查询、可分析等特点;
  • Logstash 主要用于收集服务器日志,它是一个开源数据收集引擎,具有实时管道功能;
  • Kibana 可以使海量数据通俗易懂,无需额外的基础设施。

在 ELK 中,三大组件的大概工作流程如下图所示,由 Logstash 从各个服务中采集日志并存放至 Elasticsearch 中,然后再由 Kiabana 从 Elasticsearch 中查询日志并展示给终端用户。

ELK 工作流程图

通过上述介绍,相信大家对我们本次教程中使用的工具都有了一定了解,现在让我们步入正题。

02 环境准备

首先,我们需要对虚拟做必要的准备,例如 SeLinux 修改,放开 root 登录,以及安装 nfs 工具等。

03 安装ElasticSearch

由于 ELK 的安装包,并不在默认的操作系统 YUM 源中,所以我们需要添加 elaistic 自己的官方源。

在进行 yum install elasticsearch 之后, 我们可以利用焱融 SaaS 平台的挂载目录作为 elasticsearch 存储数据的目录,进行配置文件以及目录权限的修改,详细请见下图:

启动 elasticsearch 并生成需要的访问密码

Changed password for user apm_system

PASSWORD apm_system = SONQX0NCTcZoi0sdd4nP

Changed password for user kibana_system

PASSWORD kibana_system = J8ch7nLQpxshQFH1Az26

Changed password for user kibana

PASSWORD kibana = J8ch7nLQpxshQFH1Az26

Changed password for user logstash_system

PASSWORD logstash_system = ahF47zDOuC7hr6IWDnIV

Changed password for user beats_system

PASSWORD beats_system = j9rSoC8cU26ULC1GjGEt

Changed password for user remote_monitoring_user

PASSWORD remote_monitoring_user = MPGSVT3JKovBrz6GCG4Y

Changed password for user elastic

PASSWORD elastic = olopZQxjIDtXsmShUA2J

完成以后,我们可以快速验证一下我们的安装是否成功。使用对应的 elastic 账号的密码,请求 API 数据,如下图所示,则表示安装成功:

04 安装Kibana

Kibana 在提供了对 ElasticSearch 可视化管理的同时,还可以定义各种查询条件,方便未来对后台数据结果的访问与查看。

另外,在修改了对应的配置文件,并启动 Kibana 后,我们可以通过浏览器访问 http:://:5601,并使用 elastic 账号登录来顺利完成 Kibana 的安装。

05 日志采集

当前,日志采集有多种工具,例如 LogStash, Beats 等。在我看来,虽然 LogStash 采用 Java 语言编写,耗用资源更多一些,但是它除了能满足采集日志的需求之外,还能做过滤处理等;Beats 系列用 Go 语言编写,则更加的轻量级和简单,其可以直接与 LogStash、Elasticsearch 对接。

他们的关系可以下述一张图来表达:

为了让我们的配置过程更加简单,所以本次选择采用 Filebeat 直接对接 Elasticsearch 集群的方式来收集日志。

修改了相关的配置文件后,我们正式启动 Filebeat,随后它将开始检测文件的变动,并将持续的数据写入到 Elasticsearch 集群中做保存。

06 效果验证

当再次登录到 Kibana 面板时,我们就可以在数据流中看到收集到的日志信息,同时在虚拟机的挂载点目录内,也可以看到数据已经存储到 Elasticsearch 的数据文件中。

在数据收集成功后,我们还可以利用 Kibana 的查询分析功能,对数据日志做进一步的过滤,例如查找某一个错误码相关的所有日志,这样可以很方便的定位问题。当然,ELK 内包含着大量的功能,等待着我们去发掘使用。

通过上述步骤,我们了解了如何基于焱融 SaaS 平台的存储能力完成一个整体软件架构,这个架构能够帮助工程师,从日志中获取更多具备价值的信息。未来,我们将会持续分享焱融 SaaS 平台在其他方面的技术应用,敬请期待。


YRCloudFile
15 声望3 粉丝

软件定义的混合云统一文件存储