Elasticsearch 全观测技术解析与应用(五):阿里云ES全观测性配置

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文是借助阿里云环境进行的ES实战演练,主要演示了APM的配置和使用过程,介绍了相关界面的使用和注意事项,引入大家系统地使用ES。

点击免费下载
《Elasticsearch 全观测技术解析与应用》>>>

分享人:李猛

今天我们借助阿里云环境来做一个实战的演练,围绕这三点来讲解:阿里云ES介绍、搭建全观测性环境、全观测性总结。

一、阿里云ES介绍

首先介绍一下阿里云。阿里云目前是中国最好的云,全世界排第三,基本上公司有条件的都会上云,而阿里云是最可靠的。阿里云在它平台上集成了很多开源的产品,使用起来非常方便,省去了搭建、服务器维护等工作。

我们打开阿里云地址,在产品的大数据这个地方可以找到Elasticsearch。

image.png

然后点进去,进入ES界面。现在ES这套产品在阿里云有一个月的试用期,搭建集群非常快,基本上几分钟就完成了。在这个里面可以看到有很多ES的资料和开发报告等内容。

image.png

我们点进“0元开发ELK”,填写一些关键的信息就可以了开通了,它会引导你一步步地去配置一个ES环境。

image.png

第一步,在这个区域上配有三个节点,我们按照提示一步一步下去配置,非常方便。

image.png

再继续下去要配虚拟网络和ES的登录密码,因为我们自己搭建ES默认是没有启动安全的。但是在云上是一定要启动,因为云上是一个公共的环境,是一个开放云,你最终要把这个地址暴露出来。

密码设置符合它的规则就好了,后面访问ES和Kibana会用到。另外选专有网络这里要注意,必须要选择同一个区域,假设你前面选择的是华东杭州,那么选择专有网络虚拟交换机也要选择同一个区域才有效。

image.png

下一步我们确认订单,支付购买就完成了,然后我们来进行搭建。

首先在整个ES里面,我们要搭建两个,就是Elasticsearch和Kibana。

image.png

现在显示这已经有一个集群在运行,我们可以点执行管理,进去后看到这个集群的版本、实例类型、节点等等。

image.png

我们从实例名点进去,可以看到一些基本的信息,ES的一些配置信息等,这些在默认的情况下都不用去修改。

image.png

我们这个集群是搭建好的,搭建完成之后有几个地方要配置。第一个就是如果要公网访问,一定要去开通安全,它会生成这样一个临时的域名,我们可以通过它来访问9200端口和检查Nodes节点。

image.png

这里公网配置一定要选择打开,如果这个地方的公网地址没有启用,外网是不可访问的。

image.png

还有,公网打开之后还要修改公网访问白名单地址,根据上面的提示来写,00000代表所有访问的IPV4地址不限制,如果你不设置,它默认是禁止的。

image.png

接下来是第二个配置,可视化。我们点“可视化控制”进入界面,进入后在“修改配置”里面修改公网的地址,选择“公网开放”,如果不修改它也是不能访问的。

image.png
image.png

随后,我们回到上一级页面,点“修改配置”旁边的“进入控制台”,输入刚才我们设置的ES密码就可以进入Kibana的页面了。

image.png

这个界面它有一个home,介绍到它的主要产品概念,比如第一个可观测性observability,可以看到APM、Logs、Metrics。我们也可以去加载一些样例数据,ES它专门集成在里面,方便我们去做测试。

image.png

环境搭好之后,我们要做一套自己的监控。第一步是搭建Kibana,我们已经完成了,随后要做一个应用性能采集的东西,叫APM。我们可以在左边的菜单栏找到“APM”点进去,这个里面会记录,比如有多少个微服务,一两百个都可以采过来,然后绘制图表展示信息。

image.png

APM要怎么应用呢?虽然阿里云上面提供了 ES、Logstash、Beats数据采集,但是APM并没有给我们。加入我们的应用程序部署在别的服务器上,我们如何去进行对接?

