我在以k运行的HTML页面中使用grafana iframes
,但是每次打开页面查看嵌入的图形时,我都需要访问grafana
并因此登录以验证我的用户Django
应用程序已经有一个登录页面,我只想在页面上使用一个登录名并向grafana
发送代理请求,因此我每次打开应用程序时都不需要执行两次登录
查看
class GraphanaProxyView(ProxyView):
upstream = 'http://172.30.3.141:3000/'
def get_proxy_request_headers(self, request):
headers = super(GraphanaProxyView, self).get_proxy_request_headers(request)
headers['X-WEBAUTH-USER'] = request.user.username
return headers
网址
url(r'^grafana/(?P<path>.*)$', views.GraphanaProxyView.as_view(), name='graphana-dashboards'),
配置Grafana
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: always
ports:
- "3000:3000"
volumes:
- "./grafana/datastore:/var/lib/grafana"
environment:
- GF_SMTP_ENABLED=true
- GF_SMTP_HOST=smtp.gmail.com:587
- GF_SMTP_USER=user@domain.com.br
- GF_SMTP_PASSWORD=password
- GF_SMTP_FROM_NAME=Grafana Snipped
- GF_SMTP_SKIP_VERIFY=true
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_NAME=View
- GF_AUTH_ANONYMOUS_ORG_ROLE=View
- GF_USERS_ALLOW_SIGN_UP=false
- GF_AUTH_PROXY_ENABLED=true
- GF_AUTH_PROXY_HEADER_NAME = X-WEBAUTH-USER
- GF_AUTH_PROXY_HEADER_PROPERTY=username
- GF_AUTH_PROXY_AUTO_SIGN_UP=true
- GF_AUTH_PROXY_LDAP_SYNC_TTL=60
- GF_AUTH_PROXY_WHITELIST = 172.30.3.207
- GF_SERVER_DOMAIN = 172.30.3.141
访问URL时出现此错误:
如果您看到此Grafana无法加载其应用程序文件
这可能是由于您的反向代理设置引起的。
如果您将grafana
托管在子路径下,请确保您的grafana.ini
root_path设置包括子路径
如果您有本地开发人员,请确保使用npm run dev
,npm run watch
或npm run build
有时重新启动grafana-server
会有所帮助
答案 0 :(得分:0)
也感谢您通过电子邮件与我联系。
出于完整性考虑,我在此处重新发布了我对葡萄牙Stackoverflow原始帖子的回答:https://pt.stackoverflow.com/questions/362727/autentica%C3%A7%C3%A3o-single-sign-on-django-e-grafana
您的报告即将完成,太好了!
给出警告
This setting is also important if you have a reverse proxy in front of Grafana that exposes it through a subpath. In that case add the subpath to the end of this URL setting.
在http://docs.grafana.org/installation/configuration/#root-url
错误可能是GF_SERVER_DOMAIN
envvar的设置,应该用保存端口的GF_SERVER_ROOT_URL=http://172.30.3.141:3000/
替换(这将意味着Grafana文档的错误……)
如果不是这样,我只会想到另外两个问题来确定问题:
https://172.30.3.207/grafana/(dashboard path)
除了这个基本问题外,我建议您尝试删除GF_AUTH_PROXY_WHITELIST
envvar,并尝试通过curl
进行身份验证,例如:
curl -H "X-WEBAUTH-USER: anthony" http://172.30.3.141:3000/api/user
您可以在http://docs.grafana.org/auth/auth-proxy/#interacting-with-grafana-s-authproxy-via-curl
中找到遵循我的Django视图和grafana配置以达到工作结果,但没有发现有意义的差异:
class GraphanaProxyView(ProxyView):
upstream = 'http://localhost:8891/dashboard/'
def get_proxy_request_headers(self, request):
headers = super(GraphanaProxyView, self).get_proxy_request_headers(request)
headers['X-WEBAUTH-APP-USER'] = request.user.username
return header
Grafana配置:
[auth]
disable_login_form = true
[auth.proxy]
enabled = true
header_name = X-WEBAUTH-APP-USER
;header_property = username
;auto_sign_up = true
;ldap_sync_ttl = 60
whitelist = 127.0.0.1
[auth.basic]
enabled = false
[server]
protocol = http
http_addr = 127.0.0.1
http_port = 8891
domain = solomon.labs.befair.it
;enforce_domain = false
root_url = https://%(domain)s/ui/