4大实验项目,深度解析Tag在可观测性领域的经典实践

简介: Tag在可观测性领域的经典实践,快来进行深度了解吧

前言

Opentelemetry协议,是CNCF(Cloud Native Computing Foundation-云原生计算基金会)定义的最新一代的可观测规范(目前还在孵化中),该规范定义了可观测性的三大支柱:metrics、trace、log(指标、链路、日志)。但是如果仅仅是将这三支柱的数据收集起来,而不进行关联,那所谓的可观测性与传统的监控工具(APM、日志、zabbix等)又有何区别,难道说仅仅是一套监控工具的集合吗?所以这里引申出一个很重要的观念:TAG(标签),例如前后端打通的triceID,在某种程度上也可以看做是一个tag,将指标链路日志进行初步关联的host也可以看做是一个tag,其他的例如项目、环境、版本号等等都是一个个的tag!总之,通过TAG实现数据的关联,以及更多的自定义的可观测性玩法,就显得尤为重要。观测云的DataFlux目前架构中所有的可观测项均支持tag的设置,理论上tag数量无上限。


举例

生活中常见的现象就是找工作或者hr招聘,招聘往往会有比较具体的要求,例如xx岗位,需要具备编程技能、计算机常识、本科学位、n年工作经验等等,这一个个要求就好比标签,只有满足标签的人才有可能得到这个岗位,那在IT系统里,就可以是,xx服务器上,跑了xx应用,xx数据库,xxnginx,环境是xx环境,负责人是xxx,当出现问题时,如果标签足够多,很快速的就可以知道哪台服务器有问题,具体影响了哪些业务,哪些应用组件,谁在负责相关的组件,这样就可以快速找到专业对口人员进行修复及弥补,从而提升解决问题的效率。


此文将利用观测云的DataFlux从四个示例对tag的可拓展性及可玩性进行试验:

实验一 / 给服务器进行分组

背景:企业内部往往存在多个项目组或者事业部,不同项目组或事业部在做自己的业务开发时,往往会用专属于自己的基础设施,如果从基础设施到应用都接入了DataFlux进行可观测性,那除了通过分工作空间之外,还有什么方式可以进行项目资源的区分吗?当然有,dataflux设计之初就想到了这种情况,默认的datakit的主配置文件中,有一个global_tag的标签,该标签就是从基础设施层面进行标签的设定,该基础设施上的其他组件,例如应用、数据库都会默认带上这个标签。


1 修改datakit-inputs,配置global_tag

$ vim /usr/local/datakit/conf.d/datakit.conf

# 在global_tags 中添加标签,除默认的三个外,还可添加其他标签

$ [global_tags]

$  cluster = ""

$  project = "solution"

$  site = ""

image.pngimage.png

同理,可将所有相关主机的datakit都加上这个标签。


2 DataFlux-查看服务器分组

image.png

实验二 / 修改datakit识别的hostname

背景:datakit会默认采集主机层面的hostname,然后将识别到的hostname作为全局tag,将所有的指标、链路、日志、对象等数据进行关联,但是,在很多企业内部实际环境中,hostname是无规则的字符串,没有实际意义,而又因为hostname可能被用于连接应用或管理数据库等其他作用,企业内部无法评估更改hostname(将hostname变更为可识别的字符串)会带来怎样的隐患,所以不愿意变更hostname,为了避免风险,datakit内置的ENV_HOSTNAME就可以应对这种情况。

  • 此方法生效后,新的hostname所在的主机数据会重新进行上传,原有hostname的主机数据将不再更新。
  • 建议:如有更改hostname需要,最好在初次安装datakit时进行修改。


1 修改datakit-inputs配置[environments]

$ vim /usr/local/datakit/conf.d/datakit.conf

# 在[environments]中修改ENV_HOSTNAME,改成方便识别的hostname

[environments]

 ENV_HOSTNAME = "118.178.57.79"

image.pngimage.png

2 DataFlux-对比更改前后的数据

更改前

image.png

更改后

image.png

实验三 / Nginx日志统计分服务进行数据展示