为了演示这个案例,我们没有在阿里云申请别的服务器,就用本地机器来代替。首先,我们要部署一个APM server,它的版本最好和服务器的ES版本一样。

image.png

APM server有几个地方要先进行配置,我们用文本打开APM文件。首先,因为数据采集之后要传到Logstash上面,所以这里有一个localhost的地址,它代表APM server。

Java App agent数据采集之后首先传给APM server,然后APM server再把数据给到远程。这里因为我们本来用的本地服务器环境,所以可以默认用本地地址。

image.png

第二个就是数据最终output的地方,我们找到output Elasticsearch的localhost,这是数据采集要指向的ES远程地址,我们刚刚已经说过远程的ES地址,把它复制过来。

image.png

大家注意原来的9200端口,然后协议http删掉。

image.png

因为是远程访问,所以还需要密码,这里把之前的用户名和密码都配置到这里。

image.png

然后我们找到monitor,这是监控ES自己的,它默认是不启用的,所以我们把它选择为true。 做完之后,APM这一套我们就算配置完成了,然后我们就可以启动它。
image.png

在Windows下它是一个exe文件,我们输入CMD打开窗口,再运行APM server。

image.png

搭建好之后要先去检查一下Monitor是否部署到位,我们找到Kibana界面的Stack Monitoring,点进去查看。

image.png

点进去之后,可以在页面上看到我们刚启动的APM server。

image.png

接下来,我们就可以把应用程序的日志采集上来进行分析了。为了演示,我们需要写一个Java APP,这里已经提前写好了,我们开始编程。

image.png

我们做APM首先要编写应用程序,应用程序里面有几个参数要注意。

我们先在这个Readme里面看一下,首先它是通过Java agent这种方式,类似于提前式的拦截来植入程序包,它会检查程序调用;其次,它会指定程序名字,我们这个就叫apm-java01,如果你的同一个微服务部署了很多,名字最好都一样,因为最终它最多只是机器名字不一样,相当于做一个归类;然后我们还要再配一个地址,因为APM采集之后要到APM server里;最后是比较关键的程序包扫描,程序包扫描是有规范的,比如要扫描哪些范围,否则如果把所有程序都扫描一遍也是没有意义的。

image.png

基于这些我们来运行一下,看看效果怎么样。我们回到目录打开这个文件,可以看到,这是一个典型的Spring Boot项目,它已经运行成功了,然后我们去访问一下。

image.png

我们刷新这个界面,大概几秒钟就可以看到apm-java01了。

image.png

我们点进来,可以看到APM的窗口。

image.png

接下来我们把其他的接口都访问一遍。

image.png

然后刷新列表,我们可以在里面发现存在的问题,比如这个接口平均响应时间居然要十几秒,说明它一分钟只能做不到10个处理。

image.png

接下来我们一个一个看。首先点进API1,可以看到它消耗的时间比较长,因为我们在程序里面故意做了一个延迟,API2和API3也是一样,我们都在里面做了延迟的操作。

image.png

API4因为我们写的是报错,所以大家可以注意到它的状态是不一样的,它这里是返回500。

image.png

作为开发人员,我们最关心的就是程序接口的响应速度和错误,而ES已经帮我们做了太多工作。我们在Errors这个页面可以找到刚刚的错误,它甚至把代码行定位出来了,在第71行。

image.png

我们回到71行代码片段看一下,确实是这里错误。

image.png

接下来再看看API5,API5我们是用来检查全链路追踪的。5000、5001、5002、5003,基本上把全链路都抓出来,看为什么时间消耗这么多。

image.png

以上就是Transactions的部分,下面讲讲JVMs,我们从这里点进来。

image.png

在里面可以看到历史的数据、追踪的数据,CPU消耗的内存、堆栈等等。

image.png

