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

如何通过基础认证将pino-loki连接到Grafana?

解决pino-loki连接Grafana Cloud Loki的401认证问题

核心问题

你把服务账号ID当作认证用户名是错误的,Grafana Cloud Loki的基础认证规则不同:

  • 用户名必须是你的Grafana Cloud日志实例ID(不是服务账号ID)
  • 密码用你生成的服务账号令牌即可,但要确保该账号拥有日志推送权限

正确操作步骤

  1. 获取正确的实例ID
    登录Grafana Cloud控制台,进入你的grafanacloud-myapi-logs实例详情页,里面能看到一串数字格式的实例ID,这才是认证需要的用户名。

  2. 确认服务账号权限
    检查sa-1-myapi服务账号的权限配置,必须开启Logs > Push权限,没有这个权限的话,即使令牌正确也会返回401。

  3. 修正pino-loki配置
    将认证参数替换为实例ID和服务账号令牌,示例代码如下:

    const pino = require('pino');
    const pinoLoki = require('pino-loki');
    
    const transport = pinoLoki({
      host: 'https://logs-prod-006.grafana.net',
      basicAuth: {
        username: '你的日志实例ID', // 替换为实际的数字ID
        password: 'sa-1-myapi生成的令牌'
      },
      labels: { application: 'my-api' },
      batching: true,
    });
    
    const logger = pino({ level: 'info' }, transport);
    
  4. 快速验证认证有效性
    可以用curl先测试认证是否正常,避免卡在代码层面:

    curl -u "你的实例ID:服务账号令牌" -X POST https://logs-prod-006.grafana.net/loki/api/v1/push -H "Content-Type: application/json" -d '{"streams":[{"stream":{"foo":"bar"},"values":[["'$(date +%s000)'","test log"]]}]}'
    

    如果返回204,说明认证没问题,再去排查pino-loki的配置细节;如果还是401,那就是权限或认证参数仍有错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 15:30:59