背景:企业内部的nginx,一般担负着域名转发或者服务转发的作用,往往nginx所对应的域名会将前端请求转发至后端多个不同的子域名或者多个不同端口的服务,也有可能nginx直接会承载着多个域名服务,针对这种情况,统一化的nginx监控根本无法满足,那dataflux是如何解决这种问题的呢?


  • 场景:nginx对外暴露18889跟80端口,分别转发至内网服务器118.178.57.79的8999及18999端口。
  • 需求:分别统计nginx18889及80两个端口对应服务的数据,例如PV、UV、请求错误数量等数据。
  • 前置条件:nginx的80及18889的访问日志已分别配置到不同的目录(或者配置成不同的日志文件名称)

image.png

image.png

1 配置nginx自身指标监控

详细配置参考

image.png

开启nginx.conf自身性能指标统计模块


查看nginx的http_stub_status_module模块是否已打开


(此示例已打开)

image.png

在Nginx.conf中增添nginx_status的location转发


$ cd /etc/nginx  

  //nginx路径根据实际情况而定

$ vim nginx.conf

$  server{

    listen 80;  

    server_name localhost;

    //端口可自定义

 

     location /nginx_status {

         stub_status  on;

         allow 127.0.0.1;

         deny all;

                            }

                         

         }

image.pngimage.png

检查该模块是否已正常开通:

linux环境:curl http://127.0.0.1/nginx_status

会出现如下数据:

image.png

如已开通,可执行 nginx -t查看nginx状态

image.png

接下来执行 nginx -s reload重新加载nginx

Datakit中开启nginx.inputs:


$ cd /usr/local/datakit/conf.d/nginx/

$ cp nginx.conf.sample nginx.conf

$ vim  nginx.conf


#修改如下内容

[[inputs.nginx]]

   url = http://localhost/nginx_status

image.png

保存nginx.conf文件后重启datakit

$ service datakit restart


2 分别配置80及18889服务对应的日志监控

image.png

image.png

image.png

image.png

3 配置自定义视图(通过tag区分域名)

创建步骤参考[创建场景及视图]

https://www.yuque.com/dataflux/bp/sample1#IVN7h


步骤:登录DataFlux—>场景—>新建场景—>新建空白场景—>系统视图(创建NGINX)


重点:

在系统模板上修改nginx视图相关配置

1、进入视图编辑状态,点击修改视图变量,添加视图变量

L::nginx:(distinct(`domainname`)){host='#{host}'}


注释:继承nginx指标中的host,在L(日志)中查询nginx日志中不同的domainname

image.png

image.png

2、修改具体视图的参数


image.pngimage.png

4 DataFlux—分服务数据展示

image.png

image.png

image.png

image.png

同理:可以通过打不同的tag,用以区分不同的project、不同的负责人、不同的业务模块、不同的环境等等等等,tag具体的能力取决于你的想象空间。


实验四 / 通过tag确认服务具体owner进行告警通知

背景:企业内部随着企业业务的发展,微服务、容器被大量使用,服务组件越来越多,相应的开发及运维人员也越来越多,每个人的分工也越来越细,当业务系统或IT系统出现故障,最佳的告警实践就是可以直接指定相关负责人员,从而提高告警闭环的效率,这种方式常用的方式是告警只发送给相关的人员,或者是jira指派工单,那DataFlux是怎么操作的呢?DataFlux中只需要在具体的可观测inputs中添加tag(理论上支持无上限的tag数量),例如在nginx-inputs中添加自定义tag,owner = "xxx",然后在异常检测中将owner设置为变量,异常检测就可以自动识别该字段并发送至钉钉或企业微信群,效果如下:


例如在上述的nginx自定义日志中进行添加:


1 在inputs中添加tag

image.png

2 在inputs中添加tag

image.png

3 触发告警,查看告警事件

image.pngimage.png

