iframe嵌套grafana免登录页面

结合上文iframe嵌套grafana面板后发现grafana每次仍然需要登录,十分麻烦,如果能够无需登录访问嵌套面板也更有意义。

免登录有两种方案实现:

grafana配置无登录访问

优点:配置简单,缺点是不安全

  容器中配置env GF_AUTH_ANONYMOUS_ENABLED=true 即可
  

通过grafana api_key 来实现访问

通过api_key的方式会比第一种方式更加安全,但配置较为复杂,因为api key访问需要在请求的header 里添加认证,所以我们还需要接入nginx的方式来注入header

1. 添加API Key

grafana dashboard => Configuration => Api Keys => Add Api Key 可设置过期时间

2. 创建并配置nginx

nginx地址为 https://xxx.com #下列配置需要替换为实际自己的地址
nginx主要配置

            location /grafana/ {
            proxy_buffer_size 128k;
            proxy_buffers   32 128k;
            proxy_busy_buffers_size 128k;

                add_header Access-Control-Allow-Origin '*';
                add_header Access-Control-Allow-Methods '*';
                add_header Access-Control-Allow-Credentials true;
                set $auth "";
                if ($host ~* "(xxx.com)|(localhost)|(127.0.0.1)")
            {
                    set $auth 'Bearer [[your_api_key]]';
            }

                if ($request_method = OPTIONS) {
                    return 200;
                }
                proxy_ssl_server_name on;
                proxy_pass           [[your_grafana_url]];
                proxy_read_timeout 1800s;
                proxy_set_header     Authorization $auth;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }

[[your_api_key]]替换为你自己的key, https://xxx.com替换为自己的nginx地址,[[your_grafana_url]]替换为自己的grafana地址。如果grafana 地址是http则需要去掉proxy_ssl_server_name on参数跳过ssl验证。

如果访问报错:a frame because it set ‘X-Frame-Options’ to ‘deny’ 或者其他X-Frame-Options错误,需要设置为Allowall,执行curl -I your_grafana_url 可以看到x-frame-options值,可以在nginx中添加配置:

                # 清除上游的 X-Frame-Options 头
                proxy_hide_header X-Frame-Options;
                # 添加 X-Frame-Options 头
                add_header X-Frame-Options "ALLOWALL";

3. 配置grafana

配置好nginx后,可以通过https://xxx.com/grafana测试是否成功跳转在进行下一步。

添加grafana配置:root_url及支持子目录静态文件

https://grafana.com/tutorials/run-grafana-behind-a-proxy/#alternative-for-serving-grafana-under-a-sub-path

配置文件添加:

    [server]
    ## 添加为nginx地址 及支持子目录
    root_url = https://xxx.com/grafana/
    serve_from_sub_path = true

或者环境变量添加:

    - name: GF_SERVER_ROOT_URL
      value: https://xxx.com/grafana/
    - name: GF_SERVER_SERVE_FROM_SUB_PATH
      value: "true"
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