kubernetes 如何使用loki获取容器中运行的应用程序日志

14ifxucb  于 2023-06-21  发布在  Kubernetes
关注(0)|答案(1)|浏览(211)

我知道使用loki(loki+promtail+grafana)我们可以从容器中获取日志,这个日志的位置通常是/var/log。在我的例子中,我有一个在容器内运行的应用程序,它将生成日志,这些日志将存储在配置中可用的位置。我需要用loki服务器追踪这些日志。我需要知道如何在loki服务器配置文件中添加这些应用程序日志位置沿着容器日志。

wvyml7n5

wvyml7n51#

/var/lib/docker/containers中,您将看到每个容器的容器ID。将其作为Docker卷装载到promtail中。
promtail可以使用如下配置来抓取此内容:

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://loki:3100/loki/api/v1/push

scrape_configs:
- job_name: docker
  static_configs:
  - targets:
      - localhost
    labels:
      job: docker
      __path__: /var/lib/docker/containers/*/*-json.log

我使用的docker-compose卷块看起来像:

volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./promtail-config.yaml:/etc/promtail/docker-config.yaml
      - /var/lib/docker/containers/:/var/lib/docker/containers/

相关问题