elk架构[elk开源]

Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

最近有很多小伙伴咨询关于elk架构的问题,小编结合多年的经验整理出来一些elk开源对应的资料,分享给大家。

ELK是三个开源软件Elasticsercher、Logstash、Kibana的缩写,现在又增加一个 Beats 轻量级日志搜集工具用于在各种服务器上搜集日志后传给logstash。

ELK

logstash

elasticsearch

kibana

ELK技术栈要点总结

官方文档之安装教程

Mac第三方工具安装

$ brew install logstash

********启动命令********

$ bin/logstash -f logstash-example.conf

Logstash根据logstash-example.conf配置文件对数据源进行数据读取和清洗,并将清洗结果写入指定的目标文件。

logstash命令除了可以使用“-f”指定配置文件外,还可以指定其他参数,具体说明可以参见 官方文档之Command Flags 。

Logstash除了通过命令行参数进行配置外,还可以在logstash.yml等setting文件中进行设置,具体说明参见 官方文档之Setting files

配置文件

配置文件结构清晰,但所涉及的插件种类繁多,而且在插件使用过程中还涉及 环境变量使用 和 条件语句使用 等内容。用户可根据需要选择适当的插件和语法实现数据收集和清洗的目标。

##1.2 Elasticsearch****技术

****Cluster****与****Node****

****Index****、****Type****与****Document****

****Shards****与****Replicas****

********启动命令********

$ bin/elasticsearch 前端方式启动

$ bin/elasticsearch -d 守护进程方式启动

elasticsearch启动比较简单,也额外创建配置文件,它将收集的数据重新编排存储,以支持数据的全文检索。检索是Elasticsearch最为重要的功能,也是最为复杂的语法。

********需要注意的是:********elasticsearch不支持在root用户下启动,因此,在启动前,用户需要创建非root用户,并为该用户赋予elasticsearch目录的操作权限,详情参见

********配置管理********

Elasticsearch一般不需额外配置,但是为了提高Elasticsearch性能可以通过elasticsearch.yml文件修改配置参数。当然,也可以根据用户系统配置降低配置参数,如jvm.heapsize。Elasticsearch默认占用2G内存,对于系统配置较低的服务器,很可能带来负载过大的问题,因此需要适当减少jvm.heapsize。

Elasticsearch提供大量的API支持检索服务,用户甚至可以根据需要定制化 分析器 、 映射器 .

##1.3 Kibana****技术

********安装********

参见 官方教程 ,值得注意的是Kibana与Elasticsearch版本要保持一致。

********启动********

********配置********

Kibana配置可以通过命令行参数或配置文件 kibana.yml 。Kibana应用的默认地址为localhost,无法从远程访问Kibana,因此,用户需要修改配置文件的server.host属性。

********数据检索********

(1)时间筛选:限定检索的时间范围

(2)index pattern:限定检索的数据范围

(3)字段筛选:限定特殊字段以及特殊字段值

(4)搜索框:采用Elasticsearch检索语法查询

********数据分析********

数据分析是Elasticsearch与Kibana的核心模块,Elasticsearch提供分析功能,kibana提供图形渲染功能。

数据分析需要涉及Elasticsearch的 Aggregation 、 Mapping 、 Analysis 和Kibana的 Visualize 和 Dashboard 等模块,内容相对比较复杂,用户可根据实际需要适当选择。

Kibana的Visualize是基于Elasticsearch聚合结果进行图形化展示,支持AreaChart、DataTable、PieChart等图表结构。Dashboard则是将多个visualize综合展示,并配注markdown记录,形成完整的数据分析报告。

#2 ****日志分析系统

##2.1 ****基于阿里云****NAS****的日志分析系统架构设计

********日志生成:********对于Java和Node应用,分别采用Logback与winston日志框架生成日志,注意,日志采用json格式单行存储(一行json对应一条日志)

********日志存储:********分布式应用的日志采用NAS统一存储,减少因日志分散保存而带来数据收集的高复杂度。

********日志收集与清洗:********基于Logback的Pipeline功能,从NAS读取日志数据,并通过 filter插件进行日志的格式化清洗,并将清洗结果传送到Elasticsearch。

