Observability: Elastic RUM (真实用户监控)演示

2024-03-10 15:20

本文主要是介绍Observability: Elastic RUM (真实用户监控)演示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在之前的文章 “Elastic RUM(真实用户监测)浅谈”,我们详细描述了 Elastic RUM (Real User Monitor)。在今天的文章中,我将详细一步一步地对该文章进行演示以便大家也能和我一样进行展示。在今天的展示中,我将使用如下的架构:

APM 集成架构

Elastic APM 集成由四个组件组成:APM 代理Elastic APM 集成ElasticsearchKibana。 通常,这四个组件可以通过两种方式协同工作。边缘机器上的 APM 代理将数据发送到集中托管的 APM 集成:

在本演示中,我们的边缘设备也即 macOS。它通过 Elastic APM agent 采集信息,并传输到一个中央的 APM 集成。

在本次的演示中,我将使用最新的 Elastic Stack 8.6.2 来进行展示。

Elastic RUM(真实用户监测)

安装

我们先按照我之前的文章:

  • 如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch

  • Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana

来安装 Kibana 及 Elasticsearch。不过在安装的时候,我们需要做一些调整。在启动 Elasticsearch 之前,我们还必须针对 Elasticsearch 的配置文件做一项修改:

config/elasticsearch.yml

xpack.security.authc.api_key.enabled: true

我们把上面的配置添加到 config/elasticsearch.yml 文件的最后面。这个是为了能够我们使用 API key 的方式来访问 Elasticsearch。修改完毕后,我们启动 Elasticsearch。

我们还必须为 Kibana 做一项修正。我们首先在 Kibana 的安装目录中使用如下的命令:

./bin/kibana-encryption-keys generate
xpack.encryptedSavedObjects.encryptionKey: 2d8da4d234eca75fb211e55162db644f
xpack.reporting.encryptionKey: 243a64bcf4f418f5afe0c86b64a0b33c
xpack.security.encryptionKey: f2d976b5bb1784deb9f9cf8e4e7cffd2

我们把上面的三个 keys 拷贝并粘贴到 config/kibana.yml 文件的最后面:

config/kibana.yml

添加完毕后,我们重新启动 Kibana。

Kibana 需要 Internet 连接才能从 Elastic Package Registry 下载集成包。 确保 Kibana 服务器可以连接到端口 443 上的 https://epr.elastic.co。如果你的环境有网络限制,则有一些方法可以解决此要求。 有关详细信息,请参阅气隙环境。

另外,我们必须注意的一点是 Fleet 在目前只供具有 superuser 角色的用户使用。Fleet 是 Kibana 中的界面。它被用来管理及监控 Elastic Agents。

配置 Fleet

使用 Kibana 中的 Fleet 来添加对 Elastic agent 的管理。第一次使用 Fleet 时,你可能需要对其进行设置并添加 Fleet Server。要部署自我管理的 Fleet Server,请安装 Elastic Agent 并将其注册到包含 Fleet Server 集成的代理策略中:
 

在进行安装之前,我们必须确信 Elasticsearch 的访问地址。否则我们需要在 Settings 里进行修改。按照上面的指令,我们在 Ubuntu OS 机器上打入如上的指令:

sudo ./elastic-agent install \--fleet-server-es=https://192.168.0.3:9200 \--fleet-server-service-token=AAEAAWVsYXN0aWMvZmxlZXQtc2VydmVyL3Rva2VuLTE2ODAyMjY0OTAyOTg6Szl4NUJiamVRc3FfOVdaU29FWmVqQQ \--fleet-server-es-ca-trusted-fingerprint=8dcf777f56e02a0df19f1befa593b2d2c97ca6ec780391ad6f72edaf953244f8

 

在 Kibana 的界面,我们可以看到:

我们退回到 Agents 页面:

稍等一会儿,我们就可以看到 liuxgu,也就是我的 Ubuntu 机器上的 Agents 状态显示为 Healthy。我们点击 Fleet Server Policy:

这样我们就把 apm-1 添加到 Fleet Server Policy 里去了。我们可以再次回到 policy 的页面进行查看:

这样,我们就完成了 Elastic Stack 方面的安装了。

启动测试应用 

我们打入如下的命令来下载应用:

git clone https://github.com/carlyrichmond/carfront
git clone https://github.com/carlyrichmond/cardatabase

我们首先进入到 cardatabase 应用目录中,并打入如下的命令:

./mvnw spring-boot:run

它将启动一个 Spring boot 的应用:

它是一个非常简单的存在于内存里的数据库。

我们接下来进入到 carfront 应用:

$ pwd
/Users/liuxg/demos/apm/sip/carfront
$ ls
README.md         package-lock.json public            yarn.lock
node_modules      package.json      src

由于一些原因,在我的电脑上的 nodejs 的版本高于原来设计时的版本,我们需要针对 package.json 文件做一些调整。具体可以参考这个链接。 

package.json

{"name": "carfront","version": "0.1.0","private": true,"dependencies": {"@elastic/apm-rum": "^4.9.1","@material-ui/core": "^3.9.4","@material-ui/icons": "^3.0.2","elastic-apm-js-base": "^3.0.0","react": "^16.8.2","react-confirm-alert": "^2.8.0","react-csv": "^1.1.2","react-dom": "^16.8.2","react-scripts": "2.1.5","react-skylight": "^0.5.1","react-table": "^6.11.5"},"scripts": {"start": "react-scripts --openssl-legacy-provider start","build": "react-scripts build","test": "react-scripts test","eject": "react-scripts eject"},"eslintConfig": {"extends": "react-app"},"browserslist": [">0.2%","not dead","not ie <= 11","not op_mini all"]
}

在上面,我把 start 部分的命令修改为:

react-scripts --openssl-legacy-provider start

我们可以使用如下的命令来安装所需要的模块:

npm install

我们接下来使用如下的命令来启动:

npm start

这样,我们就可以在浏览器中看到如下的页面:

这点一个非常简单的汽车展示列表。

这样我们的两个应用就基本上安装好了。

安装 Elastic APM agent

现在是时候为我们的 React 应用添加 RUM 了。我们回到 Kibana 的界面:

上面显示我们的 APM Server 状态是正确的。接下来,我们选择 RUM:

在界面中,它详细地描述了如何配置:

针对我们的设计,我们需要修改 rum.js 文件:

import { init as initApm } from '@elastic/apm-rum'
var apm = initApm({// Set required service name (allowed characters: a-z, A-Z, 0-9, -, _, and space)serviceName: 'carfront',// Set the version of your application// Used on the APM Server to find the right sourcemapserviceVersion: '0.90',// Set custom APM Server URL (default: http://localhost:8200)serverUrl: 'http://192.168.0.4:8200',// For distributed tracing to different origin (CORS)// distributedTracingOrigins: ['http://localhost:8080'],
})export default apm;

请注意上面的 serverUrl。它指向我们在 Ubuntu OS 上部署的 APM server 地址。修改完毕后,我们需要重新启动 carfront 应用:

npm start

我们在 Kibana 中查看 agent 的状态:

上面显示状态良好。

我们尝试查看 Service Map。从上面的显示中,我们可以看出来,它是一个收费的功能。我们点击 Start trial:

我们已经启动试用功能。我们再次回到 Service Map 界面:

它清楚地显示了各个服务之前的关系。目前显示都是灰色。一旦有个服务的颜色变红,则表明该服务出现问题。我们需要去调查这个服务器的问题。

有兴趣的小伙伴,你可以尝试在 carfront 应用里添加一个车型,再看看整个的调用情况:

我们也可以点击 ERROR 来认为地生成一个错误信息。

另外,出来上面自动检测之外,我们也可以针对一段代码进行检测。 详细情况,请阅读文章 “Elastic RUM(真实用户监测)浅谈”。

这篇关于Observability: Elastic RUM (真实用户监控)演示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/794657

相关文章

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

kubernetes集群部署Zabbix监控平台

一、zabbix介绍 1.zabbix简介 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营。 2.zabbix特点 (1)安装与配置简单。 (2)可视化web管理界面。 (3)免费开源。 (4)支持中文。 (5)自动发现。 (6)分布式监控。 (7)实时绘图。 3.zabbix的主要功能