grafana loki alloy轻量级日志采集

grafana loki alloy 部署轻量级日志采集部署

我的方案如下

  • grafana docker部署版本 11.1.0
  • loki docker部署版本 3.7.4
  • alloy 实体机命令行启动推送给loki 直接下载最新版

loki.yaml 配置文件

yml 复制代码
# 第1行:禁用多租户认证。false 表示单租户模式,所有日志属于默认租户,无需在请求中携带租户ID。
auth_enabled: false

# 第2-5行:HTTP 服务器配置
server:
  http_listen_port: 3100 # Loki 服务监听的 HTTP 端口,用于接收日志推送和查询请求

# 第6-12行:通用配置,用于多个内部组件(如 ingester、querier)共享
common:
  ring:                         # 分布式一致性哈希环,用于服务发现和故障转移
    instance_addr: 127.0.0.1    # 本实例的地址,单机模式用 127.0.0.1
    kvstore:
      store: inmemory           # 环的状态存储方式,inmemory 表示存在内存中(单机适用)
  replication_factor: 1         # 数据副本数,单节点设为 1 即可
  path_prefix: /loki            # 所有数据文件(索引、块)的根目录,容器内路径

# 第13-21行:存储模式(Schema)配置,定义索引和块(chunk)的存储方式
schema_config:
  configs:
    - from: 2020-05-15          # 从此日期开始应用该 schema,可以用于 schema 升级
      store: tsdb               # 索引存储引擎,tsdb 是 Loki 最新推荐的生产级存储
      object_store: filesystem  # 块数据存储方式,filesystem 表示本地文件系统
      schema: v13               # Loki 内部存储模式的版本号,当前推荐 v13
      index:
        prefix: index_          # 索引表名前缀,实际表名会按天追加日期
        period: 24h             # 索引表按天(24小时)分割,便于过期清理

# 第22-25行:存储后端详细配置
storage_config:
  filesystem:
    directory: /loki/chunks     # 块数据存储的具体目录(在 path_prefix 下)

# 第26-29行:表管理(用于索引表的生命周期)
table_manager:
  retention_deletes_enabled: true   # 开启过期删除功能,必须设为 true 否则数据不会自动清理
  retention_period: 1440h           # 数据保留时长:1440 小时 = 60 天(符合你的需求)

docker启动loki 这里挂载了2个文件夹目录一定要给权限

shell 复制代码
# 配置文件放在config_loki下
chmod 777 /home/docker_data/loki/config_loki
chmod 777 /home/docker_data/loki/data_loki
docker run -d --name loki --restart always --memory 2g --memory-swap 2g -p 3100:3100-v /home/docker_data/loki/config_loki:/etc/loki -v /home/docker_data/loki/data_loki:/loki grafana/loki:3.7.4 -config.file=/etc/loki/loki.yaml

grafana启动

shell 复制代码
#挂载数据
chmod 777 /home/docker_data/loki/data_grafana
docker run -d --name grafana --restart always --memory=1G --memory-swap=1G -p 3000 :3000 -v /home//docker_data/loki/data_grafana:/var/lib/grafana grafana/grafana:11.1.0

config.alloy 配置文件

yml 复制代码
logging {
    level = "info"
}

// ================================================================
// 1. 日志采集:使用一个组件采集多个服务(通过多个 targets)
//    positions_file 统一管理,避免每个服务单独维护
// ================================================================
loki.source.file "logs" {
    file_match {
		enabled = true
	}
    targets = [
        { __path__ = "/home/java/Aservice/logs/*.log",   service = "Aservice"   },
        { __path__ = "/home/java/Bservice/logs/*.log", service = "Bservice" },
        { __path__ = "/home/java/Cservice/logs/*.log", service = "Cservice" },
    ]
    forward_to = [loki.process.log_pipeline.receiver]
}

// ================================================================
// 2. 日志处理流水线
// ================================================================
loki.process "log_pipeline" {
    forward_to = [loki.write.loki_server.receiver]

    // 静态标签(全局固定)
    stage.static_labels {
        values = {
            env    = "production",
            source = "alloy",
        }
    }

    // 从 targets 中已有的 service 标签传递到最终日志
    // 注意:loki.source.file 的每个 target 中可以自定义标签
    // 这里不需要额外正则提取,直接用 stage.labels 透传
    stage.labels {
        values = {
            service = "",
        }
    }
}

// ================================================================
// 3. 推送至 Loki
// ================================================================
loki.write "loki_server" {
    endpoint {
        url        = "http://目标机器loki:3100/loki/api/v1/push"
        batch_wait = "2s"
    }
}

alloy 启动命令

shell 复制代码
nohup ./alloy-linux-amd64 run --storage.path=/home/loki/data-alloy ./config.alloy > alloy.log 2>&1 &

添加数据源

http://grafanaIp:3000 默认用户名密码 admin/admin

查询日志

相关推荐
打工仔折腾 AI3 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
yyuuuzz3 小时前
跨境站点日志时区混乱的排查记录
运维·服务器·网络·云计算·aws·1024程序员节
‎ദ്ദിᵔ.˛.ᵔ₎3 小时前
关于Linux 线程局部存储的认识
linux·运维
GlobalInfo3 小时前
全球及中国风电叶片检测机器人行业研究报告(2026版):市场现状、行业前景与占有率分析
运维·网络·人工智能·机器人
隔窗听雨眠5 小时前
KingbaseES平替全链路实践:从迁移评估到可持续运维
运维
skywalk81635 小时前
登到192.168.1.5那台机器,看看今天白天,大约从早晨到晚上,都卡住了。看看因为什么卡住,为什么卡住而没有杀死那个导致卡死的进程,为什么
运维·系统·freebsd
运维行者_5 小时前
网络监控工具怎么选?从设备监控到智能运维的能力清单
运维·服务器·开发语言·网络·人工智能·支持向量机·php
晚风吹北巷7 小时前
Linux复习篇(自用)
linux·运维·服务器·1024程序员节
风哥2号7 小时前
数据库教程FGMT69:PostgreSQL运维诊断与监控分析
运维·数据库·postgresql
Harrison Ben8 小时前
(原创)SAP FI自动入账奥义:FBKP FBKA FBKF
运维·sap·sap fico·sap运维·sap 实施