Grafana 是一个流行的开源分析和监控平台,用于可视化时间序列数据,Grafana 提供了多种身份验证方式,其中之一是通过 API 密钥
API密钥 是一种基于令牌的身份验证方法,通常用于系统与系统之间的交互。它是一种有效的方法来实现自动化访问,而无需人工干预,例如,我们要将服务器的状态信息展现给其他用户,我们可以利用 Nginx 作为反向代理,通过在请求中自动添加密钥,实现对 Grafana 的无感登录。
Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,它能够处理大量并发连接。通过配置 Nginx,可以在反向代理请求时注入API密钥,从而绕过传统的登录界面,实现无感登录的效果。
1. 生成 Grafana API Key
首先,需要在 Grafana 中生成一个 API Key。
在这里我们可以配置API的名称、权限,以及过期时间
PS:生成的API密钥只会显示一次,请妥善管理
2. 配置 Nginx
接下来,需要使用Nginx配置反向代理,添加grafana 的api密钥到请求头部
location / {
proxy_pass http://10.0.81.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 添加 api key 到请求头
proxy_set_header Authorization "Bearer abcdefg123456"; # 替换为你的API Key
}
}
保存配置文件后,测试 Nginx 配置是否正确并重启
nginx -t
sudo systemctl restart nginx
3. 安全性注意事项
虽然这种方法简化了登录过程,但也存在安全风险。在使用 API Key 时,建议使用nginx的 allow 或者deny来限制访问来源IP,如果要暴露在公共网络中建议定期轮转API KEY 防止长期使用导致安全问题。
限制来源:
location / {
allow x.x.x.x/x; # 允许特定子网访问
deny all; # 禁止其他所有IP
}
具体效果可通过访问本站的grafana监控页面查看:https://status.geeklinux.cn/
原创文章,作者:geeklinux.cn,如若转载,请注明出处:https://www.geeklinux.cn/stat/grafana/1555.html