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可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2天前
|
存储 弹性计算 安全
阿里云服务器怎么样?云服务器ECS产品优势、应用场景、价格解析及常见问题参考
阿里云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。把物理服务器比作买的房子,云服务器ECS,就是租赁的房子,阿里云云服务商就是管家。云服务商负责搭建机房、提供配套服务和维护,用户只需要付租金,即可“拎包入住”,无需自建机房、采购和配置硬件设施。如果不再需要云服务器,可随时“退租”(释放资源),节省成本。本文为大家解析云服务器ECS产品优势、应用场景和最新价格及常见问题。
阿里云服务器怎么样?云服务器ECS产品优势、应用场景、价格解析及常见问题参考
|
3天前
|
前端开发 小程序 Java
深入解析Java Servlet与JSP:构建高效服务器端应用
【6月更文挑战第23天】Java Servlet和JSP是Web开发的关键技术,用于构建高效服务器端应用。Servlet处理HTTP请求,执行业务逻辑,而JSP专注于动态HTML生成。两者结合,借助MVC架构,实现逻辑与视图分离,提高代码可读性和性能。尽管有新框架出现,Servlet和JSP仍是许多项目的基础。
|
2天前
|
数据采集 算法 BI
解析numpy中的iscomplex方法及实际应用
在 NumPy 中,iscomplex 函数用于检查数组中的每个元素是否为复数。这个函数在处理包含复数数据的数组时非常有用,尤其是在科学计算和工程领域,这些领域经常需要区分实数和复数。 在数学和工程领域,复数是一种基本的数值类型,它们扩展了实数系统,包含了实部和虚部。在 NumPy 中,复数由 numpy.complex128 或 numpy.complex64 类型表示。numpy.iscomplex 函数提供了一种简便的方式来检查数组中的元素是否为复数。这对于数据类型判断、数据清洗和后续的数值分析非常重要。
|
3天前
|
NoSQL Linux 程序员
Linux objdump命令:深入解析与实战应用
`objdump`是Linux下的反汇编工具,用于将二进制文件转换为汇编代码,便于理解程序底层。它可以反汇编目标文件、可执行文件和库,支持多种参数,如显示符号表(-t)、反汇编代码(-d)、源代码与汇编混合视图(-S)。在实践中,结合-g编译选项和特定段(-j)反汇编,能辅助调试和分析。使用时注意包含调试信息,选择适当参数,并与其他工具(如gdb)配合使用。
|
4天前
|
关系型数据库 MySQL 数据库连接
蓝易云 - PHP基本语法解析与应用指南
以上只是PHP基本语法的简要概述,要深入了解和掌握PHP,你需要阅读更多的教程和参考资料,并通过实践来提高你的技能。
18 2
|
5天前
|
数据可视化 搜索推荐 atlas
DataV Atlas深度解析与实战应用:打造个性化地理信息可视化
阿里云DataV的Atlas功能专注于地理信息可视化,提供范围选择、边界生成和层级展示等工具,助用户轻松创建专业地图应用。通过代码示例展示了如何用Geo组件展示中国省份销售数据,强调了数据安全和性能优化的重要性。DataV Atlas简化了复杂地理信息的展示,提升了数据洞察的直观性和美感。【6月更文挑战第19天】
380 3
|
5天前
|
存储 弹性计算 安全
构建高效企业应用架构:阿里云产品组合实践深度解析
该方案展现了阿里云产品组合的强大能力和灵活性,不仅满足了当前业务需求,也为未来的扩展打下了坚实的基础。希望本文的分享能为读者在设计自己的IT解决方案时提供一定的参考和启发。
68 1
|
5天前
|
机器学习/深度学习 缓存 算法
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
|
7天前
|
XML Java 数据格式
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
17 3
|
6天前
|
存储 NoSQL 算法
Redis(四):del/unlink 命令源码解析
Redis(四):del/unlink 命令源码解析

热门文章

最新文章

相关产品

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

    更多