前言

ELK 是三个开源我的项目的首字母缩写:Elasticsearch、Logstash 和 Kibana。但起初呈现的 FileBeat 能够齐全代替 Logstash的数据收集性能,也比拟轻量级。本文将介绍 EFK: Elasticsearch、Filebeat 和 Kibana

Elasticsearch:分布式搜寻和剖析引擎,具备高可伸缩、高牢靠和易治理等特点。基于 Apache Lucene 构建,能对大容量的数据进行靠近实时的存储、搜寻和剖析操作。通常被用作某些利用的根底搜索引擎,使其具备简单的搜寻性能;

Kibana:数据分析和可视化平台。与 Elasticsearch 配合应用,对其中数据进行搜寻、剖析和以统计图表的形式展现;

Filebeat:Filebeat 是一个轻量级的传送器,用于转发和集中日志数据。Filebeat 作为代理装置在您的服务器上,监控您指定的日志文件或地位,收集日志事件,并将它们转发到 Elasticsearch 或 Logstash 以进行索引。

通过本文理解如何将运行在 Rainbond 上的利用,通过开启 FileBeat 插件的形式收集利用日志并发送到 Elasticsearch 中。

整合架构

在收集日志时,须要在利用中启用 FileBeat 插件进行收集,FileBeat收集日志有三种形式:

  1. 指定日志门路
  2. 收集所有容器日志
  3. 指定 Label 主动发现

本文应用 指定日志门路进行收集,这种形式咱们能够自定义收集日志的规定等。

咱们将 FileBeat 制作成 Rainbond 的 个别类型插件 ,在利用启动之后,插件也随之启动并主动收集日志发送至 Elasticsearch,整个过程对利用容器无侵入,且拓展性强。对接其余日志收集也能够用相似形式,用户通过替换插件实现对接不同的日志收集工具。

下图展现了在Rainbond应用FileBeat插件收集利用日志并发送到 Elasticsearch 的构造。

插件实现原理解析

Rainbond插件体系是绝对于Rainbond利用模型的一部分,插件次要用来实现利用容器扩大运维能力。因为运维工具的实现有较大的共性,因而插件自身能够被复用。插件必须绑定到利用容器时才具备运行时状态,用以实现一种运维能力,比方性能剖析插件、网络治理插件、初始化类型插件。

具备运行时的插件的运行环境与所绑定的组件从以下几个方面保持一致:

  • 网络空间 这个一个至关重要的个性,网络空间统一使插件能够对组件网络流量进行旁路监听和拦挡,设置组件本地域名解析等。
  • 存储长久化空间 这个个性使得插件与组件之间能够通过长久化目录进行文件替换。
  • 环境变量 这个个性使得插件能够读取组件的环境变量。

在制作 FileBeat 插件的过程中,应用到了 个别类型插件,能够了解为一个POD启动两个 Container,Kubernetes原生反对一个POD中启动多个 Container,但配置起来绝对简单,在Rainbond中通过插件实现使用户操作简略。

通过Rainbond 利用商店一键装置 EK

咱们已将 elasticsearch + Kibana 制作为利用并公布至利用市场,用户可基于开源利用商店一键装置。

  1. 装置 Rainbond
  2. 在开源利用商店搜寻 elasticsearch,点击装置即可一键装置;

  1. elasticsearch 默认启用了 xpack 平安模块来爱护咱们的集群,所以咱们须要一个初始化的明码。咱们进入 elasticsearch Web终端执行如下所示的命令,Web终端内运行 bin/elasticsearch-setup-passwords 命令来生成默认的用户名和明码:
bin/elasticsearch-setup-passwords 参数auto 主动生成interactive 手动填写
  1. 进入 Kibana 组件的环境变量中,批改默认连贯 elasticsearch的环境变量 ELASTICSEARCH_PASSWORD

收集利用日志

应用 Nginx 作为本文的演示利用,在Rainbond上应用镜像创立组件,

  • 镜像地址:nginx:latest
  • 挂载存储:/var/log/nginx,将Nginx日志长久化,Filebeat插件可读取到该日志文件。

制作 FileBeat 插件

在Rainbond团队界面点击插件后进入插件界面,点击新建插件,创立个别类型插件。

  • 镜像地址:docker.elastic.co/beats/filebeat:7.15.2
  • 其余自定义即可。

创立插件并构建,构建胜利后咱们在 Nginx组件的插件中开明 FileBeat 插件。

在Nginx组件的环境配置中,增加 FileBeat 配置文件 如下,更多配置可参考 官网文档

  • 配置文件挂载门路:/usr/share/filebeat/filebeat.yml
  • 配置文件权限:644
filebeat.inputs:- type: log  paths:    - /var/log/nginx/*.logoutput.elasticsearch:  hosts: '127.0.0.1:9200'  username: "elastic"  password: "elastic"

建设依赖关系

将 Nginx 与 elasticsearch 建设依赖关系,使其能通过 127.0.0.1地址与 elasticsearch 通信,更新Nginx组件使依赖失效。

拜访Kibana

Kibana默认已汉化
  1. 点击 Stack Management > 索引治理,可看到咱们的 filebeat 索引已存在。
  2. Stack Management > 索引模式,创立 filebeat 索引模式。
  3. Discover 页面即可看到日志信息。

总结

基于Rainbond的插件机制与 EFK 联合,使用户能够疾速的通过EFK收集利用日志进行剖析,并且可灵便的将插件 FileBeat 替换为 Logstash

除此之外,Rainbond的插件机制具备开放性,通过插件机制对利用治理性能进行扩大,例如网络治理类、数据备份类插件,在对原应用逻辑无侵入的状况下,可能通过网络治理类插件对服务的性能进行剖析,对接ELK等日志收集零碎;对于数据库等组件而言,应用备份插件对数据进行备份。

对于Rainbond

Rainbond 是一个开源的云原生利用治理平台,应用简略,不须要懂容器和Kubernetes,反对治理多个Kubernetes集群,提供企业级利用的全生命周期治理,性能包含利用开发环境、利用市场、微服务架构、利用继续交付、利用运维、利用级多云治理等。

Github:https://github.com/goodrain/r...

官网:https://www.rainbond.com

微信群:请搜寻增加群助手微信号 wylhzmyj

钉钉群:请搜寻钉钉群号 31096419