Grafana“数据源已连接,但未收到标签。验证 Loki 和 Promtail 是否配置正确。”

Grafana“数据源已连接,但未收到标签。验证 Loki 和 Promtail 是否配置正确。”

我正在尝试安装 loki,以便我可以读取 Grafana 上的日志,但我一直收到Data source connected, but no labels received. Verify that Loki and Promtail is configured properly.(日志中没有任何内容)。

我在 Raspberry Pi 4 8​​Gb 上为每个服务(grafana、loki、promtail)使用了 docker 镜像。

每个服务都正常运行。我可以连接到 Grafana ( localhost:3000) 并查看 node_exporter 数据。我可以连接到 loki 本身并查看指标 ( localhost:3100/metrics),我还可以连接到 promtail ( localhost:9080/targets)。

在 Grafana 上,我尝试将 loki 指向10.88.0.1:3100/metrics(因为 Grafana 是一个 docker 容器,我必须使用它10.88.0.1来连接主机),但我收到了一个新的错误Unable to fetch labels from Loki (Failed to call resource), please check the server logs for more details

以下是我从该错误日志中得到的信息:

logger=context userId=1 orgId=1 uname=admin t=2023-02-12T13:21:35.204508553Z level=error msg="Failed to call resource" error="404 page not found\n" traceID=
logger=context userId=1 orgId=1 uname=admin t=2023-02-12T13:21:35.204758623Z level=error msg="Request Completed" method=GET path=/api/datasources/2/resources/labels status=500 remote_addr=192.168.1.20 time_ms=7 duration=7.563973ms size=51 referer=http://raspberry.local:3000/datasources/edit/sgEZvn14k handler=/api/datasources/:id/resources/*

这很奇怪,因为没有/metricsGrafana 却能找到 loki。

我正在使用 ansible 来配置我的 rasp:

- name: Grafana - Run container using podman
  containers.podman.podman_container:
      name: grafana
      image: grafana/grafana-oss:latest
      state: started
      recreate: true
      restart_policy: on-failure
      ports: "3000:3000"
      memory: "2048m"
      net:
          - host
      volume:
          - "grafana-storage:/var/lib/grafana"

- name: Loki - Run container using podman
  containers.podman.podman_container:
      name: loki
      image: grafana/loki:latest
      state: started
      recreate: true
      restart_policy: on-failure
      ports: "3100:3100"
      memory: "2048m"
      net:
          - host
      volume:
          - "loki-storage:/loki"

- name: Promtail - Run container using podman
  containers.podman.podman_container:
      name: promtail
      image: grafana/promtail:latest
      state: started
      recreate: true
      restart_policy: on-failure
      ports:
          - "9080:9080"
          - "1514:1514"
      memory: "2048m"
      net:
          - host
      volume:
          - "{{ lokiData }}/promtail.yml:/etc/promtail/promtail-config.yml"
      command: -config.file=/etc/promtail/promtail-config.yml

我的 promtail 配置:

server:
    http_listen_port: 9080
    grpc_listen_port: 0

positions:
    filename: /tmp/positions.yaml

clients:
    - url: http://10.88.0.1:3100/loki/api/v1/push

scrape_configs:
    - job_name: syslog
      syslog:
        listen_address: 0.0.0.0:1514
        labels:
          job: "syslog"
      relabel_configs:
        - source_labels: ['__syslog_message_hostname']
          target_label: 'host'

我的loki配置:

auth_enabled: false

server:
  http_listen_port: 3100

common:
  path_prefix: /loki
  storage:
    filesystem:
      chunks_directory: /loki/chunks
      rules_directory: /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

我现在真的不知道该怎么办,我是 Grafana 的新手,所以也许我错过了什么。我在 Google 上搜索了错误,但没有找到任何有趣的东西(主要是配置错误)。

答案1

我忘记添加 journal/syslogs 卷了。事实上,一切都正常,但 promtail 没有数据要发送。确保读取文件positions.yaml(位于 promtail 的配置中)。

相关内容