InfluxDB 和 Grafana 跨域错误

Posted

技术标签:

【中文标题】InfluxDB 和 Grafana 跨域错误【英文标题】:InfluxDB & Grafana Cross domain error 【发布时间】:2015-02-18 08:15:31 【问题描述】:

当我尝试访问 InfluxDB 管理 UI 或通过 Graphana 时收到以下错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://54.zzz.xx.yyy:8086/cluster_admins/authenticate?u=abc&p=dec. This can be fixed by moving the resource to the same domain or enabling CORS.

请注意,只有当我尝试通过 Internet 连接时,当我转到服务器本地网络并将上面提到的公共 IP 更改为本地 IP 时,我才会收到此错误,一切正常。

现在我了解了什么是跨域错误和 CORS,我也知道我需要启用 CORS,因为错误在 InfluxDB 服务器中显示,关键是我不知道该怎么做。

InfluxDB 位于 Ubuntu 服务器 14.AWS 上。

【问题讨论】:

【参考方案1】:

由于没有人回答,我使用了我的备份选项,使用 IIS 作为代理,在内部从本地 Intranet 读取数据,从而避免了跨域错误。

详情在:http://www.iis.net/learn/extensions/configuring-application-request-routing-(arr)/creating-a-forward-proxy-using-application-request-routing

您可以使用 Apache 或任何其他具有 URL 重写功能的 Web 服务器,在我的例子中我使用的是 IIS。

编辑: 原来它现在是硬编码的,以后会改变:https://github.com/influxdb/influxdb/issues/1244#issuecomment-68219522

【讨论】:

【参考方案2】:

虽然这个问题已经得到解答,但我想分享我的解决方案,让 Angular 应用程序使用 docker 和 Apache 作为反向代理访问 InfluxDB。通过此设置,您可以通过http://localhost:8080/query?[..]localhost:4200InfluxDB 发出请求。

docker-compose.yml

version: '3'
services:
  apache:
    image: bitnami/apache:2.4
    ports:
      - 8080:8080
    volumes:
      - ./apache/influxdb_proxy.conf:/vhosts/influxdb_proxy.conf:ro
  influxdb:
    image: influxdb:1.7
    ports:
      - 8086:8086
    volumes:
      - ./influxdb/data:/var/lib/influxdb

apache/influxdb_proxy.conf

ProxyPass / http://influxdb:8086/
ProxyPassReverse / http://influxdb:8086/

Header set  Access-Control-Allow-Origin "http://localhost:4200"

【讨论】:

以上是关于InfluxDB 和 Grafana 跨域错误的主要内容,如果未能解决你的问题,请参考以下文章

InfluxDB 和 Grafana:InfluxDB 错误:错误请求 |码头工人

性能测试五十:Jmeter+Influxdb+Grafana实时数据展示系统搭建

grafana 安装配置详解

[docker] 用influxDB & Grafana & Telegraf & Jmeter搭建服务监控平台

如何在 Grafana/InfluxDB 中创建百分比/比率列?

14.grafana导入导出;Grafana的安装和Influxdb数据源配置