繁体   English   中英

使用 Loki-Promtail 或日志驱动程序使用 Docker 容器日志到 grafana 的问题

[英]Issue using Docker Container logs to grafana using Loki-Promtail or Log Driver

我对 promtail 和 Loki 有疑问,在我的服务器中,我几乎有 10 个 docker 容器在 Prod 和 Dev 环境上运行。 由于我是 Grafana 的新手,我想抓取这 10 个 docker 容器日志,并使用 Loki 数据源在 Grafana 中查看它。

到目前为止我做了什么?

场景 1:使用 loki 和 Promtail 配置文件 Step1:登录 Grafana 云并使用新的 API 密钥创建 Loki 配置

Step2:将以下配置文件粘贴到/etc/promtail/config.yaml

 'server: # port for the healthcheck http_listen_port: 0 grpc_listen_port: 0 positions: filename: /tmp/positions.yaml client: url: https://<user>:<password>@logs-prod-us-central1.grafana.net/api/prom/push scrape_configs: - job_name: local static_configs: - targets: - localhost labels: job: mrp __path__: /var/lib/docker/containers/*/*log'

Step3:运行 docker 运行 promtail 命令

 docker run --name promtail --volume "$PWD/promtail:/etc/promtail" --volume "/var/lib/docker/containers:/var/lib/docker/containers/" grafana/promtail:master -config.file=/etc/promtail/config.yaml -log.level=debug

第 4 步:我可以查看日志,但在该文件中找不到容器名称、图像名称或任何内容 - 似乎是纯文本。 --> 你能帮我解决这个问题吗

场景 2:尝试使用日志驱动程序

第 1 步:在我的服务器中安装日志驱动程序第 2 步:在 /etc/docker/daemon.json 中的命令下方粘贴 docker

 { "debug": true, "log-driver": "loki", "log-opts": { "loki-url": "https://<user_id>:<password>@logs-us-west1.grafana.net/loki/api/v1/push", "loki-batch-size": "400" } }

第 3 步:我需要重新启动 docker 以使守护进程生效,如果这样做,我可能会丢失正在运行的容器,他们会兴奋 state --> 这是一种阻止程序

请帮我解决这个问题提前谢谢

我认为您正在寻找 Docker 提供的实时恢复选项。 理想情况下,您不应在同一台机器上同时运行 dev 和 prod 环境,但如果您有正当理由这样做,则需要在 docker 守护进程配置中添加以下设置,并尝试systemctl reload docker而不是重新启动。

{
  "live-restore": true
}

更多详细信息记录在此处: https://docs.docker.com/config/containers/live-restore/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM