解决方案:使用 DataFlux 采集 Zookeeper 性能指标并展示
优采云 发布时间: 2022-11-08 17:23解决方案:使用 DataFlux 采集 Zookeeper 性能指标并展示
DataFlux是上海住云自主研发的一套统一的大数据分析平台,通过对任意来源、任意类型、任意规模的实时数据进行监测、分析和处理,释放数据价值。
DataFlux 包括五个功能模块:
- 数据包 采集器
- Dataway 数据网关
- DataFlux Studio 实时数据洞察平台
- DataFlux Admin Console 管理后台
- DataFlux.f(x) 实时数据处理开发平台
为企业提供全场景数据洞察分析能力,具有实时性、灵活性、易扩展性、易部署性。
安装 DataKit
PS:以Linux系统为例
第一步:执行安装命令
DataKit 安装命令:
DK_FTDATAWAY=[你的 DataWay 网关地址] bash -c "$(curl https://static.dataflux.cn/datakit/install.sh)"
在安装命令中添加DataWay网关地址,然后将安装命令复制到主机执行。
例如:如果DataWay网关的IP地址为1.2.3.4,端口为9528(9528为默认端口),则网关地址为
:9528/v1/write/metrics,安装命令为:
DK_FTDATAWAY=http://1.2.3.4:9528/v1/write/metrics bash -c "$(curl https://static.dataflux.cn/datakit/install.sh)"
安装完成后DataKit会默认自动运行,并会在终端提示DataKit状态管理命令
Zookeeper 监控指标采集
前提
配置
打开DataKit采集源码配置文件夹(默认路径是DataKit安装目录的conf.d文件夹),找到zookeeper文件夹,打开里面的zookeeper.conf。
修改设置
配置完成后重启DataKit生效。
如果有问题,使用netcat查看Zookeeper的直接输出。
采集指标
访问日志指标
指标可能因配置、平台和版本而异。
验证数据报告
完成数据采集操作后,我们需要验证数据采集是否成功并上报给DataWay,以便日后可以正常分析和展示数据。
操作步骤:登录DataFlux-数据管理-指标浏览-验证数据采集是否成功
Zookeeper 性能指标:
DataFlux 的数据洞察力
根据获得的指标进行数据洞察设计,如:
zookeeper性能监控视图
基于自研DataKit数据(采集器),DataFlux现在可以对接200多种数据协议,包括:云数据采集、应用数据采集、日志数据采集,时序数据上报和常用数据库的数据聚合,帮助企业实现最便捷的IT统一监控。
解决方案:分布式追踪与监控:Skywalking全方位介绍
一、APM简介
APM(Application Performance Management)应用性能管理,通过各种探针采集和上报数据,采集关键指标,同时进行数据展示,实现应用性能管理和故障管理的系统解决方案。
目前主要的APM工具有:Cat、Zipkin、Pinpoint、SkyWalking。这里我们主要介绍SkyWalking,这是一款优秀的国产APM工具,包括分布式跟踪、性能指标分析、应用和服务依赖分析等。
Zabbix、Premetheus、open-falcon等监控系统主要关注服务器硬件指标和系统服务运行状态等,而APM系统更关注内部程序执行过程指标和服务之间的链接调用的监控,APM是更有利于深入代码 找到“慢”请求响应的根本问题,是对像 Zabbix 这样的监控的补充。
2.分布式链路跟踪
下图是常见微服务的框架,4个实例,2个MySQL,1个Redis。其实它有两个完全不同的请求进来:一个请求会访问Redis,然后去MySQL;另一个可能去另一个服务,然后直接去MySQL。整个分布式追踪的目的是什么?这样我们才能最终在页面、UI 和数据上重现这个过程。我们需要获取整个完整的链接,包括准确的响应时间、访问方式、访问的圈子、访问的Redis key等。这些是我们在做分布式追踪时需要展示的完整信息。
3. Apache Skywalking(孵化器)简介
适用于分布式系统的应用程序性能监控工具,专为微服务、云原生架构和基于容器的(Docker、K8s、Mesos)架构而设计。
Apache Skywalking(孵化器)是专为微服务架构和云原生架构系统设计的APM系统,支持分布式链路追踪。Apache Skywalking(孵化器)通过加载探针以非侵入方式采集应用调用链接信息,分析采集的调用链接信息,生成应用间和服务间的关系和服务指标。Apache Skywalking (Incubating) 目前支持多种语言,包括 Java、.Net Core、Node.js 和 Go。此外,社区还发展了一个名为 OpenTracing 的组织,旨在推动调用链监控的一些规范和标准。
Skywalking 支持从 6 个视觉维度分析分布式系统的运行。
四、SkyWalking原理架构图
5. SkyWalking核心模块
SkyWalking 采用组件化开发,易于扩展。主要成分如下:
1. Skywalking Agent:链接数据采集tracing(调用链数据)和metric(度量)信息并上报,通过HTTP或gRPC向Skywalking Collector发送数据。
2. Skywalking Collector:链路数据采集器,对agent发送的tracing和metric数据进行整合分析,通过Analysis Core模块进行处理并存储在相关数据存储中,通过Query进行二次统计和监控告警核心模块。.
3、存储:Skywalking的存储,支持ElasticSearch、Mysql、TiDB、H2等主流存储作为数据存储的存储介质。H2 仅用于单机临时演示。
4. SkyWalking UI:用于显示着陆数据的网络可视化平台。目前,RocketBot 被正式采用为 SkyWalking 的主要 UI。
本文通过一个Docker容器安装Skywalking,并集成apisix网关和Spring Boot微服务项目进行APM(Application Performance Management)应用性能管理,检测从接口网关到微服务实例、到数据库、缓存等的链条存储层。道路跟踪。
六、SkyWalking服务器安装
安装环境:
操作系统:CentOS7,配置为4核8G
Docker 版本:Docker 版本 19.03.12,构建 48a66213fe
安装工具:docker-compose,版本:docker-compose version 1.26.2,build eefe0d31
空中漫步版本:8.1.0
弹性搜索版本:7.5.0
1.创建目录
mkdir -p /data/ent/skywalking
cd /data/ent/skywalking
2.编写docker-compose.yml
vim docker-compose.yml
#添加以下内容
version: '3.8'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
container_name: elasticsearch
restart: always
ports:
- 9200:9200
healthcheck:
test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
interval: 30s
timeout: 10s
retries: 3
<p>
start_period: 40s
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- TZ=Asia/Shanghai
ulimits:
memlock:
soft: -1
hard: -1
skywalking-oap:
image: apache/skywalking-oap-server:8.1.0-es7
container_name: skywalking-oap
depends_on:
- elasticsearch
links:
- elasticsearch
restart: always
ports:
- 11800:11800
- 12800:12800
healthcheck:
test: ["CMD-SHELL", "/skywalking/bin/swctl"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
environment:
TZ: Asia/Shanghai
SW_STORAGE: elasticsearch7
SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
skywalking-ui:
image: apache/skywalking-ui:8.1.0
container_name: skywalking-ui
depends_on:
- skywalking-oap
links:
- skywalking-oap
restart: always
ports:
- 28080:8080
environment:
TZ: Asia/Shanghai
SW_OAP_ADDRESS: skywalking-oap:12800
</p>
3.启动服务
#启动(docker和docker-compose的安装不再详介绍)
<p>
docker-compose up -d
</p>
4.开放端口
firewall-cmd --zone=public --add-port=11800/tcp --permanent
firewall-cmd --zone=public --add-port=12800/tcp --permanent
firewall-cmd --zone=public --add-port=28080/tcp --permanent
firewall-cmd --reload
5.访问skywalking ui后台,访问地址为:server ip:28080
七、Skywalking Agent安装
以java代理为例,下载skywalking项目,地址:
将下载的文件解压,将agent文件夹复制到java项目中,执行java项目时使用javaagent打开skywalking代理
java -javaagent:agent/skywalking-agent.jar=agent.service_name=sab-service,collector.backend_service=192.168.35.226:11800 -jar sab-manager.war --spring.profiles.active=local_dev
其中agent.service_name是要注册到skywalking的服务名,collector.backend_service是skywalking grpc注册地址。
启动时没有报错,可以在skywalking ui后台查看服务是否成功注册到skywalking。
八、Skywalking UI管理后台介绍 1.首页
2. 仪表板
查看全局服务基本性能指标
2.1。参数说明 2.1.1 全局维度
2.1.2 服务实例维度
2.1.3 Instance 实例维度
2.1.4 Endpoint 端点维度
3. 拓扑
SkyWalking 可以根据获取的数据自动绘制服务之间的调用关系图,并可以识别常用服务并显示在图标上。每个连接的颜色反映了服务之间的调用延迟,可以非常直观的看到服务之间的调用状态。点击连接中间的点可以显示两个服务之间的连接的平均值。响应时间、吞吐率和 SLA 等信息。
4. 追踪
显示请求响应的内部执行,一个完整的请求经过了哪些服务,执行了哪些代码方法,每个方法的执行时间,执行状态等详细信息,快速定位代码问题。
可以通过选择服务、实例、状态和端点名称来搜索调用链接,
您可以点击红色标记的端点查看异常信息
5、性能分析
新建一个待分析端点,左侧列表显示任务和对应的采样请求,右侧显示各个端点的端点链接和堆栈信息。
6.报警
不同维度的告警列表可以分为服务、端点、实例。