当前位置: 首页 > news >正文

使用 Loki + Promtail + Grafana搭建日志系统

环境,服务器ip:192.168.140.2

工程目录如下:

第一步:搭建loki

1)创建目录:

mkdir -p /data/lai/Loki_Grafana_Promtail/loki

1)在loki文件夹内创建一个docker-compose.yaml文件

version: "3.8"services:loki:image: grafana/loki:2.9.0container_name: lokiuser: "0:0"ports:- "3100:3100"volumes:- ./loki_config.yaml:/etc/loki/loki_config.yaml:ro- /data/loki:/data/lokicommand: -config.file=/etc/loki/loki_config.yamlrestart: unless-stopped

2)创建一个loki_config.yaml文件

auth_enabled: false

server:

  http_listen_port: 3100

  grpc_listen_port: 9096

common:

  instance_addr: 127.0.0.1

  path_prefix: /data/loki

  storage:

    filesystem:

      chunks_directory: /data/loki/chunks

      rules_directory: /data/loki/rules

  replication_factor: 1

  ring:

    kvstore:

      store: inmemory

schema_config:

  configs:

    - from: 2020-10-24

      store: boltdb-shipper

      object_store: filesystem

      schema: v11

      index:

        prefix: index_

        period: 24h

ruler:

  alertmanager_url: http://localhost:9093

3)创建loki所需的目录,并且启动

# 创建所需目录并设置正确权限

sudo mkdir -p /data/loki/{chunks,rules,rules-temp}

sudo chown -R 10001:10001 /data/loki

sudo chmod -R 775 /data/loki

# 启动

docker-compose down && docker-compose up -d

第二步:搭建promtail

1)创建一个promtail文件夹,在创建docker-compose.yaml文件

version: "3"services:promtail:user: "0:0"image: grafana/promtail:2.9.0container_name: promtailports:- "9080:9080"volumes:- /data/lai/Loki_Grafana_Promtail/promtail/promtail_config.yaml:/etc/promtail/config.yml:ro- /data/shao_jun/ziyuanku_data/aishare/logs:/var/log/app:ro- /data/lai/Loki_Grafana_Promtail/promtail/:/promtail_data/command: -config.file=/etc/promtail/config.ymlrestart: unless-stopped

2)创建一个promtail_config.yaml配置文件

server:

  http_listen_port: 9080

  grpc_listen_port: 0

positions:

  filename: /promtail_data/positions.yaml     #容器内的positions.yaml文件路径

clients:

- url: http://192.168.140.2:3100/loki/api/v1/push    #推送日志流到Loki中的api

scrape_configs:

- job_name: inferservice

  static_configs:

  - targets:

      - localhost

    labels:

      job: inferservice

      __path__: /var/log/app/*.log  #容器内的日志文件路径

3)启动

docker-compose up -d

第三步:创建一个grafana文件夹,在grafana文件夹中创建docker-compose.yaml文件

version: "3.8"

services:

  grafana:

    image: grafana/grafana:9.2.10

    container_name: grafana

    ports:

      - "3000:3000"

    restart: unless-stopped

    environment:

      - GF_SECURITY_ADMIN_PASSWORD=admin

    volumes:

      - /data/grafana:/var/lib/grafana

    user: "0:0"

2)创建grafana所需要的目录

# 创建grafana数据目录

sudo mkdir -p /data/grafana

# 设置目录权限

sudo chmod -R 775 /data/grafana

# 设置目录所有者

sudo chown -R 10001:10001 /data/grafana

3)启动

# 启动

docker-compose down && docker-compose up -d

附录:

1、对promtail的解读

Promtail 启动说明

Promtail 是 Grafana Loki 的日志收集代理,负责从日志文件中收集日志并发送到 Loki 服务器。

配置文件说明

promtail_config.yaml

  • 日志文件路径/var/log/app/*.log(容器内路径)
  • 目标服务器:Loki 服务器 http://192.168.140.2:3100/loki/api/v1/push
  • 端口监控:9080(用于健康检查和指标)

docker-compose.yml

  • 镜像版本:grafana/promtail:2.9.0
  • 容器名称:promtail
  • 端口映射:9080:9080
  • 挂载卷
    • 配置文件:promtail_config.yaml → /etc/promtail/config.yml
    • 日志目录:/data/shao_jun/ziyuanku_data/aishare/logs → /var/log/app
    • 数据目录:./ → /promtail_data/

启动步骤

1. 启动 Promtail 服务

cd /data/lai/Loki_Grafana_Promtail/promtail
docker-compose up -d

2. 检查服务状态

# 检查容器状态
docker ps | grep promtail# 查看容器日志
docker logs promtail --tail 20# 检查目标状态
curl http://192.168.140.2:9080/targets

3. 验证日志收集

# 检查日志文件是否被正确监控
docker exec promtail ls -la /var/log/app/# 查看 Promtail 监控的目标文件
docker logs promtail | grep "Adding target"

服务管理

停止服务

cd /data/lai/Loki_Grafana_Promtail/promtail
docker-compose down

重启服务

cd /data/lai/Loki_Grafana_Promtail/promtail
docker-compose restart

查看实时日志

docker logs promtail -f

故障排除

常见问题

  1. 目标状态显示 0/1 ready

    • 检查日志文件路径是否正确
    • 确认日志文件存在且有读取权限
    • 查看 Promtail 日志获取详细信息
  2. 无法连接到 Loki 服务器

    • 确认 Loki 服务正在运行
    • 检查网络连接和防火墙设置
  3. 日志文件未被监控

    • 确认日志文件路径配置正确
    • 检查文件通配符模式是否匹配

健康检查

  • 健康检查地址:http://192.168.140.2:9080/ready
  • 指标地址:http://192.168.140.2:9080/metrics

相关服务

  • Loki 服务器:http://192.168.140.2:3100
  • Grafana 界面:http://192.168.140.2:3000

注意事项

  1. 确保日志目录 /data/shao_jun/ziyuanku_data/aishare/logs 存在且有读取权限
  2. Promtail 会自动监控该目录下所有 .log 文件
  3. 配置文件修改后需要重启服务生效
  4. 使用 docker-compose down && docker-compose up -d 完全重启服务
http://www.dtcms.com/a/495401.html

相关文章:

  • PySide 查找功能大杂烩 基于文本编辑器(QPlainTextEdit)
  • Vue3 路由配置和使用与讲解(超级详细)
  • 东盟建设集团重庆工程有限公司网站500强企业排名(2022最新名单)
  • 初次使用基于K3S的大数据平台
  • 极简入门Zookeeper
  • 国产工业软件:制造强国的“破局”之路
  • 从重机展到全球市场:数字化助力装备制造企业实现规范化管理
  • 半导体制造工艺基本认识 二 氧化
  • MongoDB 是关系型数据库吗?
  • 织梦dedecms网站内容页wordpress rss导入
  • RAG各模块联合优化思路:多智能体协作建模-MMOA-RAG浅尝
  • 【小白笔记】KNN 核心预测函数 _predict_one 的过程
  • 营销人职业成长路径:从执行到战略的能力进阶与知识体系构建
  • Elasticsearch 推理 API 增加了开放的可定制服务
  • 做电影网站还能赚钱ace wordpress
  • 建设农家书屋官方网站临沂设计网站的公司
  • 10.queue的模拟实现
  • 有多少网站可以推广业务阿里云个人网站建设
  • 【知识点总结】Vue2 与 Vue2 区别
  • 【CV】神经网络中哪些参数需要被学习?
  • Spring两大漏洞可导致泄露敏感信息及安全防护绕过(CVE-2025-41253/41254)
  • 了解一个文件签名验证工具——sigverif
  • 河北建筑网站江小白网络营销案例
  • 张家口网站建设开发网站开发案例教程
  • 【NestJS】class-transformer什么用
  • 【word多文档docx合并】
  • Endnote | word中加载项消失不见,如何处理?
  • 聊聊 Unity(小白专享、C# 小程序 之 图片播放器)
  • 查询个人房产信息网站查看wordpress密码破解
  • 做网站用什么框架dede淘宝客网站