收集 pod 内部本地日志集成到 Loki

一、背景

  • 背景:pod 内部存储的本地日志文件,无法使用默认 promtail 采集器收集
  • 技术应用场景:pod 内部本地日志文件采集
  • 整体思路:pod 使用边车模式 sidecar,共享 pod 内部数据,辅助容器采集数据

二、操作步骤

2.1. 共享 pod 内部本地日志数据

  • 使用 pod 边车模式共享容器内部日志数据
  • Centos 主程序:业务 pod
  • Promtail 辅助程序:采集日志
# promtail-local-logs.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: promtail-local-logs
  namespace: study
spec:
  selector:
    matchLabels:
      app: promtail-local-logs
  template:
    metadata:
      labels:
        app: promtail-local-logs
    spec:
      containers:
        # 主容器程序
        - name: centos
          image: centos
          # 假设日志写入本地文件
          command:
            - "/bin/sh"
            - "-c"
            - "for i in {1..1000}; do echo $i >> /data/number.txt; sleep 1; done"
          volumeMounts:
            - mountPath: /data
              name: data
        # 辅助容器
        - name: promtail
          image: grafana/promtail:2.5.0
          volumeMounts:
            # 共享容器日志
            - mountPath: /data
              name: data
      restartPolicy: Always
      volumes:
        # 共享宿主机目录
        - name: data
          emptyDir: {}

2.2. 配置 promtail 采集器

  • 使用 configmap 存储 promtail 配置
# promtail-config.yaml 
---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app: promtail-local-logs
  name: promtail-config
  namespace: study
data:
  config.yml: |
    server:
      http_listen_port: 9080
      grpc_listen_port: 0

    positions:
      filename: /tmp/positions.yaml

    clients:
      # loki 服务器地址,如果是在集群外部指定外部地址即可
      - url: http://loki-0.loki-headless.monitor.svc.cluster.local:3100/loki/api/v1/push

    scrape_configs:
    - job_name: local_file
      static_configs:
      - targets:
          - localhost
        # 自定义标签选择器, 可以定义多个标签
        labels:
          centos_test: number
          # 指定本地文件地址
          __path__: /data/number.txt

2.3. Promtail 指定 configmap

  • 配置文件挂载
...
        - name: promtail
          image: grafana/promtail:2.5.0
          volumeMounts:
            # 加载配置文件
            - mountPath: /etc/promtail
              name: promtail-config
            # 共享容器日志
            - mountPath: /data
              name: data
      restartPolicy: Always
      volumes:
        # promtail 配置文件
        - name: promtail-config
          configMap:
            name: promtail-config
        # 共享宿主机目录
        - name: data
          emptyDir: {}
...

2.4. 日志查询

  • 使用 promtail 配置自定义标签信息
{centos_test="number"}

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值