【技术底稿 12】内网统一日志系统 Loki + Promtail 全流程部署(对接 Grafana,监控日志一体化)
2026/5/2 3:16:24 网站建设 项目流程

前言

【技术底稿 10】Ollama 部署冲上运维榜第二,【技术底稿 11】私有仓库也顺利发布。作为 DevOps 平台的核心环节,统一日志系统是运维的刚需:业务、监控、AI 服务多容器环境下,日志分散、排查问题效率极低。今天给大家带来Loki + Promtail + Grafana全流程内网部署方案,实现:

  • 全容器日志统一采集、存储、可视化
  • 对接 Grafana,一键查询所有服务日志
  • 纯内网部署,无外网依赖
  • 为后续多节点集群、告警大屏做铺垫

一、环境说明

  • 服务器:HP 服务器(IP:192.168.18.100)
  • 操作系统:Ubuntu 22.04
  • 部署方式:Docker + Docker Compose
  • 版本:Loki 2.9.3、Promtail 2.9.3(稳定生产级)
  • 私有仓库地址:192.168.18.100:5000
  • 部署目录:/home/xyy/myapp
  • 适用场景:内网多容器环境、日志统一管理、Grafana 可视化

二、部署架构

Loki(3100 端口) ← Promtail(日志采集)

  • 对接 Grafana(3000 端口),实现日志可视化
  • 所有业务 / 监控 / AI 容器日志统一采集

三、Docker Compose 配置文件

文件名:docker-compose.yml(业务侧,已部署日志服务)

yaml

version: '3.5' services: loki: container_name: loki image: 192.168.18.100:5000/grafana/loki:2.9.3 command: -config.file=/etc/loki/local-config.yaml ports: - "3100:3100" volumes: - ./loki-config.yaml:/etc/loki/local-config.yaml - ./volumes/loki:/tmp/loki restart: always promtail: container_name: promtail image: 192.168.18.100:5000/grafana/promtail:2.9.3 command: -config.file=/etc/promtail/config.yml volumes: - ./promtail-config.yml:/etc/promtail/config.yml - /var/log:/var/log - /var/lib/docker/containers:/var/lib/docker/containers restart: always depends_on: - loki

配套配置文件

loki-config.yaml

yaml

auth_enabled: false server: http_listen_port: 3100 ingester: lifecycler: address: 127.0.0.1 ring: kvstore: store: inmemory final_sleep: 0s chunk_idle_period: 5m chunk_retain_period: 30s schema_config: configs: - from: 2020-05-15 store: boltdb object_store: filesystem schema: v11 index: prefix: index_ period: 168h storage_config: boltdb: directory: /tmp/loki/index filesystem: directory: /tmp/loki/chunks limits_config: enforce_metric_name: false reject_old_samples: true reject_old_samples_max_age: 168h chunk_store_config: max_look_back_period: 0s table_manager: retention_deletes_enabled: false retention_period: 0s

promtail-config.yml

yaml

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: system static_configs: - targets: - localhost labels: job: varlogs __path__: /var/log/*log - job_name: containers static_configs: - targets: - localhost labels: job: containers __path__: /var/lib/docker/containers/*/*log

四、完整部署流程(可直接复制执行)

1. 镜像导入与私有仓库推送

bash

运行

# 1. 加载镜像 docker load -i loki.tar docker load -i promtail.tar # 2. 打标签 docker tag grafana/loki:2.9.3 192.168.18.100:5000/grafana/loki:2.9.3 docker tag grafana/promtail:2.9.3 192.168.18.100:5000/grafana/promtail:2.9.3 # 3. 推送至私有仓库 docker push 192.168.18.100:5000/grafana/loki:2.9.3 docker push 192.168.18.100:5000/grafana/promtail:2.9.3

2. 一键启动命令

bash

运行

# 进入部署目录 cd /home/xyy/myapp # 启动服务 docker-compose up -d # 查看运行状态 docker ps | grep loki

3. Grafana 对接 Loki 配置

  1. 登录 Grafana:http://192.168.18.100:3000
  2. 添加数据源 → 选择Loki
  3. 填写 URL:http://loki:3100
  4. 点击「保存 & 测试」,连接成功


五、端口清单

表格

端口用途
3100Loki 日志存储服务
9080Promtail 采集服务(内部端口,无需外网映射)

六、DevOps 运维命令

bash

运行

# 查看Loki日志 docker logs -f loki # 查看Promtail日志 docker logs -f promtail # 重启服务 docker-compose restart loki promtail # Grafana日志查询 curl http://192.168.18.100:3100/loki/api/v1/label/job/values

七、常见问题与解决方案

7.1 Promtail 无法采集容器日志

原因:未挂载 Docker 容器日志目录。解决:在 Promtail 的 volumes 中添加:

yaml

- /var/lib/docker/containers:/var/lib/docker/containers

7.2 Grafana 无法连接 Loki

解决

  • 确保 Loki 与 Grafana 在同一网络,使用容器名loki:3100连接
  • 取消 SSL,使用 HTTP 访问

7.3 Docker 网络 DNS 解析失败

解决:在daemon.json中配置 DNS,或使用容器名互通。


八、项目价值(DevOps 亮点)

  • 全容器日志统一采集,彻底告别docker logs逐个排查
  • 对接 Grafana,监控 + 日志一体化,运维效率翻倍
  • 纯内网部署,无外网依赖,适合生产环境
  • 基础设施即代码,一键部署、可迁移、可扩容
  • 为后续多节点集群、告警大屏、AI 服务日志管理做铺垫
  • 完美承接个人 DevOps 平台与 AI 项目「商助慧」

九、总结

统一日志系统是企业级 DevOps 平台的核心运维能力,尤其是在多容器、多服务的复杂环境中,其价值不言而喻。本文基于真实生产环境,提供了一套可直接复制执行的 Loki+Promtail 部署方案,帮助开发者快速搭建日志统一管理体系,提升运维效率,降低排查成本。

后续将持续更新「技术底稿」系列,包括 Milvus 向量库、多节点集群等 DevOps 全流程实战,欢迎持续关注!


📚 系列导航:

【人生底稿 01】|农村少年(1995–2005)

【技术底稿】01:37岁老码农,用4台机器搭了套个人DevOps平台

【产品底稿01】37 岁 Java 老码农,用 Java 搭了个 AI 写作助手,把自己 14 年技术文章全喂给了 AI!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询