使用 OpenTelemetry 采集日志推送至 GCP Cloud Logging

工具教程1天前更新 huiye
27 0

背景

本文档面向 GCP 平台,旨在帮助工程师快速安装部署 openTelemetry 工具,进行本地或者多云机器的系统日志采集并推送至 GCP cloud logging

准备步骤

一、创建GCP服务账号

说明:若已创建过服务账号并已有JSON密钥文件,此步骤可以略过

1、创建服务账号

在 IAM 和管理 的 服务账号 中创建具有 Logging AdminMonitoring Metric Writer 权限的服务账号

使用 OpenTelemetry 采集日志推送至 GCP Cloud Logging

2、创建密钥

使用 OpenTelemetry 采集日志推送至 GCP Cloud Logging
使用 OpenTelemetry 采集日志推送至 GCP Cloud Logging
使用 OpenTelemetry 采集日志推送至 GCP Cloud Logging

二、安装 otelcol-contrib

下载对应版本的 otelcol-contrib 并安装。其他版本安装包见 参考 [4]。步骤二、三 建议使用 root 用户操作

Debian/Ubuntu x86_64

wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.121.0/otelcol-contrib_0.121.0_linux_amd64.deb
sudo dpkg -i otelcol-contrib_0.121.0_linux_amd64.deb

REHL/CentOS/Rocky x86_64

wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.121.0/otelcol-contrib_0.121.0_linux_amd64.rpm
rpm -ivh otelcol-contrib_0.121.0_linux_amd64.rpm

三、设置 otelcol-contrib

1、修改 otelcol-contrib 配置文件

配置文件路径

/etc/otelcol-contrib/config.yaml

一个简单的系统日志采集配置文件参考。更多配置项见 参考[1]

receivers:
  filelog:
    include:
      - /var/log/1.log      #指定监听的日志路径,可用通配符
      - /var/log/2.log      #可指定多个日志文件
processors:
  batch:
    send_batch_size: 1000
    timeout: 10s
  resourcedetection:
    detectors: [system, env]
    system:
      hostname_sources: [os]

exporters:
  googlecloud:
    log:
      default_log_name: rocky-log-test  #日志名称可自定义,方便在cloudlogging里查询

service:
  pipelines:
    logs:
      receivers: [filelog]
      processors: [resourcedetection, batch]
      exporters: [googlecloud]

2、设置 otelcol-contrib systemd服务

将步骤一里申请的密钥上传至服务器,并设置 otelcol-contrib 服务

vim /usr/lib/systemd/system/otelcol-contrib.service

在 [Service] 下将 User 和 Group 修改为 root ,再添加一行 Environment,指定密钥文件路径,如下所示

[Unit]
Description=OpenTelemetry Collector Contrib
After=network.target

[Service]
EnvironmentFile=/etc/otelcol-contrib/otelcol-contrib.conf
ExecStart=/usr/bin/otelcol-contrib $OTELCOL_OPTIONS
KillMode=mixed
Restart=on-failure
Type=simple
User=root
Group=root
Environment="GOOGLE_APPLICATION_CREDENTIALS=/path/xxxxx.json"

[Install]
WantedBy=multi-user.target

修改完成后重载 systemd

systemctl daemon-reload

3、启动 otelcol-contrib

systemctl start otelcol-contrib

四、Cloud Logging 上查看日志

在 cloud logging 中可使用设置的 default_log_name 去查询对应机器的日志

使用 OpenTelemetry 采集日志推送至 GCP Cloud Logging

参考

[1] opentelemetry-collector-contrib-GoogleCloudExporter:

https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/googlecloudexporter/README.md

[2] 为本地或其他云服务提供商设置 ADC:

https://cloud.google.com/docs/authentication/set-up-adc-on-premises?hl=zh-cn

[3] opentelemetry官方文档:

https://opentelemetry.io/docs

[4] opentelemetry github下载地址:

https://github.com/open-telemetry/opentelemetry-collector-releases/releases

© 版权声明

相关文章