当前位置: 首页 > news >正文

OpenObserve日志分析平台

一、概述

OpenObserve 是一款开源的云原生可观测性平台,专为日志、指标和追踪数据分析设计,相较于Elasticsearch,其存储成本降低了约140倍,支持PB级数据处理,并提供高性能分析与易用部署方案。

包含的组件如下:

562987-20250302112645278-352672793

为啥要用OpenObserve呢?因为接触到项目,资源有限,部署elk太耗资源了。所以需要一个支持链路追踪,同时能收集java日志的。OpenObserve就可以完美实现了。

看一下效果图

 

链路追踪

image

 

 java日志

image

 k8s pod监控

image

二、安装

这里使用k8s安装,准备以下yaml文件

 

secret.yaml

apiVersion: v1
kind: Secret
metadata:name: oo-adminnamespace: default
type: Opaque
data:# echo -n 'abcd@1234' | base64 -w0password: YWJjZEAxMjM0

 说明:

这里密码使用base64加密,使用上面的命令,就可以得到加密字符串。

 

StatefulSet.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:name: openobservenamespace: default
spec:serviceName: openobservereplicas: 1selector:matchLabels:app: openobservetemplate:metadata:labels:app: openobservespec:containers:- name: openobserveimage: public.ecr.aws/zinclabs/openobserve:latestports:- containerPort: 5080name: httpenv:- name: ZO_COMPACT_ENABLEDvalue: "true"- name: ZO_COMPACT_INTERVALvalue: "3600"            # 秒,1 小时检查一次- name: ZO_COMPACT_DATA_RETENTION_DAYSvalue: "30"              # 保留 30- name: ZO_ROOT_USER_EMAILvalue: "root@example.com"- name: ZO_ROOT_USER_PASSWORDvalueFrom:secretKeyRef:name: oo-adminkey: password- name: ZO_DATA_DIRvalue: "/data"resources:limits:cpu: 1000mmemory: 2Girequests:cpu: 250mmemory: 500MivolumeMounts:- name: datamountPath: /datavolumes:- name: datapersistentVolumeClaim:claimName: pvc-dev

注意:这里数据是挂载在pvc的/data目录。 pvc云平台已经创建好了,这里直接使用。 如果你没有pvc,请手动创建好。

注意:挂载到数据目录/data,首次加载后,密码会写入到文件,之后就不能修改密码了。如果要修改,只能清空/data目录,重新加载即可。

这里设定的是OpenObserve登录用户名为root@example.com,密码就是上面的abcd@1234,数据保留30天。

 

service.yaml

apiVersion: v1
kind: Service
metadata:name: openobservenamespace: default
spec:type: NodePortports:- port: 5080targetPort: 5080name: httpselector:app: openobserve

 

 启动OpenObserve

kubectl apply -f secret.yaml
kubectl apply -f service.yaml
kubectl apply -f StatefulSet.yaml

等待几分钟,查看pod是否运行正常

# kubectl get pods
NAME            READY   STATUS    RESTARTS   AGE
openobserve-0   1/1     Running   0          162m

 

使用ingress发布域名访问,这里直接云平台,点点点就完成了。

访问页面:http://域名

输入用户名和密码

 

image

 登录之后,默认是空数据,需要进行接入。

三、java程序接入

下载agent,访问github,下载最新版本

https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases

启动命令模板

java -javaagent:./opentelemetry-javaagent.jar \-Dotel.exporter.otlp.endpoint=http://<OpenObserve_IP>:5080/api/default \-Dotel.exporter.otlp.protocol=http/protobuf \-Dotel.exporter.otlp.compression=gzip \-Dotel.exporter.otlp.headers="Authorization=Basic <base64(用户:TOKEN)>,stream-name=<你的流名>" \-Dotel.service.name=my-java-app \-jar your-app.jar

参数说明

  • <base64(用户:TOKEN)>:例如 root@example.com:abcd@1234 → cm9vdEBleGFtcGxlLmNvbTphYmNkQDEyMzQ=
  • stream-name:OpenObserve 里用来区分业务的数据流,可随意起,查询时会当成表名。

 

计算base64,使用以下命令

echo -n 'root@example.com:abcd@1234' | base64 -w0

 

