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天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
36 10
|
13天前
|
机器学习/深度学习 搜索推荐 API
淘宝/天猫按图搜索(拍立淘)API的深度解析与应用实践
在数字化时代,电商行业迅速发展,个性化、便捷性和高效性成为消费者新需求。淘宝/天猫推出的拍立淘API,利用图像识别技术,提供精准的购物搜索体验。本文深入探讨其原理、优势、应用场景及实现方法,助力电商技术和用户体验提升。
|
19天前
|
编译器 PHP 开发者
PHP 8新特性解析与实战应用####
随着PHP 8的发布,这一经典编程语言迎来了诸多令人瞩目的新特性和性能优化。本文将深入探讨PHP 8中的几个关键新功能,包括命名参数、JIT编译器、新的字符串处理函数以及错误处理改进等。通过实际代码示例,展示如何在现有项目中有效利用这些新特性来提升代码的可读性、维护性和执行效率。无论你是PHP新手还是经验丰富的开发者,本文都将为你提供实用的技术洞察和最佳实践指导。 ####
27 1
|
20天前
|
存储 供应链 算法
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景
44 0
|
21天前
|
存储 监控 API
深入解析微服务架构及其在现代应用中的实践
深入解析微服务架构及其在现代应用中的实践
29 0
|
1月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
43 5
|
2月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
211 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
3月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
4月前
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
|
4月前
|
JSON 自然语言处理 数据库
Elasticsearch从入门到项目部署 安装 分词器 索引库操作
这篇文章详细介绍了Elasticsearch的基本概念、倒排索引原理、安装部署、IK分词器的使用,以及如何在Elasticsearch中进行索引库的CRUD操作,旨在帮助读者从入门到项目部署全面掌握Elasticsearch的使用。

相关产品

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

    更多