********日志重排与存储:********Elasticsearch将收集的数据进行重排,以支持符合elasticsearch检索语法。并将重排数据予以保存,同事可以通过集群、分片(Shards、Replicas)等进行冗余存储。

********日志分析与检索:********通过Elasticsearch Search API即可检索与分析数据,但基于命令行的分析可视化不够,借助Kibana可以将日志分析与检索采用图形化、列表化的方式予以展现,提高数据的可读性。

##2.2 ****日志收集

********(****1****)**** Input****部分********

采用file插件收集NAS日志收据,path指定日志存放地址,采用通配符指定多个文件。

为了便于日志的Archive,以及标识产生日志的应用容器,日志文件采用“log+hostname”方式命名,因此,同一类日志可能会存在多个日志文件。

start_position指定从日志文件Start位置开始收集,file插件默认从End位置收集,只会收集Logstash启动后生成的日志。

type标识日志类型,对于微服务应用,我们借助type区分应用类型,以方便日后检索与问题定位。

********(****2****)**** Filter****部分********

filter的配置需要根据日志格式和清洗目标按需定制,在我们的项目中,日志采用json格式,其中message key对应的value又是json对象的字符串,因此在提取json key-value时需要做两次json过滤。

Logstash默认每条日志为message key的value,因此第一个json是对一条完整日志进行筛选,将json转换为一个个键值对。转换后,并不能将日志message字段对应的json对象拆分提取,因此需要再使用json插件过滤。由于完整日志对应的message key与日志内message key,二次使用json时Logstash会认为对完整日志进行过滤,为此需要对 message进行重命名,这时采用mutate插件完成。

********注意:********filter插件比较多,也比较复杂,用户可以根据自己需要按需选择。

##2.3 ****日志分析(检索)

(1)时间范围:按照日、周、月、年度分别统计分析

(2)应用比较:各类应用的使用频繁程度比较,结合监控数据判断每类应用耗用资源情况等

(3)API分析:各类请求接口的使用情况分析,哪类API使用频繁,各API的响应时间如何

首字母为该管理系统三个主要软件:Elasticsearch、Logstash、Kibana。这三个并非该管理系统的全部组成,而且还可以添加Redis,kafka,filebeat等软件

它们各自的功能大概可以这样概述:E:实时分析、实时检索、海量存储,建立索引,以便日后快速查看、搜索、分析

L:数据流传输、日志结构化

K:分析统计、酷炫图表

传统的日志架构存在的以下若干缺点:

开发人员无权登录,经过运维周转费时费力

日志数据分散在多个系统,难以查找

日志数据量大,查询速度慢

一个调用会涉及多个系统,难以在这些系统的日志中快速定位数据

数据不够实时

因此,需要日志分析产品,美国有Splunk,中国有日志易。也有更多的企业在使用开源产品,也就是题主说到的ELK。

ELK-bledom

1、

这是最简单的一种ELK架构方式。优点是搭建简单,易于上手。缺点是Logstash耗资源较大,运行占用CPU和内存高。另外没有消息队列缓存,存在数据丢失隐患。

此架构由Logstash分布于各个节点上搜集相关日志、数据,并经过分析、过滤后发送给远端服务器上的Elasticsearch进行存储。Elasticsearch将数据以分片的形式压缩存储并提供多种API供用户查询,操作。用户亦可以更直观的通过配置Kibana Web方便的对日志查询,并根据数据生成报表。

2、

此种架构引入了消息队列机制,位于各个节点上的Logstash Agent先将数据/日志传递给Kafka(或者Redis),并将队列中消息或数据间接传递给Logstash,Logstash过滤、分析后将数据传递给Elasticsearch存储。最后由Kibana将日志和数据呈现给用户。因为引入了Kafka(或者Redis),所以即使远端Logstash server因故障停止运行,数据将会先被存储下来,从而避免数据丢失。

ELK并不是一个具体的英文单词,而是Elasticsearch + Logstash + Kibana这三个工具的集合,,这三个工具组合在一起形成了一套实用、易用的监控架构,很多公司利用它来搭建可视化的海量日志分析平台。

关于elk架构和elk开源的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

elk架构[elk开源]文档下载: PDF DOC TXT
文章来源: 肖肖
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至2384272385@qq.com举报,一经查实,本站将立刻删除。