以上命令太长了,可以直接通过k8s环境变量注入进去

- name: OTEL_EXPORTER_OTLP_ENDPOINTvalue: "http://openobserve.default:5080/api/default"
- name: OTEL_EXPORTER_OTLP_PROTOCOLvalue: "http/protobuf"
- name: OTEL_EXPORTER_OTLP_COMPRESSIONvalue: "gzip"
- name: OTEL_EXPORTER_OTLP_HEADERSvalue: "Authorization=Basic cm9vdEBleGFtcGxlLmNvbTphYmNkQDEyMzQ=,stream-name=你的应用名"
- name: OTEL_SERVICE_NAMEvalue: "你的应用名"
- name: OTEL_LOGS_EXPORTERvalue: "otlp"
- name: OTEL_METRICS_EXPORTERvalue: "otlp"

然后java的dockerfile,启动命令为:

java $JAVA_OPTS -javaagent:/opentelemetry-javaagent.jar -jar /app.jar

 

等应用都发布完成之后,就可以看到日志了

image

 

点击数据流,这里可以看到你接入了多少应用

image

三、数据源Kubernetes

点击数据源,选择Kubernetes

image

 以上命令,都是要执行的,但是缺少helm命令

安装helm,使用官方脚本

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

 

剩下就是,将以上页面出现的所有命令,都执行一遍,就可以了

最后一步Install OpenObserve collector,这里会根据你安装OpenObserve设定的token,自动生成安装命令,直接复制粘贴执行即可。

 

四、仪表盘

默认仪表盘是空的,需要手动导入。

官方仪表盘已经放到github了,链接:https://github.com/openobserve/dashboards

 

image

这里有N多仪表盘,但是目前我只需要k8s的,进入文件夹Kubernetes(openobserve-collector)

image

 将这里面的8个json文件,下载下来。

 

点击导入

image

 点击添加

image

 输入k8s

image

上传json文件,选择k8s文件夹,点击导入

image

 导入完成后,可以看到8个

image

 点击第7个,刷新数据,效果如下:

image

 

 

http://www.zskr.cn/news/49502.html

相关文章:

  • 鸿蒙应用开发之ArkUI框架基础布局(二)
  • JS的数组操作
  • 开启pg_trgm扩展
  • AntV X6 实现鼠标右键框选 - cola
  • 网络安全主动防御技术与应用 - 指南
  • IDEA开发过程中Module的Compiler Output和Artifact的关系
  • IDEA开发过程中Artifact和Maven有什么区别
  • 样式,草稿
  • 6、表联结 JOIN
  • 易基因:郑州大学第一附属医院孙同文教授团队利用表观多组学揭示二甲双胍通过DNA甲基化和羟甲基化双向调控减轻肝损伤的保护机制|项目文章
  • kettle 从excel中读取需要同步的表到另一个数据库中
  • 2025 年 11 月断桥铝窗/门/系统窗/门窗/窗户厂家推荐排行榜,专业定制与节能性能口碑之选
  • 是的
  • 开源项目,全网音乐免费听,太牛逼啦,XiaoMusic 无限点歌机~~~~
  • 手把手教你部署智能合约 - all-in
  • 纯HTML + CSS + JS 实现Popup弹窗
  • 2025年轴承钢砂批发厂家权威推荐榜单:合金钢砂/钢砂/钢砂价格源头厂家精选
  • Proxmox VE9.0优化-删除订阅窗
  • Springboot病人跟踪治疗信息管理系统e40z6(程序+源码+数据库+调试部署+创建环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • Proxmox VE9.0优化-换源
  • 21 CFR part11
  • 代涂高者——《机器学习》总结笔记
  • 力扣 第 169 场双周赛(A~D)
  • 如何查看Windows快捷键被占用
  • 领嵌iLeadE-588边缘计算网关设备支持4路摄像头4路网口连接云平台
  • Ubuntu 20.04.1 LTS 安装 Emqx-5.8.8
  • 2025企业数字人展厅企业TOP5推荐:从技术落地到场景价值的实力标杆
  • 实用指南:Webpack 打包优化与骨架屏结合:双管齐下提升前端性能与用户体验
  • Atcoder-ABC-431-E
  • 2025年石棉橡胶板厂家联系方式推荐:品质服务双保障