使用 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 完全重启服务
相关推荐
颜大哦15 分钟前
linux安装mysql
linux·运维·mysql·adb
学习3人组38 分钟前
Node.js 网站服务器开发
运维·服务器·node.js
来知晓1 小时前
Linux:WSL内存空间管理之清完内存C盘可用空间不增问题解决
linux·运维·服务器
wanhengidc2 小时前
云手机能够流畅运行大型游戏吗
运维·服务器·游戏·智能手机·云计算
繁华的地方不一定留下你的脚印3 小时前
ubuntu18.04版本配置静态IP并且可以上网(解决配置静态IP不能额上网的问题)
运维·服务器
业余幻想家4 小时前
Windows10/Windows11家庭版系统关闭自动更新
运维·windows
努力进修4 小时前
跨地域传文件太麻烦?Nginx+cpolar 让本地服务直接公网访问
运维·nginx·cpolar
Qayrup4 小时前
docker 搭建私有仓库,推送并拉取
运维·docker·容器
闪耀星星4 小时前
debian elctron-builder
运维·debian