收藏 分销(赏)

Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台).pdf

上传人:Stan****Shan 文档编号:1240422 上传时间:2024-04-19 格式:PDF 页数:110 大小:8.66MB 下载积分:25 金币
下载 相关 举报
Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台).pdf_第1页
第1页 / 共110页
Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台).pdf_第2页
第2页 / 共110页


点击查看更多>>
资源描述
卷首语Elasticsearch 全观测的核心是指把日志、指标、APM 甚至 Uptime 数据汇总到一个平台上,让运维人员、开发人员,甚至业务人员都可以在统一的大数据平台之上,对所有的数据从统一的视角进行观察,告警,以及可视化。本书从介绍 Elasticsearch、全观测技术原理、行业应用到技术实践,全面系统地解读在大数据背景下,运维人员、开发人员等应用全观测技术的价值和实践上手指南。目录走进阿里云 Elasticsearch4全观测技术原理与技术生态15全观测能力呈现与应用价值26ES 全观测性行业应用37使用SkyWalking和Elasticsearch实现全链路监控使用Filebeat+Kafka+Logstash+Elasticsearch构建日志分析系统56基于Elasticsearch+Flink的日志全观测最佳实践67APM 应用性能监控分析最佳实践75通过Elastic实现Kubernetes容器全观测8549基础介绍篇应用实践篇摘要:本文对 Elasticsearch 进行了整体介绍,包括 Elasticsearch 生态矩阵的构成,它所具备的低成本和强功能等特性,以及与搭建开源 ES 服务相比阿里云 Elasticsearch 所具备的优势。此外,还对 Elasticsearch 全观测产品能力、架构、技术难点和实践案例进行了分享。希望通过本文,大家能对 Elasticsearch 和全观测有更全面的认识。走进阿里云 Elasticsearch走进阿里云 ElasticsearchElasticsearch 开源受到广大开发者的使用和接受并不只是基于 Elasticsearch 这一个检索引擎,除了 Elasticsearch 之外,它还包括 Beats,Logstash,Kibana 这一套生态矩阵。它是构建于 Apache Lucene 搜索引擎库之上的分布式全文搜索和分析引擎,提供搜集、分析、存储数据三方面能力。通过 Beats 这个轻量级数据采集工具,数据能进入 Elasticsearch 系统。它集合了多种单一用途数据采集器,它们从成百上千或成千上万台机器和系统向下游发送数据。而在这套生态矩阵中,Beats 的下游就是 Logstash。Logstash 作为收集、过滤、传输数据的工具,能针对各种各样的日志数据做一些预处理和过滤。数据经过采集和处理,最后到Elasticsearch 这样一个检索系统中进行存储,然后我们可利用 Kibana 去做业务上的可视化报表和大盘分析的搭建。从 Beats,Logstash,Elasticsearch 到 Kibana 的这套开源生态矩阵,能帮用户解决各种各样的场景问题。目前阿里云上已提供了一个全托管的服务,用户不必再购买服务器和进行搭建,在阿里云上就可以直接一键开通整套服务。一一、那么阿里云在这套生态矩阵中做了一些什么事?它又有哪些那么阿里云在这套生态矩阵中做了一些什么事?它又有哪些特性和优势?特性和优势?在开源生态下,Elasticsearch 有一套 X-Pack 商业插件,它包含数据权限、可视化、机器学习等能力,价值达到 6000 美元,而在阿里云上创建 Elasticsearch 服务,则可自动免费开启 X-pack 插件。走进阿里云 Elasticsearch走进阿里云 Elasticsearch目前,阿里云上有 30 多个行业上千位客户在使用我们的服务。在公共云的环境下,我们不仅能覆盖国内大部分地区和海外的一些数据中心,还能支持一些本地化的专有云的交付和提供混合云的方案,使不同行业的用户都能够很好地去使用我们这套服务。二、二、与搭建开源与搭建开源 ESES 服务相比,阿里云服务相比,阿里云 ElasticsearchElasticsearch 的优势的优势在哪里?在哪里?下面这张图我们整理了 Elasticsearch 与搭建开源 ES 服务的对比,在各个业务场景下,Elasticsearch 带来了全方位的能力提升与性能优化。包括云上的全套托管、超低的运维成本、降低大数据量的存储成本、一键搭建集群、集群平滑扩缩、向量检索、QoS 索引级别限流等等尤其在安全性和高可用方面,大家搭建开源 ES 服务的时候没有那么多精力去做安全特性的补充,所以我们做了一些 HTTP 的传输加密和内网环境管控等。同时,我们的数据可靠性和服务可靠性都达到几乎满分,能尽可能地保证客户在实现业务的时候不受到不稳定因素的影响。三、三、什么是全观测?什么是全观测?ElasticsearchElasticsearch 全观测能力如何全观测能力如何?我们对全观测概念的理解,是将日志、指标、APM 等数据在一个平台进行统一分析,而这样的能力正是 ELK,也就是 Elasticsearch 全观测解决方案所能提供的,它能帮助用户在ELK 平台上建立统一的可视化视图。另外,通过全链路问题的追踪,还能设置统一的监控走进阿里云 Elasticsearch走进阿里云 Elasticsearch我们可以通过下面的架构图看到 ELK 在运维监控全链路上的能力。通过 Packetbeat 对网关的数据做收集,通过 Metricbeat 对业务服务器上的指标进行收集,通过 Filebeat 做日志相关的收集,以及利用 APM 的 agent 对用户实时行为做链路追踪。通过对各种数据来源进行采集,我们会将其下发到 Kafka 组件,随后通过 Logstash 进行格式转化和结构处理,最后将数据传输到整个 Elasticsearch 集群里面,并基于上层的可视化组件搭建可视化的大屏。除此之外,我们还能去接入非常完备的一套告警配置和告警对接,因为对数据进行实时链路追踪的同时,也需要我们对异常进行捕捉和判断,并通过短信网关等方式将这些判断及时返回给系统负责人,实现告警对接。走进阿里云 Elasticsearch走进阿里云 Elasticsearch四、四、什么时候用日志增强版?什么时候用日志增强版?当日志量达到 TB 级的时候,我们就建议使用日志增强版。此外,在增量日志并发高的时候,其峰值写入能达到 10W docs/s,并且会自动帮用户进行副本存储,保证数据不会丢失。五、五、ElasticsearchElasticsearch 能给客户提供什么样的场景化解决方案?能给客户提供什么样的场景化解决方案?有一些行业对全观测有特别的需求,比如游戏和教育行业。走进阿里云 Elasticsearch走进阿里云 Elasticsearch5.专家级服务。云上我们有很多开发 Elasticsearch 和运维大规模集群的专家,能针对用户的实际使用场景进行解决方案和架构的优化,解决技术难点。八、八、用户案例:用户案例:基于基于日志的业务数据监控日志的业务数据监控不只是教育行业,在很多场景下,我们能搭建这样一套业务的监控看板,对各类业务数据进行监控,比如入侵监测、流量监测、交易额监测等。走进阿里云 Elasticsearch全观测技术原理与技术生态全观测技术原理与技术生态在谈全观测之前,我们先谈谈可观测。在谈全观测之前,我们先谈谈可观测。构建可观测性有 4 个步骤。第 0 阶,我们会构建检查各个系统健康状况的检查机制。之后,我们会搭建采集系统各种性能的指标。然后,搭建集中化的日志平台,把所有系统的日志进行汇总并做一定程度的关联,帮助解决问题。最后,是涉及到应用的分布式性能的追踪,它要求更高,往往能从代码层面、API 层面直接度量性能的各方面指标。观看视频:https:/ APM 系统进行排查,找到线索并进行剖析,甚至找出服务间的依赖关系。因此从可观测性的角度讲,我们要探查的内容要远大于监控范畴,且获得的信号总量也层层递增,数据量越来越大。全观测技术原理与技术生态全观测技术原理与技术生态第二是指标,我们能在指标里观察些什么?第二是指标,我们能在指标里观察些什么?在建指标系统的时候我们会收集这几类指标。第一是最基础的系统指标,包含 CPU、网络、磁盘等,这些性能指标至关重要;系统层之上是应用级别的指标,我们在做应用开发的时候要有意识地暴露很多指标,否则就不太好观测。这里面包含出错率、延迟、饱和度等应用的性能指标。它的暴露方式也可以用API 的形式来调用,让外围系统轮巡,但更常用的是通过日志的方式去打指标。比如在交易系统中,我们会把与这笔交易相关的原数据打到日志中,然后能通过日志分析了解系统的健康度。另外,现在流行的做法是打成像 Json 这样的结构化日志,这对后续的日志处理有很大帮助;再上面,是业务性的指标,它会涉及到很多 BI 的分析,比如处理的订单的数量、营业额等。如果有业务指标的暴露,就可以反映系统支撑的各种业务量数据,这对运营人员比较重要。如何从指标获得观测性?有哪些方式?如何从指标获得观测性?有哪些方式?当前,像 Prometheus 这种系统应用得比较多,它的原理就是 Prometheus 提供的agent 从各个采集点采集结构化数据,写入 Prometheus 数据库,然后基于一些开源的工具进行指标的可视化展现。从告警的角度,它也可以写一些告警的规则,通过 webhook等对外告警。这是做指标系统比较常用的一套堆栈。全观测技术原理与技术生态全观测技术原理与技术生态第四,分布式追踪。如何从分布式的调用中获得可观测性?第四,分布式追踪。如何从分布式的调用中获得可观测性?APM 是从微观的代码层面捕获各种数据,所以它获得观测性的关键就在于安装 APM 探针。它能从每个代码块的层面帮我们度量每一步花费的时间、捕获报错等等。比如能把一笔事务处理的链路追踪到每个系统中,把它串联成一个瀑布图呈现给大家。这对开发人员去追踪问题,运维人员去定位问题都是非常重要。说完如何获得可观测性,下面讲讲如何去建设。说完如何获得可观测性,下面讲讲如何去建设。前两个 level 比较简单,比如做日志,把日志集中化归档到文件服务器上就算做完了。当我们上了 ELK,把日志集中化之后,我们就能很轻易地在日志中做检索,达到检索级。全观测技术原理与技术生态全观测技术原理与技术生态以上,我们谈了怎么可观测,以及如何去建设,下面谈谈全观测。全观测其实是对传统运维的改进。全观测其实是对传统运维的改进。像上面所讲,传统运维是一步步进行搭建的,每一步都会出一个开源或商业产品,这会导致产品间出现数据孤岛的状况,非常割裂;第二是有各种厂商的工具,导致很难做自动化统一分析,甚至它们的 API 都不一样,严重制约了我们构建各方面观察的自动化平台;第三,每个方面只能提供一方面的观察,而故障往往是立体的,可能要多方面观察才能定位到具体的故障;最后,很多系统只是做了收集,没有真正进行分析,没有发挥出大数据的价值,也没有改进运维质量。全观测技术原理与技术生态全观测技术原理与技术生态现在很多厂商也在想打通数据,比如日志厂商想融合指标和 APM,APM 厂商想把日志和指标融合进来。但这是否容易实现呢?实际上有几个难点。三、三、实现全观测有哪些的难点?实现全观测有哪些的难点?首先最大的难点在数据量。日志、指标这些数据量都很大,这就需要一个分布式的系统去做。另外因为因为要检测很多东西,所有要有数据的关联,进行多维度的分析。这个地方的要求更高,不仅要能够动态地生成字段,所有的列要能够索引,而且要能够灵活地写各种各样的查询。所以,很多厂商会选择 Elasticsearch 作为底层数据引擎,因为 Elasticsearch 本身是分布式的,能够容纳海量的数据。第二个,它也有大量的多维分析的灵活度存在。同时,它还能进行智能化的检测。全观测技术原理与技术生态全观测技术原理与技术生态现在我们讲究集成到一个平台上,这样日志、指标和 APM 就可以进行分析的联动和跳跃,而 Kibana 现在就能做到在一个平台纳入分析这三方面的数据,并且进行数据的跳跃和联动。最后,是全观测的主要流程。它包含数据采集阶段、数据处理、数据搜索存储和可视化几个步骤。在数据采集层,我们能用上面的各种工具对日志、指标、APM 进行采集,然后将其汇聚到Kafka;在数据处理层,用相应的数据处理工具从 Kafka 进行消费;随后,数据经过各种各样的处理,流入到数据存储层,在 Elasticsearch 里对数据进行索引;最后,可以通过Kibana 或第三方工具进行可视化展现。不过,可视化只是帮助我们进行人工监控,如果要做到自动化,就一定要安装各种各样的规则,能够进行基于规则的和基于机器学习的监控和告警。以上就是全观测的基本原理和能够用到的一些工具,欢迎大家继续关注我们后续的课程。摘要:本文承接全观测技术原理与技术生态,介绍 Elastic 整套工具带来的能力,以及用 demo 展示怎么用这些能力构建全方位的观测性。全观测能力呈现与应用价值全观测能力呈现与应用价值一、一、ElasticElastic StackStack 提供的数据采集全套工具提供的数据采集全套工具我们有丰富的 beat,比如采集日志文件的 Filebeat,有 30 多插件,能做到一定程度的开箱即用;Metricbeat 采集指标和底层的性能数据,有 40 多个插件;Packetbeat 从网络包层面采集数据;Functionbeat 主要对接在云端吐出来的指标日子;Winlogbeat 主要适配 Windows 上的日志系统;Heartbeat 主要检测服务的可用性,比如检测 API 是否在线等;最后,Auditbeat 可以连到 Linux 的 audit framework 来采集 Linux 各种各样的事件,汇总到 Elasticsearch。除此之外,我们的社区也制造了很多 beat,大家可以去看看。二、二、数据处理工具数据处理工具数据处理工具提供的是 Logstash,它分为输入、过滤和输出三个部分。它并不是独属于Elasticsearch 数据输入和输出的工具,它有很多数据接入源,比如 syslog、redis 等,输出也可以到 Kafka、Elasticsearch 和其他数据库,而它的过滤部分主要体现在数据的加工和处理,比如用 grok 进行正则抽取。Logstash 能很容易地把像日志一样的流式文本抽取成 Json 的结构化数据,进而给后面的 Elasticsearch 进行存储和索引。全观测能力呈现与应用价值全观测能力呈现与应用价值四、四、告警系统告警系统全观测需要持续部署大量的监控规则,来自动化地进行监控和告警。我们在 Kibana 里植入了新的告警系统,它能跟上层的各种 APP 和解决方案进行无缝整合,大幅简化使用门槛。除了基于规则的告警,Elastic Stack 还提供了机器学习的异常检测。Elasticsearch 中存在大量的指标数据,它们随时间序列的波动是非常常见的,但当指标数量越来越多,就很难用传统的方式一个一个地设置规则。所以我们利用机器学习,通过对历史数据的建模去学习正常的波动范围,不再需要人工来标注数据。同时,模型也会根据数据的持续写入来不停地更新,以反映最新的指标状态。全观测能力呈现与应用价值全观测能力呈现与应用价值再看另外一个较复杂的实例。下图呈现了当前常见的微服务架构,它所有的服务都部署在 K8s 容器化的环境中。在前端,它全部基于 Nodejs 提供 Web 服务,而核心业务是基于 Spring 框架的 Java 服务,并连接到后端 MySQL 数据库,同时它还有基于 Python Flash 提供地址查询的 RestAPI 服务,通过连接 Elasticsearch 服务器实现全文搜索的功能。那么我们如何用上面的工具对这一架构进行监测呢?首先我们采用 Filebeat 去采集每一个 Pod 的日志,把它们汇总到 Elasticsearch 里,然后通过 Metricbeat 采集系统的性能数据,以及把 Packetbeat 安装在某些 Pod 中采集网络包数据,最后是用 APM 探针植入到 Nodejs、Java 代码和 Python 中监控代码层面的各种性能、响应、延迟等数据。通过这些,我们就能把日志、指标、APM 数据汇总到一起,统一地进行观测。同时,由于数据量很大,所以也将使用机器学习来对里面的性能指标进行自动化的监控和告警。全观测能力呈现与应用价值全观测能力呈现与应用价值下面我们更具体地来看定位故障的每一步流程。八、八、机器学习告警机器学习告警我们能在机器学习告警页面看到很多机器学习的任务,他们能够进行告警对齐。另外,机器学习根据 API 响应时间的历史情况自动建模,当监控值超过动态阈值就触发告警,并且可以指出是哪个 API 性能下降。这旁边还有 action,能引导我们到其他应用中做分析,比如跳转到 APM、仪表板、指标、Uptime 等来诊断这个故障。九、九、A APMPM 性能分析性能分析在 APM 层面,我们不仅能看到总体性能统计概览,还能根据各个 API 性能影响的情况进行倒排。全观测能力呈现与应用价值全观测能力呈现与应用价值十、十、仪表板综合分析仪表板综合分析在仪表板中也是一样,会把故障的时间点定位到最当中,然后可以参照前后性能状况来综合判断故障的状况。这个仪表板是完全可定制化的,所以可以把各种分析图都放在里面,包括日志、指标、APM 等。十一、十一、指标关联日志指标关联日志 A APMPM在专门的性能指标应用中,我们能从主机、K8s、docker 等的角度观看所有性能的切片。这里面也体现了联动的精髓,比如当我们点击某一个 pod,就可以单独看到这个 pod 串联的日志、指标、APM、Uptime 数据,这样就方便我们灵活地进行跳转,更快地定位问题。全观测能力呈现与应用价值ES 全观测性行业应用ES 全观测性行业应用一、什么是全观测性一、什么是全观测性全观测性简单讲就是“监控”、“一体化的监控”。它包括几个方面:一方面叫日志数据,就是文本,第二方面包括一些指标数据,第三方面就是这套产品必须有告警通知。日志数据日志数据工作开发中日志是免不了的,它一般包含几个重要信息,比如发生时间、发生模块和详细信息等。观看视频:https:/ 全观测性行业应用ES 全观测性行业应用二、二、为什么是为什么是 E Elasticlastic StackStack?Elastic Stack 技术栈分由 4 个产品栈组成,包括做 UI 展示的 Kibana,负责数据存储、查询、计算、聚合的 Elasticsearch,负责数据采集的 Beats,以及 ETL 轻量级工具Logstash。KiKibanabanaKibana 能把所有的日志数据集中起来,在一个界面上就能搜索和查看。同时在这里我们可以看到,不管是日志还是指标,它们展示出来都一样。ES 全观测性行业应用ES 全观测性行业应用BeatsBeatsBeats 主要用于数据采集,非常轻量级,包括 Auditbeat、Metricbeat、Filebeat、Packetbeat、Heartbeat 和 Winlogbeat 几种。为了和 Logstash 做职责区分,Beats就主要做日志数据采集,但如果遇到一些数据需要做自定义转换,就需要把采集完的数据先传到 Logstash 里进行一些处理再写到 ES 里。F FilebeatilebeatFilebeat 专门采集文本日志,比如服务器和应用上的文本 log。另外,Filebeat 已经写好了规则,非常方便。比如如果要抓取 ES 的日志,它里面直接有一个 ES 的模块,日志格式都帮忙解析完成了,只需要配一个日志路径就能完成采集。所以 Beats 家族更加“傻瓜化”,把 Logstash 的可编程性都替代掉了,直接做成最终落地。ES 全观测性行业应用ES 全观测性行业应用合,因为网络地址是一个字符串,而流量又是指标,所以我们说全观测,不外乎就是这两种数据,而如果再抽象一点,最终只有文本数据。HHeartbeateartbeatHeartbeat 负责监控应用的心跳。比如 Java 开发现在最流行的用微服务,虽然微服务里面可以监控应用的上线下线,但是它并不是很全面,仅仅只能监控自己的微服务。如果要监控别的,比如一套大型的分布式系统,就需要在 Heartbeat 里面配置。A APMPMES 全观测性行业应用ES 全观测性行业应用L LogstashogstashLogstash 以前是日志采集的工具,基本上已知的所有数据它都支持,数据库、文本、日志、网络都可以采集进来,然后经过它的中间转换传输到 ES 中去。但是现在我们把它定位成数据的 ETL,比如前端 Beats 采集完数据后放到 Kafka,而数据到 ES 里面又需要Logstash 来抽取,所以它相当于一个典型的 ETL。以上就是我们对为什么选择 Elastic Stack 的解释,因为我们全观测性监控需要一体化,需要这么多数据的采集展示,而目前只有 ES 一家做的比较全。接下来我们介绍一下全观测的应用场景,一些案例。ES 全观测性行业应用ES 全观测性行业应用布式开发,要写一堆分布式任务调度,调度任务为了做到高可用就要部署多个高实例,这就要每一时刻只能有一个程序在运行。这里面会用到 Zookeeper 来做 Leader 选取协调,用它把中间件做一个监控,因为任何时候出了故障可能就意味着你的服务程序会失败,运营出错。再一个就是 Kafka。我们前面讲到微服务调用,几百个微服务有那么多数据采集,数据量是非常大的,所以会引入 Kafka 承担信息缓冲,它非常重要,所以我们也会对它进行完整的链路监控。ES 全观测性行业应用使用 SkyWalking 和 Elasticsearch 实现全链路监控使用 SkyWalking 和 Elasticsearch 实现全链路监控背景信息背景信息SkyWalking 具有以下特性:全自动探针监控,不需要修改应用程序代码。手动探针监控,提供了支持 OpenTracing 标准的 SDK。覆盖范围扩大到 OpenTracing-Java 支持的组件。说明:说明:OpenTracing 支持的组件请参见 OpenTracing Registry。自动监控和手动监控可以同时使用,使用手动监控弥补自动监控不支持的组件,甚至私有化组件。纯 Java 后端分析程序,提供 RESTful 服务,可为其他语言探针提供分析能力。高性能纯流式分析。SkyWalking 的架构图如下。使用 SkyWalking 和 Elasticsearch 实现全链路监控使用 SkyWalking 和 Elasticsearch 实现全链路监控操作流程操作流程1.步骤一:下载并安装 SkyWalking2.步骤二:配置 SkyWalking 与 Elasticsearch 连通3.步骤三:验证结果步骤一:下载并安装步骤一:下载并安装 SkyWalkingSkyWalking1.在 Linux 服务器中,下载 SkyWalking。建议选择最新的 7.0.0 版本。由于本文使用的是 Elasticsearch 7.4.0 版本,因此选择 Binary Distribution for ElasticSearch 7 二进制包。下载命令如下。wget https:/archive.apache.org/dist/skywalking/7.0.0/apache-skywalking-apm-es7-7.0.0.tar.gz2.解压。tar-zxvf apache-skywalking-apm-es7-7.0.0.tar.gz3.查看解压后的文件。ll apache-skywalking-apm-bin-es7/返回结果如下。total 92drwxrwxr-x 8 1001 1002143 Mar 18 23:50 agentdrwxr-xr-x 2 root root241 Apr 10 16:03 bindrwxr-xr-x 2 root root221 Apr 10 16:03 config-rwxrwxr-x 1 1001 1002 29791 Mar 18 23:37 LICENSEdrwxrwxr-x 3 1001 10024096 Apr 10 16:03 licenses-rwxrwxr-x 1 1001 1002 32838 Mar 18 23:37 NOTICE使用 SkyWalking 和 Elasticsearch 实现全链路监控使用 SkyWalking 和 Elasticsearch 实现全链路监控说明说明:SkyWalking 服务默认使用 H2 存储,不具有持久存储的特性,所以需要将存储组件修改为 elasticsearch。参数说明selector存储选择器。本文设置为 elasticsearch7。nameSpace命名空间。Elasticsearch 实例中,所有索引的命名会使用此参数值作为前缀。clusterNodes指定 Elasticsearch 实例的访问地址。由于实例与 SkyWalking 不在同一专有网络 VPC(Virtual Private Cloud)下,因此要使用公网访问地址,获取方式请参见查看实例的基本信息。userElasticsearch 实例的访问用户名,默认为 elastic。password对应用户的密码。elastic 用户的密码在创建实例时指定,如果忘记可重置。重置密码的注意事项和操作步骤,请参见重置实例访问密码。注意注意:配置中仅指定用户名和密码即可,请注释 trustStorePath 和 trustStorePass,否则会报错 NoSuchFileException:./es_keystore.jks。3.可选:可选:修改监听的 IP 地址或端口号。SkyWalking 默认使用 12800 作为 Rest API 通信端口,11800 为 gRPC API 端口,可在 application.yml 文件的 core 中修改,本文使用默认配置。core:selector:$SW_CORE:defaultdefault:#Mixed:Receive agent data,Level 1 aggregate,Level 2 aggregate#Receiver:Receive agent data,Level 1 aggregate#Aggregator:Level 2 aggregaterole:$SW_CORE_ROLE:Mixed#Mixed/Receiver/AggregatorrestHost:$SW_CORE_REST_HOST:0.0.0.0使用 SkyWalking 和 Elasticsearch 实现全链路监控使用 SkyWalking 和 Elasticsearch 实现全链路监控2.在浏览器中,访问 http:/Linuxhttp:/:8080/:8080/。说明说明:初次使用 SkyWalking 连接 Elasticsearch 服务,启动会比较慢。因为 SkyWalking 需要向 Elasticsearch 服务创建大量的 index,所以在未创建完成之前,访问这个页面会显示空白。此时您可以通过查看日志来判断启动是否完成,日志路径为logs/skywalking-oap-server.log。3.参见登录 Kibana 控制台,登录对应 Elasticsearch 实例的 Kibana 控制台,执行 GET _cat/indices?v 命令查看索引数据。根据返回结果,可以看到 Elasticsearch 实例中包含了大量以 skywalking-index 开头的索引。摘要:随着时间的积累,日志数据会越来越多,当您需要查看并分析庞杂的日志数据时,可 通 过 Filebeat+Kafka+Logstash+Elasticsearch 采 集 日 志 数 据 到 阿 里 云Elasticsearch(简称 ES)中,并通过 Kibana 进行可视化展示与分析。本文介绍具体的实现方法。使用 Filebeat+Kafka+Logstash+Elasticsearch 构建日志分析系统使用 Filebeat+Kafka+Logstash+Elasticsearch 构建日志分析系统2.步骤一:配置 Filebeat配置 Filebeat 的 input 为系统日志,output 为 Kafka,将日志数据采集到 Kafka 的指定 Topic 中。3.步骤二:配置 Logstash 管道配置 Logstash 管道的 input 为 Kafka,output 为阿里云 ES,使用 Logstash 消费Topic 中的数据并传输到阿里云 ES 中。4.步骤三:查看日志消费状态在消息队列 Kafka 中查看日志数据的消费的状态,验证日志数据是否采集成功。5.步骤四:通过 Kibana 过滤日志数据在 Kibana 控制台的 Discover 页面,通过 Filter 过滤出 Kafka 相关的日志。准备工作准备工作1.创建阿里云 ES 实例,并开启实例的自动创建索引功能。具体操作步骤请参见创建阿里云 Elasticsearch 实例和配置 YML 参数,本文以 6.7版本为例。2.创建阿里云 Logstash 实例。要求该实例与阿里云 ES 实例的版本相同,并且在同一专有网络 VPC(Virtual Private Cloud)下。具体操作步骤请参见创建阿里云 Logstash 实例。3.购买并部署阿里云消息队列 Kafka 版实例、创建 Topic 和 Consumer Group。本文使用 VPC 实例,并要求该实例与阿里云 ES 实例在同一 VPC 下,具体操作步骤请参见 VPC 接入。创建 Topic 和 Consumer Group 的具体步骤请参见步骤三:创建资源。4.创建阿里云 ECS 实例,并且该 ECS 实例与阿里云 ES 实例和 Logstash 实例处于同一 VPC 下。具体操作步骤请参见使用向导创建实例。使用 Filebeat+Kafka+Logstash+Elasticsearch 构建日志分析系统使用 Filebeat+Kafka+Logstash+Elasticsearch 构建日志分析系统参数说明type输入类型。设置为 log,表示输入源为日志。enabled设置配置是否生效。true 表示生效,false 表示不生效。paths需要监控的日志文件的路径。多个日志可在当前路径下另起一行写入日志文件路径。hosts消息队列 Kafka 实例的接入点,可在实例详情页面获取,详情请参见查看接入点。由于本文使用的是 VPC 实例,因此使用默认接入点。topic日志输出到消息队列 Kafka 的 Topic,请指定为您已创建的 Topic。versionKafka 的版本,可在消息队列 Kafka 的实例详情页面获取。注意:不配置此参数会报错。3.启动 Filebeat。./filebeat-e-c filebeat.kafka.yml步骤二:配置步骤二:配置 LogstashLogstash 管道管道1.登录阿里云 Elasticsearch 控制台。2.进入目标实例。i 在顶部菜单栏处,选择地域。ii 在左侧导航栏,单击 LogstashLogstash 实例实例,然后在 Logstash 实例中单击目标实例 ID。3.在左侧导航栏,单击管道管理管道管理。4.在管道列表管道列表区域,单击创建管道创建管道。使用 Filebeat+Kafka+Logstash+Elasticsearch 构建日志分析系统 172.*.*.92:9092,172.16.*.*:9092,172.16.*.*:9092group_id=es-testtopics=estestcodec=jsonfilter output elasticsearch hosts=http:/es-cn-n6w1o1x0w001c*:9200user=elasticpassword=index=kafka%+YYYY.MM.dd61使用 Filebeat+Kafka+Logstash+Elasticsearch 构建日志分析系统表 1.input 参数说明参数说明bootstrap_servers消息队列 Kafka 实例的接入点,可在实例详情页面获取,详情请参见查看接入点。由于本文使用的是 VPC 实例,因此使用默认接入点。group_id指定为您已创建的 Consumer Group 的名称。topics指定为您已创建的 Topic 的名称,需要与 Filebeat 中配置的 Topic 名称保持一致。codec设置为 json,表示解析 JSON 格式的字段,便于在 Kibana 中分析。表 2.output 参数说明参数说明hosts阿里云 ES 的访问地址,取值为 http:/:9200。说明:您可在阿里云 ES 实例的基本信息页面获取其内网地址,详情请参见查看实例的基本信息。user访问阿里云 ES 的用户名,默认为 elastic。您也可以使用自建用户,详情请参见 For more information,see 通过 Elasticsearch X-Pack 角色管理实现用户权限管控。password访问阿里云 ES 的密码,在创建实例时设置。如果忘记密码,可进行重置,重置密码的注意事项及操作步骤请参见重置实例访问密码。index索引名称。设置为 kafka%+YYYY.MM.dd表示索引名称以 kafka 为前缀,以日期为后缀,例如 kafka-2020.05.27。更多 Config 配置详情请参见 Logstash 配置文件说明。6.单击下一步下一步,配置管道参数。使用 Filebeat+Kafka+Logstash+Elasticsearch 构建日志分析系统使用 Filebeat+Kafka+Logstash+Elasticsearch 构建日志分析系统7.单击保存保存或者保存并部署保存并部署。保存:保存:将管道信息保存在 Logstash 里并触发实例变更,配置不会生效。保存后,系统会返回管道管理管道管理页面。可在管道列表管道列表区域,单击操作操作列下的立即部署立即部署,触发实例重启,使配置生效。保存并部署:保存并部署:保存并且部署后,会触发实例重启,使配置生效。步骤三:查看日志消费状态步骤三:查看日志消费状态1.进入消息队列 Kafka 控制台。2.在左侧导航栏,单击 ConsumerConsumer GroupGroup 管理管理。3.在 ConsumerConsumer GroupGroup 管理管理页面,单击目标消息队列 Kafka 实例。4.单击对应 Consumer Group 右侧操作操作列下的消费状态消费状态。5.在消费状态消费状态对话框中,单击对应 Topic 右侧操作操作列下的详情详情,查看详细消费状态。正常情况下,返回结果如下。步骤四:通过步骤四:通过 KibanaKibana 过滤日志数据过滤日志数据1.登录目标阿里云 ES 实例的 Kibana 控制台。具体步骤请参见登录 Kibana 控制台。使用 Filebeat+Kafka+Logstash+Elasticsearch 构建日志分析系统使用 Filebeat+Kafka+Logstash+Elasticsearch 构建日志分析系统6.单击 AddAdd a a filterfilter,在 AddAdd filtefilter 页面中设置过滤条件,查看符合对应过滤条件的日志数据。常见问题常见问题Q:同步日志数据出现问题,管道一直在生效中,无法将数据导入 Elasticsearch,如何解决?A:查看 Logstash 实例的主日志是否有报错,根据报错判断原因,具体操作请参见查询日志。常见的原因及解决方法如下。使用 Filebeat+Kafka+Logstash+Elasticsearch 构建日志分析系统基于 Elasticsearch+Flink 的日志全观测最
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服