论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
容器及微服务
›
容器及微服务
›
使用 OpenTelemetry 和 Loki 实现高效的应用日志采集和 ...
使用 OpenTelemetry 和 Loki 实现高效的应用日志采集和分析 ...
水军大提督
金牌会员
|
2024-3-3 11:44:39
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
744
|
帖子
744
|
积分
2232
在之前的文章陆续介绍了
如何在 Kubernetes 中使用 Otel 的自动插桩
以及
Otel 与 服务网格协同实现分布式跟踪
,这两篇的文章都将目标聚焦在分布式跟踪中,而作为可观测性三大支柱之一的日志也是我们经常使用的系统观测手段,今天这篇文章就来体验下应用日志的操作闭环。
背景
OpenTelemetry 简介
OpenTelemetry
(以下简称 Otel)是一个开源项目,旨在为分布式追踪、度量和日志提供统一的标准,简化应用程序的观测性(Observability)。它提供了一系列工具和 API,用于收集和传输应用程序的性能数据和日志,帮助开发者和运维团队更好地理解系统的行为。功能包括自动和手动检测应用程序的追踪数据,收集关键度量指标,以及捕获和传输日志。Otel 支持多种编程语言和框架,可以与多个后端系统集成,如 Prometheus、Jaeger、Elasticsearch 等。
Log 是 OpenTelemetry 项目的一部分,旨在提供一种标准化的方式来收集、传输和存储日志数据。
Loki 简介
Loki
是
Grafana Labs
开发的一个水平可扩展、高可用性、多租户的日志聚合系统,专为效率和易用性而设计。与传统的日志聚合系统不同,Loki 主要索引日志内容的元数据而不是内容本身,这使得它既轻量又高效。Loki 采用了与
Prometheus
类似的标签系统,使得日志查询更加灵活和强大。常用于存储和查询大量日志数据,特别是与 Grafana 结合使用时,提供了强大的日志可视化和分析能力。
演示
在本演示中将使用 Java 应用进行日志闭环操作的演示,在
Otel Log 支持的语言
中,Java 是的最全面的语言之一。
架构
Otel Operator 通过自动插桩的配置,为 Java 工作负载安装探针并加载配置
应用通过 otlp 端点上报日志到 Otel collector
Otel collector 将日志输出到 Loki
grafana 将 Loki 作为数据源进行日志的可视化展示
前置条件
Kubernetes 集群
kubectl cli
helm cli
安装 Loki 和 Grafana
安装 Grafana helm 库。
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
复制代码
准备 Loki 的配置文件 values.yaml。
loki:
auth_enabled: false
commonConfig:
replication_factor: 1
storage:
type: 'filesystem'
singleBinary:
replicas: 1
复制代码
安装 Loki。
helm install --values values.yaml loki grafana/loki
复制代码
安装 Grafana。
helm install grafana grafana/grafana
复制代码
通过 port forward 可以访问 Grafana
http://localhost:3000
。
POD_NAME="$(kubectl get pod -l app.kubernetes.io/name=grafana -o jsonpath='{.items[0].metadata.name}')"
kubectl --namespace default port-forward $POD_NAME 3000
复制代码
在 Grafana 中配置 Loki 数据源,指向上面部署 Loki。
安装 Otel Operator
Otel Operator 依赖 cert-manager 进行证书的管理,安装 operator 之前需要安装 cert-manager。
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.2/cert-manager.yaml
复制代码
执行下面命令安装 Otel Operator
kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml
复制代码
配置 Instrumentation
成功安装 Otel Operator 之后,接下来就是配置探针的安装和配置了,详细的配置说明,可以参考
Instrumentation API 文档
。
Instrumentation 是 Otel Operator 的另一个 CRD,用于自动安装 Otel 探针和配置。本演示虽然主要聚焦在日志,但我们依然保留了之前使用的分布式跟踪的配置,保证链路信息的传递。
propagators 用于配置跟踪信息在上下文的传递方式。
sampler 采样器
env 和 [language].env 添加到容器的环境变量
针对 Java 应用,通过环境变量 OTEL_EXPORTER_OTLP_ENDPOINT 设置 oltp 的端点,以及 OTEL_LOGS_EXPORTER 设置应用
日志的输出方式
oltp。也可以设置为 logging、oltp,将日志输出到控制台以及 oltp 端点。
[code]kubectl apply -f -
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
水军大提督
金牌会员
这个人很懒什么都没写!
楼主热帖
MySQL高可用架构搭建实战
让软件飞——“X+”技术揭秘 ...
哈希算法-SHA-256-过程详解
camunda工作流实战项目(表单设计器+流 ...
可观测性和传统监控的三大区别 ...
Could not resolve host: mirrorlist.c ...
Docker(11)-- DockerFile详解
TP 判断IP是否在国内
DQL语句(一) -----简单select查询 ...
SQL99相较于SQL92在多表查询时的新语法 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表