接下来再介绍一个强大的APM,Service Map。我们点进去可以看到服务的调用关系,比如我们的java程序调用了ES,假如我们的服务调用了很多服务,这个服务又调用了下一个服务,你就能直观地知道你的应用是怎样的情况,非常方便。

image.png

以上就是关于APM的介绍,当然ES的监控其实有很多,APM只是其中一个,它还包括了日志指标,Filebeat、Metricbeat、Heartbeat等指标采集,它们的配置和APM基本一样,配置完成后我们在ES界面上就能看到相应的数据。

image.png

最后给大家说一下Alert告警的位置,我们在Management的Alerts and Actions里可以找到,然后自己进行配置。

image.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
10天前
|
存储 JSON 数据库
Elasticsearch 分布式架构解析
【9月更文第2天】Elasticsearch 是一个分布式的搜索和分析引擎,以其高可扩展性和实时性著称。它基于 Lucene 开发,但提供了更高级别的抽象,使得开发者能够轻松地构建复杂的搜索应用。本文将深入探讨 Elasticsearch 的分布式存储和检索机制,解释其背后的原理及其优势。
39 5
|
10天前
|
机器学习/深度学习 存储 监控
Elasticsearch 在日志分析中的应用
【9月更文第2天】随着数字化转型的推进,日志数据的重要性日益凸显。日志不仅记录了系统的运行状态,还提供了宝贵的洞察,帮助企业改进产品质量、优化用户体验以及加强安全防护。Elasticsearch 作为一个分布式搜索和分析引擎,因其出色的性能和灵活性,成为了日志分析领域的首选工具之一。本文将探讨如何使用 Elasticsearch 作为日志分析平台的核心组件,并详细介绍 ELK(Elasticsearch, Logstash, Kibana)栈的搭建和配置流程。
42 4
|
2天前
|
编译器 PHP 开发者
PHP 8新特性解析与应用实践
PHP 8作为PHP语言的最新版本,带来了许多令人兴奋的新特性和性能改进。本文将深入探讨PHP 8中的JIT编译器、联合类型、匹配表达式等关键更新,并通过实例演示如何在项目中有效利用这些新工具,帮助开发者提升代码质量和执行效率。
|
5天前
|
C# Android开发 开发者
Uno Platform 高级定制秘籍:深度解析与实践样式和模板应用,助你打造统一且高效的跨平台UI设计
【9月更文挑战第7天】Uno Platform 是一个强大的框架,支持使用 C# 和 XAML 创建跨平台 UI 应用,覆盖 Windows、iOS、Android、macOS 和 WebAssembly。本文介绍 Uno Platform 中样式和模板的应用,助力开发者提升界面一致性与开发效率。样式定义控件外观,如颜色和字体;模板则详细定制控件布局。通过 XAML 定义样式和模板,并可在资源字典中全局应用或嵌套扩展。合理利用样式和模板能简化代码、保持设计一致性和提高维护性,帮助开发者构建美观高效的跨平台应用。
14 1
|
8天前
|
弹性计算 开发框架 数据可视化
阿里云虚拟主机和云服务器有什么区别?多角度全解析对比
阿里云虚拟主机与云服务器ECS的主要区别在于权限与灵活性。虚拟主机简化了网站搭建流程,预装常用环境,适合初级用户快速建站;而云服务器提供全面控制权,支持多样化的应用场景,如APP后端、大数据处理等,更适合具备技术能力的用户。尽管虚拟主机在价格上通常更优惠,但随着云服务器价格的下降,其性价比已超越虚拟主机,成为更具吸引力的选择。
|
11天前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
61 0
|
11天前
|
定位技术
|
13天前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
1月前
|
存储 NoSQL Redis
redis 6源码解析之 object
redis 6源码解析之 object
52 6
|
1天前
|
开发工具
Flutter-AnimatedWidget组件源码解析
Flutter-AnimatedWidget组件源码解析

热门文章

最新文章

相关产品

  • 检索分析服务 Elasticsearch版
  • 推荐镜像

    更多