目录
相关文章
|
4月前
|
运维 网络协议 网络安全
Kali虚拟机间搭建iodine DNS隧道实验指南
本指南介绍如何在两台Kali虚拟机间使用iodine搭建DNS隧道。通过服务端(192.168.1.44)与客户端(192.168.1.36)配置,利用DNS查询建立虚拟局域网,实现受限网络下的隐蔽通信。包含环境准备、命令详解、连通性测试及故障排查,助你快速掌握DNS隧道技术原理与实践应用。(238字)
573 7
|
运维 持续交付 云计算
深入解析云计算中的微服务架构:原理、优势与实践
深入解析云计算中的微服务架构:原理、优势与实践
808 86
|
监控 安全 数据可视化
哪些项目适合采用BOT+EPC模式?深度解析
2分钟了解什么是BOT+EPC项目管理模式以及该模式适用于哪些类型的项目。
1121 1
哪些项目适合采用BOT+EPC模式?深度解析
|
11月前
|
人工智能 API 语音技术
HarmonyOS Next~鸿蒙AI功能开发:Core Speech Kit与Core Vision Kit的技术解析与实践
本文深入解析鸿蒙操作系统(HarmonyOS)中的Core Speech Kit与Core Vision Kit,探讨其在AI功能开发中的核心能力与实践方法。Core Speech Kit聚焦语音交互,提供语音识别、合成等功能,支持多场景应用;Core Vision Kit专注视觉处理,涵盖人脸检测、OCR等技术。文章还分析了两者的协同应用及生态发展趋势,展望未来AI技术与鸿蒙系统结合带来的智能交互新阶段。
781 31
|
11月前
|
缓存 边缘计算 安全
阿里云CDN:全球加速网络的实践创新与价值解析
在数字化浪潮下,用户体验成为企业竞争力的核心。阿里云CDN凭借技术创新与全球化布局,提供高效稳定的加速解决方案。其三层优化体系(智能调度、缓存策略、安全防护)确保低延迟和高命中率,覆盖2800+全球节点,支持电商、教育、游戏等行业,帮助企业节省带宽成本,提升加载速度和安全性。未来,阿里云CDN将继续引领内容分发的行业标准。
603 7
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
DeepSeek 实践应用解析:合力亿捷智能客服迈向 “真智能” 时代
DeepSeek作为人工智能领域的创新翘楚,凭借领先的技术实力,在智能客服领域掀起变革。通过全渠道智能辅助、精准对话管理、多语言交互、智能工单处理、个性化推荐、情绪分析及反馈监控等功能,大幅提升客户服务效率和质量,助力企业实现卓越升级,推动智能化服务发展。
443 1
|
11月前
|
机器学习/深度学习 人工智能 监控
鸿蒙赋能智慧物流:AI类目标签技术深度解析与实践
在数字化浪潮下,物流行业面临变革,传统模式的局限性凸显。AI技术为物流转型升级注入动力。本文聚焦HarmonyOS NEXT API 12及以上版本,探讨如何利用AI类目标签技术提升智慧物流效率、准确性和成本控制。通过高效数据处理、实时监控和动态调整,AI技术显著优于传统方式。鸿蒙系统的分布式软总线技术和隐私保护机制为智慧物流提供了坚实基础。从仓储管理到运输监控再到配送优化,AI类目标签技术助力物流全流程智能化,提高客户满意度并降低成本。开发者可借助深度学习框架和鸿蒙系统特性,开发创新应用,推动物流行业智能化升级。
367 1
|
Serverless 对象存储 人工智能
智能文件解析:体验阿里云多模态信息提取解决方案
在当今数据驱动的时代,信息的获取和处理效率直接影响着企业决策的速度和质量。然而,面对日益多样化的文件格式(文本、图像、音频、视频),传统的处理方法显然已经无法满足需求。
480 4
智能文件解析:体验阿里云多模态信息提取解决方案
|
数据可视化 项目管理
项目计划与进度跟踪:甘特图的强大功能解析
甘特图是现代项目管理中不可或缺的工具,通过时间线和任务条直观展示项目进度,支持任务分解、依赖关系管理和进度跟踪。结合板栗看板,可实现任务可视化与实时协作,提升团队效率。定期更新甘特图并灵活应对变化,确保项目顺利推进。
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
1843 30

推荐镜像

更多
  • DNS