使用 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.0
    container_name: loki
    user: "0:0"
    ports:
      - "3100:3100"
    volumes:
      - ./loki_config.yaml:/etc/loki/loki_config.yaml:ro
      - /data/loki:/data/loki
    command: -config.file=/etc/loki/loki_config.yaml
    restart: 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.0
    container_name: promtail
    ports:
      - "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.yml
    restart: unless-stopped

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

server:

http_listen_port: 9080

grpc_listen_port: 0

positions:

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

clients:

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. 日志文件未被监控

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

健康检查

相关服务

注意事项

  1. 确保日志目录 /data/shao_jun/ziyuanku_data/aishare/logs 存在且有读取权限
  2. Promtail 会自动监控该目录下所有 .log 文件
  3. 配置文件修改后需要重启服务生效
  4. 使用 docker-compose down && docker-compose up -d 完全重启服务
相关推荐
laoliu199635 分钟前
Odoo 18企业版源码 包含 部署教程
运维·服务器
守城小轩1 小时前
基于Chrome140的Quora账号自动化(关键词浏览)——运行脚本(三)
运维·自动化·chrome devtools·指纹浏览器·浏览器开发
未来之窗软件服务1 小时前
幽冥大陆(五十五)ASR SetThreadInformation C语言识别到自动化软件
运维·自动化·asr·东方仙盟·操作系统级别错误
开开心心就好1 小时前
免费卸载工具,可清理残留批量管理启动项
linux·运维·服务器·windows·随机森林·pdf·1024程序员节
Lbwnb丶1 小时前
检测服务器是否是虚拟化,如KVM,VM等
linux·运维·服务器
老猿讲编程1 小时前
【车载信息安全系列4】基于Linux中UIO的HSE应用实现
linux·运维·服务器
鸡吃丸子2 小时前
初识Docker
运维·前端·docker·容器
wanhengidc2 小时前
巨椰 云手机 云游戏稳定运行
运维·服务器·arm开发·游戏·云计算
林义满2 小时前
大促零宕机背后的运维升级:长三角中小跨境电商的架构优化实践
大数据·运维·架构
linweidong3 小时前
顺丰运维面试题及参考答案
运维·nginx·容器·ansible·运维开发·防火墙·python面试