注意: 文中提到的一些ip,端口,邮箱,用户名等信息为个人配置,请按实际自行修改
在基于安装了mysql版本的基础上,我再转向做pgsql的,所以其实基本操作可以参考以下链接:
通过 Keycloak + Mysql 实现 Grafana 单点登录
所以本文只是在上文的基础上,对安装,配置pgsql,配置Keycloak,做一些增量说明
1. docker 安装 pgsql
特别注意:目前为止,需要pgsql版本11.3,其他版本可能会存在坑,具体可以参考这篇文章
Grafana install fails when recent version of PostgreSQL is used as backend
docker run --name myPgsql_11_3 --restart=always -p 5433:5432 -e POSTGRES_PASSWORD=root -d postgres:11.3
登录pgsql,创建数据库grafana
2. 配置 keycloak
由于上文中已经添加了Realm(领域) Allen 和 User(用户)zhaolinliang,所以不需要再添加,只需要添加Client(登录的客户端),如下图所示,url配置为 http://192.168.58.132:3001,保存。
到 Credentials 中,把 secret 记下来
3. docker 安装 grafana
docker run -d --restart always --net keycloak-network --user root --name=myGrafana_pgsql -e "GF_SERVER_ROOT_URL=http://192.168.58.132:3001" -e "GF_SECURITY_ADMIN_PASSWORD=root" -p 3001:3000 -v "/mydata/docker/volume/grafana_pgsql/lib:/var/lib/grafana" grafana/grafana
4. 配置 grafana
进入 grafana 容器,编辑 /etc/grafana/grafana.ini,修改以下配置,database,security,通用oauth配置:
[database]
type = postgres
host = 192.168.58.132:5433
name = grafana
user = postgres
password = root
ssl_mode = disable
[security]
admin_user = admin
admin_password = root
[auth.generic_oauth]
enabled = true
name = allen
allow_sign_up = true
client_id = grafana_pgsql
client_secret = e8cee576-c4fe-4561-bba6-955e30074318
scopes = openid email name
auth_url = http://192.168.58.132:9080/auth/realms/allen/protocol/openid-connect/auth
token_url = http://192.168.58.132:9080/auth/realms/allen/protocol/openid-connect/token
api_url = http://192.168.58.132:9080/auth/realms/allen/protocol/openid-connect/userinfo
配置完后,重启docker grafana服务才生效
访问 http://192.168.58.132:3001 ,登录界面能看到"Sign in with Allen",点击即跳转到Keycloak登录界面,Realm为Allen。使用账号密码 zhaolinliang / root登录,登录成功跳转回grafana,实现单点登录。
登录成功: