使用 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 完全重启服务
相关推荐
Tipriest_24 分钟前
Debian 系与 RPM 系常用软件包查询命令/信息/列出已安装包/模糊查找等命令
运维·debian·rpm
木子.李3477 小时前
ssh连接远程服务器相关总结
运维·服务器·ssh
晚风吹人醒.8 小时前
SSH远程管理及访问控制
linux·运维·ssh·scp·xshell·访问控制·远程管理
necessary65310 小时前
使用Clion查看linux环境中的PG源码
linux·运维·服务器
江湖有缘11 小时前
Jump个人仪表盘Docker化部署教程:从0到 搭建专属导航页
运维·docker·容器
FL162386312912 小时前
win11+WSL+Ubuntu-xrdp+远程桌面闪退+黑屏闪退解决
linux·运维·ubuntu
AOwhisky12 小时前
Linux逻辑卷管理:从“固定隔间”到“弹性存储池”的智慧
linux·运维·服务器
05大叔13 小时前
大事件Day02
运维·服务器
C Yu小白14 小时前
Linux系统调用与文件操作详解
linux·运维·服务器
ZFB000114 小时前
【麒麟桌面系统】V10-SP1 2503 系统知识——常见用户组简介
linux·运维·kylin