DeepFlow 最佳实践 —— Blackbox 拨测能力集成及统一观测
DeepFlow 可观测性平台以 eBPF 技术实现的零侵扰(Zero Code)分布式追踪为核心,不仅实现了面向应用的全栈(Full Stack)观测能力,同时通过开放的数据集成接口和智能标签(SmartEncoding)技术支持汇聚外部的 Metrics、Tracing、Logging、Profiling 等各类的海量观测数据,消除运维数据孤岛,为 IT 系统的运行维护、安全监测、运营分析提供统一的可观测性数据综合解决方案。
在本篇实践案例中,将向您介绍如何在 DeepFlow 可观测性平台快速集成 Prometheus Blackbox 拨测能力,补充、丰富可观测性数据湖的信号种类,一方面通过 HTTP/HTTPS/TCP/ICMP 等协议拨测快速发现业务异常,另一方面在业务异常的诊断过程中,对平台侧应用指标分析的同时,快速调阅拨测的指标数据,增强 IT 系统监控、诊断的全面性和工作效率。
01|DeepFlow 拨测能力集成方案
整体架构
本次实践对云端的某个业务服务平台进行持续拨测,云端业务采用微服务架构,部署在 K8s 集群中,外部访问的 URL 为 http://example.test.com。
我们使用 DeepFlow Agent + Grafana Alloy 来实现 Prometheus Blackbox 向云端服务的拨测和指标数据集成,要点包括:
- 在拨测端主机(Host/VM/BM)部署 Alloy 和 DeepFlow Agent:
- Alloy 的 Blackbox 模块执行周期性拨测动作,探测云上业务服务平台(Service Platform)的可达性和服务响应状态,拨测协议选用 HTTP、TCP、ICMP,分别探测网络可达性、TCP 连接状态、HTTP 服务状态;
- Alloy 通过 Prometheus Remote Write 接口将 Blackbox 拨测指标数据发送到主机内部署的 DeepFlow Agent;
- 拨测端主机部署的 DeepFlow Agent 接收到 Blackbox 指标数据后,与各类观测数据统一回送到 DeepFlow Server;
- 在云端的业务服务平台(Service Platform)部署 DeepFlow Agent 采集平台侧的应用调用数据,并回送到 DeepFlow Server;
- DeepFlow Server 汇聚 Blackbox 拨测指标数据和云端的应用调用数据,构建统一的数据观测能力。
Blackbox 拨测能力集成部署架构
部署 DeepFlow Agent
拨测端主机 DeepFlow Agent 部署
主机环境 DeepFlow Agent 安装指导链接[1]
部署并运行后,DeepFlow Agent 默认开启数据集成接口(默认端口号为 38086)用于其他 Metrics、Tracing、Logging、Profiling 等数据的接收,其中用于 Prometheus 指标数据 Remote Write 的接口 API 为:/api/v1/prometheus。
云端业务服务平台 DeepFlow Agent 部署
K8s 环境 DeepFlow Agent 安装指导链接[2]
部署并运行后,DeepFlow Agent 开始对云端 K8s 集群中的应用服务进行零侵扰的 eBPF 数据采集,支持获取的数据主要包括:
- 应用调用的 RED 指标(支持的应用协议详见链接[3])
- 分布式调用链追踪数据
- 应用实例 CPU、Memory Profiling 数据
- 慢文件读写事件
- 网络流量的 L3 吞吐、L4 吞吐、TCP 性能、TCP 异常、TCP 时延等指标
部署 Grafana Alloy
第 1 步:安装 Grafana Alloy
安装指导链接[4]
第 2 步:修改运行配置文件
cat << EOF > /etc/alloy/config.alloy logging { level = "warn" } prometheus.exporter.blackbox "my_task" { config_file = "/etc/alloy/blackbox.yml" target { name = "icmp_probe_1" address = "example.test.com" module = "icmp_test" labels = { "target" = "icmp_example.test.com", } } target { name = "tcp_probe_1" address = "example.test.com:80" module = "tcp_connect" labels = { "target" = "tcp_example.test.com", } } target { name = "http_probe_1" address = "http://example.test.com" module = "http_2xx" labels = { "target" = "http_example.test.com", } } } prometheus.scrape "scrape_my_task" { targets = prometheus.exporter.blackbox.my_task.targets forward_to = [prometheus.relabel.filter_metrics.receiver] scrape_interval = "10s" } prometheus.relabel "filter_metrics" { rule { action = "replace" replacement = "IP_OF_HOST" target_label = "instance" } forward_to = [prometheus.remote_write.deepflowagent.receiver] } prometheus.remote_write "deepflowagent" { endpoint { url = "http://127.0.0.1:38086/api/v1/prometheus" } } EOF cat << EOF > /etc/alloy/blackbox.yml modules: http_2xx: prober: http timeout: 5s http: method: GET preferred_ip_protocol: "ip4" # defaults to "ip6" ip_protocol_fallback: false # no fallback to "ip6" http_post_2xx: prober: http timeout: 5s http: method: POST headers: Content-Type: application/json body: '{}' tcp_connect: prober: tcp timeout: 5s icmp_test: prober: icmp timeout: 5s icmp: preferred_ip_protocol: "ip4" EOF DEFAULT_INTERFACE=$(ip route | grep default | awk '{print $5}') DEFAULT_IP=$(ip -4 addr show $DEFAULT_INTERFACE | grep -oP '(?<=inet\s)\d+(\.\d+){3}') sed -i "s|IP_OF_HOST|$DEFAULT_IP|g" /etc/alloy/config.alloy
注:运行配置文件中的 URL 为实践样例,可根据拨测任务的需要灵活修改。
第 3 步:启动服务
sudo systemctl start alloy sudo systemctl enable alloy
(可选步骤)检查服务状态
sudo systemctl status alloy -l
(可选步骤)检查运行日志
sudo journalctl -u alloy -e
02|拨测指标与应用指标的统一观测
拨测指标监控
进入 DeepFlow 中的视图功能入口,可以通过内置的「拨测指标监控」视图对拨测指标实时观测。在视图中输入 URL 或 IP 的关键字段,便可在视图中自动过滤出目标地址的:
- HTTP/HTTPS/TCP/ICMP 拨测的响应性能统计(列表);
- 当前拨测连通性的正常比例;
- 历史拨测连通性的变化曲线;
- 历史拨测响应时延的变化曲线;
- 历史 HTTP/HTTPS 拨测响应码的变化曲线;
- 历史 HTTP/HTTPS 拨测各通信阶段的时延变化曲线。
拨测指标监控
云端业务服务平台指标监控
同时可灵活定制应用监控视图对云端业务服务平台的应用调用指标实时观测。
在「应用监控」视图中一般包括:
- 业务服务平台的微服务互访拓扑(直观观测微服务间互访关系)
- 微服务的请求速率曲线
- 微服务的响应速率曲线
- 微服务的客户端异常比例曲线
- 微服务的服务端异常比例曲线
- 微服务的平均响应时延曲线
- 微服务的最大响应时延曲线
当我们在「拨测指标监控」视图中发现连通性异常时,便可以快速切换到「应用监控」视图对业务服务平台中微服务的内外部应用调用性能进行诊断,发现问题关键点,并快速定位修复。
应用调用指标监控视图
03|什么是 DeepFlow
DeepFlow 是云杉网络开发的一款可观测性产品,旨在为复杂的云原生及 AI 应用提供深度可观测性。DeepFlow 基于 eBPF 实现了应用性能指标、分布式追踪、持续性能剖析等观测信号的零侵扰(Zero Code)采集,并结合智能标签(SmartEncoding)技术实现了所有观测信号的全栈(Full Stack)关联和高效存取。使用 DeepFlow,可以让云原生及 AI 应用自动具有深度可观测性,从而消除开发者不断插桩的沉重负担,并为 DevOps/SRE 团队提供从代码到基础设施的监控及诊断能力。
GitHub 地址:https://github.com/deepflowio/deepflow
访问 DeepFlow Demo[5],体验零侵扰、全栈的可观测性。
参考资料
[1]主机环境 DeepFlow Agent 安装指导链接:https://www.deepflow.io/docs/zh/ee-install/saas/cloud-host/
[2]K8s 环境 DeepFlow Agent 安装指导链接:https://www.deepflow.io/docs/zh/ee-install/saas/cloud-host/
[3]应用调用的 RED 指标支持的应用协议:https://www.deepflow.io/docs/zh/features/l7-protocols/overview/
[4]安装 Grafana Alloy:https://grafana.com/docs/alloy/latest/set-up/install/linux/
[5]DeepFlow Demo: https://deepflow.io/docs/zh/ce-install/overview/
欢迎报名参与8月24日·DeepFlow可观测性Meetup·广州站,本次活动聚焦可观测领域,来自 DeepFlow、Greptime、腾讯云等多位可观测领域行业专家将一起深入探讨可观测领域的创新技术解决方案。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Percona Toolkit 神器全攻略(开发类)
Percona Toolkit 神器全攻略(开发类) Percona Toolkit 神器全攻略系列共八篇,前文回顾: 前文回顾 Percona Toolkit 神器全攻略 Percona Toolkit 神器全攻略(实用类) Percona Toolkit 神器全攻略(配置类) Percona Toolkit 神器全攻略(监控类) Percona Toolkit 神器全攻略(系统类) 全文约定:$为命令提示符、greatsql>为GreatSQL数据库提示符。在后续阅读中,依据此约定进行理解与操作 开发类 在Percona Toolkit中开发类共有以下工具 pt-duplicate-key-checker:列出并删除重复的索引和外键 pt-online-schema-change:在线修改表结构 pt-show-grants:规范化和打印权限 pt-upgrade:在多个服务器上执行查询,并比较不同 pt-duplicate-key-checker 概要 检查MySQL/GreatSQL表中的重复或冗余索引和外键 用法 pt-duplicate-key-checker [OP...
- 下一篇
【官宣】文末有惊喜,LFOSSA开源人才嘉年华开始了!
2024年8月15日 — 中国,上海 — 全球正在面临技术人才短缺的挑战!来自福布斯报道,如果到 2030 年还不解决当前面临的人才短缺问题,可能会造成 8500 万个职位空缺和 8.5 万亿美元的未实现收入。鉴于行业对于开源人才的迫切需求,为了迎接 2024 年,LF 开源软件学园 (LFOSSA) 定位 2024 年为 LFOSSA 开源人才年。 LF 开源软件学园(LFOSSA)作为 Linux 基金会培训和认证中国区官方平台,以“为科技人才增值,为企业创新赋能”为目的,我们不仅专注于开源软件的教育和培训,通过提供课程和认证来帮助个人和企业提升对开源技术的理解,而且促进开源在各行各业的应用。此外,LFOSSA 亦活跃于开源社区,在从年初起,参与及推动多项开源人才项目包括成立 LFOSSA 人才培养中心、RISC-V 国际人才培养认证中心、LFOSSA 人才激励计划等,另外,我们亦参与多个线下活动,包括:GDC 开源教育及人才峰会、LFOSSA 女神节、公开课,直播活动等。 为了让全国的开发者可以获益更多,在本月,从今天开始至8月底,LFOSSA 与中国大陆各地的开发者一起庆祝 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7