You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grafana连接Loki报错:数据源已连接但未收到标签的排查问询

问题

尝试通过Docker日志驱动将日志发送至Loki,并使用Grafana可视化,连接Loki时Grafana UI报错:

Data source connected, but no labels received. Verify that Loki and Promtail is configured properly.

未使用Promtail,依赖Loki Docker插件,各服务日志配置(compose.yml):

logging:
  driver: loki
  options:
    loki-url: 'http://loki:3100/loki/api/v1/push'

Loki容器定义:

loki:
hostname: loki
image: grafana/loki:2.8.3
ports:
  - "3100:3100"
command: -config.file=/etc/loki/loki-config.yaml
volumes:
  - ./volumes/loki/etc:/etc/loki

Loki配置文件(loki-config.yml):

auth_enabled: false

server:
  http_listen_port: 3100
  log_level: info

ingester:
  lifecycler:
    address: 127.0.0.1
    ring:
      kvstore:
        store: inmemory
      replication_factor: 1
    final_sleep: 0s
  chunk_idle_period: 5m
  chunk_retain_period: 30s
  wal:
    dir: /tmp/loki/wal

schema_config:
  configs:
    - from: 2018-04-15
      store: boltdb
      object_store: filesystem
      schema: v9
      index:
        prefix: index_
        period: 168h

storage_config:
  boltdb:
    directory: /tmp/loki/index

  filesystem:
    directory: /tmp/loki/chunks

limits_config:
  enforce_metric_name: false
  reject_old_samples: true
  reject_old_samples_max_age: 168h

chunk_store_config:
  max_look_back_period: 0

table_manager:
  chunk_tables_provisioning:
    inactive_read_throughput: 0
    inactive_write_throughput: 0
    provisioned_read_throughput: 0
    provisioned_write_throughput: 0
  index_tables_provisioning:
    inactive_read_throughput: 0
    inactive_write_throughput: 0
    provisioned_read_throughput: 0
    provisioned_write_throughput: 0
  retention_deletes_enabled: false
  retention_period: 0

疑问:是否是ingester的IP配置错误?产生日志的服务位于另一台虚拟机。

排查与解决

1. 修正Ingester监听地址

你的ingester.lifecycler.address配置为127.0.0.1,这会导致Loki的ingester仅监听容器内部回环地址,外部容器或跨虚拟机的服务无法与它通信。将其改为0.0.0.0,让ingester监听所有可用网络接口:

ingester:
  lifecycler:
    address: 0.0.0.0
    # 其余配置保持不变

2. 调整跨虚拟机的Loki推送地址

产生日志的服务在另一台虚拟机,loki-url中的http://loki:3100仅能在同一Docker网络内解析,跨虚拟机时需要替换为Loki所在虚拟机的内网/公网IP或可访问的主机名:

logging:
  driver: loki
  options:
    loki-url: 'http://<LOKI_VM_IP>:3100/loki/api/v1/push'

将<LOKI_VM_IP>替换为Loki所在虚拟机的实际IP地址。

3. 验证网络连通性

  • 确保Loki所在虚拟机的防火墙/安全组放行3100端口,允许日志来源虚拟机的IP访问。
  • 在日志来源虚拟机上执行curl命令测试推送:
curl -X POST http://<LOKI_VM_IP>:3100/loki/api/v1/push \
  -H "Content-Type: application/json" \
  -d '{"streams":[{"stream":{"job":"test"},"values":[["'$(date +%s000)'","test log entry"]]}]}'

4. 检查Loki日志与数据

  • 查看Loki容器日志,确认是否有接收日志的报错:
docker logs loki
  • 在Grafana中尝试查询测试日志:输入{job="test"},如果能看到数据,说明推送链路正常。

5. 确认Docker Loki插件安装

确保日志来源虚拟机上已正确安装Loki Docker插件:

docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions

内容的提问来源于stack exchange,提问作者paul445

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 20:35:05