详解EFK搭建过程及ES的生命周期管理

运维 系统运维
今天主要介绍下EFK搭建过程及ES的生命周期管理,平台采用EFK(ElasticSearch-6.6.1 + FileBeat-6.6.2 + Kibana-6.6.1)架构。建议三个组件主次版本保持一致。

 概述

今天主要介绍下EFK搭建过程及ES的生命周期管理,平台采用EFK(ElasticSearch-6.6.1 + FileBeat-6.6.2 + Kibana-6.6.1)架构。建议三个组件主次版本保持一致。

[[280187]]

EFK概念

EFK采用集中式的日志管理架构

  • elasticsearch:一个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • kibana:可以为Logstash 、Beats和ElasticSearch提供友好的日志分析Web 界面,可以帮助汇总、分析和搜索重要数据日志。
  • filebeat:轻量级日志采集器。需要在每个应用服务器配置filebeat,来采集日志,并输出到elasticsearch

 

详解EFK搭建过程及ES的生命周期管理

 

一、ElasticSearch

#rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch 
#vi/etc/yum.repos.d/elasticsearch.repo 
===================================================== 
[elasticsearch-6.x] 
name=Elasticsearch repository for 6.x packages 
baseurl=https://artifacts.elastic.co/packages/6.x/yum 
gpgcheck=1 
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch 
enabled=1 
autorefresh=1 
type=rpm-md 
===================================================== 
# yum install elasticsearch 
# vim /etc/elasticsearch/elasticsearch.yml 
==================================================== 
network.host: 0.0.0.0 
==================================================== 
# service elasticsearch restart 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

二、Kibana

1、部署

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch 
# vim /etc/yum.repos.d/kibana.repo 
===================================================== 
snippet.bash 
[kibana-6.x] 
name=Elasticsearch repository for 6.x packages 
baseurl=https://artifacts.elastic.co/packages/6.x/yum 
gpgcheck=1 
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch 
enabled=1 
autorefresh=1 
type=rpm-md 
===================================================== 
# yum install kibana 
# vim /etc/kibana/kibana.yml 
===================================================== 
server.host: "kibana服务器ip" 
elasticsearch.hosts: ["http://ES服务器IP:9200"
#如果通过反向代理访问,则还需要添加如下配置。路径具体值视情况而定 
server.basePath: "/kibana" 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

2、下载汉化包并复制到指定目录

wget https://codeload.github.com/anbai-inc/Kibana_Hanization/zip/master 
unzip master 
cp -r Kibana_Hanization-master/translations/ /usr/share/kibana/src/legacy/core_plugins/kibana/ 
​ 
#修改语言配置 
#vim /etc/kibana/kibana.yml 
====================================== 
i18n.locale: "zh_CN" 
====================================== 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

3、重启服务

service kibana restart 
  • 1.

三、FileBeat

Filebeat隶属于Beats家族。目前Beats家族包含六种工具:

Packetbeat(搜集网络流量数据)

Metricbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)

Filebeat(搜集文件数据)

Winlogbeat(搜集 Windows 事件日志数据)

Auditbeat( 轻量型审计日志采集器)

Heartbeat(轻量级服务器健康采集器)

1、部署

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch 
# vim /etc/yum.repos.d/filebeat.repo 
================================================== 
snippet.bash 
[filebeat-6.x] 
name=Elasticsearch repository for 6.x packages 
baseurl=https://artifacts.elastic.co/packages/6.x/yum 
gpgcheck=1 
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch 
enabled=1 
autorefresh=1 
type=rpm-md 
================================================== 
# yum install filebeat 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

2、配置

/etc/filebeat/filebeat.yml

filebeat.inputs: 
  
# Each - is an input. Most options can be set at the input level, so 
# you can use different inputs for various configurations. 
# Below are the input specific configurations. 
  
- type: log 
  
 # Change to true to enable this input configuration. 
 enabled: true 
  
 # Paths that should be crawled and fetched. Glob based paths. 
 paths: 
 - d:/ams_logs/*.log 
 encoding: gbk 
  
# 输出配置 
output.elasticsearch: 
 # Array of hosts to connect to
 hosts: ["ES服务器IP:9200"
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

3、重启服务

service filebeat restart

效果图如下:

 

详解EFK搭建过程及ES的生命周期管理

 

四、ES生命周期管理

对于日志数据,由于单个索引的存储量的瓶颈,ES一般推荐使用时间作为后缀为同一份日志数据创建多个索引,而用户则通过一个定时器来定时删除过期的索引。ES在6.6之后,在x-pack中推出了索引生命周期管理相关的API来简化与增强类似日志数据索引的管理。该方案基于时间将索引数据分为四个阶段:Hot、Warm、Cold、Delete,对于这四种并给不同的数据阶段,ES也给出了不同的数据处理方式,最终实现日志的生命周期管理

1、策略配置

管理→Index Lifecycle Policies,Create Policy,

 

详解EFK搭建过程及ES的生命周期管理

 

2、日志生成

filebeat提供了两种日志生成方式。一般情况下,建议使用默认生成策略

2.1、默认生成策略

打开filebeat配置文件,添加如下内容。使用本方案所对应的策略配置名称,必须为 beats-default-policy

 

详解EFK搭建过程及ES的生命周期管理
output.elasticsearch: 
 hosts: ["ES服务器IP:9200"
 ilm.enabled: true 
 ilm.rollover_alias: "fsl.ams" 
 ilm.pattern: "{now/d}-000001"  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

2.2、高级生成策略

打开filebeat配置文件,添加如下内容。在6.6.1版本下,使用本方案前,请事先在es上创建合适的索引模板。否则其直接生成的索引将不会存在别名(疑似bug),最终造成无法使用生命周期策略。

output.elasticesarch: 
 hosts: ["ES服务器IP:9200"
 index: fsl.ams-%{+yyyy.MM.dd} 
setup.template.name"fsl.ams" 
setup.template.pattern: "fsl.ams-*" 
setup.template.settings.index.lifecycle.rollover_alias: "fsl.ams" 
setup.template.settings.index.lifecycle.name"beats-default-policy" 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

 

详解EFK搭建过程及ES的生命周期管理

 

责任编辑:武晓燕 来源: 今日头条
相关推荐

2012-04-28 13:23:12

Java生命周期

2012-06-20 10:29:16

敏捷开发

2021-07-19 05:52:29

网络生命周期网络框架

2024-01-08 22:08:48

Rust生命周期编程

2010-01-26 17:00:31

Android生命周期

2015-07-08 16:28:23

weak生命周期

2010-07-06 11:06:42

RationalJazz测试管理

2009-12-22 10:05:54

WCF编程生命周期

2022-04-19 07:20:24

软件开发安全生命周期SSDLC应用安全

2009-05-21 09:12:41

Java开发平台生命周期管理

2024-05-28 07:55:31

SpringBean用域

2010-05-17 22:06:41

数据安全电子文档鼎普科技

2012-12-04 10:02:03

2020-03-13 07:33:28

物联网生命周期管理IOT

2023-12-18 08:24:56

ViewModel数据操作Android

2021-09-03 07:27:38

AndroidGlide管理

2009-07-31 10:47:18

ASP.NET页面生命

2011-08-10 16:50:10

iPhone生命周期

2009-06-11 11:28:35

JSF生命周期

2010-07-14 10:48:37

Perl线程
点赞
收藏

51CTO技术栈公众号