日志监控工具openobserve使用案例

引言
分享一个日志监控工具,openobserve(简称 o2),它是一个云原生可观察性平台,专为日志、指标、跟踪、分析 而构建,旨在以 PB 级规模运行。与 Elasticsearch 不同,OpenObserve 不需要了解和调整大量设置,他能在 2 分钟内启动并运行,极大地降低了学习成本。下面通过一个使用案例来分享o2的使用。

工作原理
首先是我们的服务产生日志,然后使用 filebeat 将日志解析并发送到 o2 平台,最后 o2 平台对日志进行可视化展示、分析等等。

需要的组件

  1. 从工作原理即可看出,首先要有日志,这里我是使用 loguru 来记录日志,相关使用教程可以参考 loguru
  2. 有了日志后就需要通过 filebeat 来解析和发送日志到 o2,当然你也可以使用其他的工具来发送,比如 FluentBit、Fluentd、Vector、Logstash等等,更多内容参考官网。
  3. 最后就是登录 o2,进行日志的分析和可视化等等。

实践案例

  1. 记录的日志以及格式,这里以我自己记录的一些日志(app.log)为例:
2025-03-12 15:34:56.654 | INFO | order_id=67ec8516-f8d5-11ef-bba1-3cecef05179e | func=services.transcribe.transcribe | Transcription engine received the request: endpoint=/transcribe
2025-03-12 15:35:56.655 | WARNING | order_id=67ec8516-f8d5-11ef-bba1-3cecef05179e | func=services.transcribe.transcribe | Transcription engine received the request: endpoint=/transcribe
2025-03-12 15:36:56.655 | ERROR | order_id=67ec8516-f8d5-11ef-bba1-3cecef05179e | func=services.transcribe.transcribe | Transcription engine received the request: endpoint=/transcribe
2025-03-12 15:37:56.655 | CRITICAL | order_id=67ec8516-f8d5-11ef-bba1-3cecef05179e | func=services.transcribe.transcribe | Transcription engine received the request: endpoint=/transcribe
  1. filebeat 的安装和使用
    因为需要用到 filebeat,所以先简单讲一下它的安装和使用。
1.下载
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.17.3-linux-x86_64.tar.gz

2.解压
tar -xvf filebeat-8.17.3-linux-x86_64.tar.gz

3. 配置filebeat
cd filebeat-8.17.3-linux-x86_64
vim my_filebeat.yml
"""
my_filebeat.yml 内容如下
setup.ilm.enabled: false
setup.template.enabled: false

# 指定独立的路径,避免冲突。如果需要同时开启多个 filebeat 服务,就需要为每个服务设置数据保存目录,这个目录下存贮当前服务已经传送的数据等信息,便于管理不同的filebeat服务,也避免重启服务后重复传送日志
#path.data: /data/chenkj/filebeat-8.17.3-linux-x86_64/data2   # 数据路径改为 data2
#path.logs: /data/chenkj/filebeat-8.17.3-linux-x86_64/logs2  # 日志路径改为 logs2

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - ../paths/to/your/logs/app.log
  processors:  # 这里需要对日志进行解析,具体的日志格式参考上面
  - dissect:
      tokenizer: '%{my_timestamp} | %{level} | speaker_id=%{speaker_id} | func=%{func} | %{msg}'
      field: "message"
      target_prefix: ""
  - timestamp:
      field: my_timestamp
        # target_field: '@timestamp'
      layouts:
        #- '2006-01-02T15:04:05.999'
        #- '2006-01-02 15:04:05,999'
        - '2006-01-02 15:04:05.999'
      test:
        #- '2006-01-02T15:04:05.999'
        #- '2006-01-02 15:04:05,999'
        - '2006-01-02 15:04:05.999'
      timezone: 'Asia/Shanghai'
      
output.elasticsearch:
  hosts: ["http://localhost:5080"]  # 开启 o2 的服务器以及端口
  timeout: 10
  path: "/api/default/"
  index: "log"  # 日志的index,取不同的index可以对不同的日志进行分组管理
  username: "123@gmail.com"
  password: "123456"
"""

4. 启动 filebeat
./filebeat -e -c my_filebeat.yml
  1. o2 的安装和使用
    这里有很多方式可以安装和启动 o2,这里以 docker 启动进行讲解,非常简单,一个命令就能把 o2 服务run起来。其他方式参考这里
sudo docker run -d \
      --name openobserve \
      -p 5080:5080 \
      -e ZO_ROOT_USER_EMAIL="123@gmail.com" \
      -e ZO_ROOT_USER_PASSWORD="123456" \
      public.ecr.aws/zinclabs/openobserve:latest
  1. 查看和分析日志
    现在 o2 服务已经 run 起来了,filebeat 也在实时监控日志并发送日志到 o2,这个时候我们就可以打开浏览器,访问 o2 服务。以我的这个例子来说,就是访问 “http://localhost:5080” 这个地址。当然,你也可以把日志发送到官方提供的 OpenObserve Cloud 平台,这样我们就不用自己开启 o2 服务了。

下面展示一下 o2 的服务界面:
在这里插入图片描述

总结
以上就是全部的内容了,介绍的比较简单,也是为了方便入门,后面更多的功能还需要进一步探索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值