通过 Keycloak + Pgsql 实现 Grafana 单点登录

5 篇文章 0 订阅
3 篇文章 2 订阅

注意: 文中提到的一些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,实现单点登录。

登录成功:

可以通过以下步骤将KeycloakPgsql数据库进行链接: 1. 首先,确保已经安装并运行了Pgsql数据库。可以使用以下命令在Docker中运行Pgsql数据库: ```shell docker run --name myPgsql_11_3 --restart=always -p 5433:5432 -e POSTGRES_PASSWORD=root -d postgres:11.3 ``` 2. 在Keycloak的安装目录下,找到`standalone/configuration/standalone.xml`文件,并编辑该文件。 3. 在`<datasources>`标签内添加以下内容,以配置Pgsql数据库连接: ```xml <datasource jndi-name="java:jboss/datasources/KeycloakPgsqlDS" pool-name="KeycloakPgsqlDS" enabled="true" use-java-context="true"> <connection-url>jdbc:postgresql://localhost:5433/keycloak</connection-url> <driver>postgresql</driver> <pool> <max-pool-size>20</max-pool-size> </pool> <security> <user-name>postgres</user-name> <password>root</password> </security> </datasource> ``` 请注意,根据您的Pgsql数据库配置,可能需要修改`connection-url`、`user-name`和`password`的值。 4. 在`<drivers>`标签内添加以下内容,以配置Pgsql数据库驱动程序: ```xml <driver name="postgresql" module="org.postgresql"> <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> </driver> ``` 5. 在Keycloak的安装目录下,创建一个名为`modules/org/postgresql/main`的目录,并在该目录下创建一个名为`module.xml`的文件。文件内容如下: ```xml <?xml version="1.0" ?> <module xmlns="urn:jboss:module:1.3" name="org.postgresql"> <resources> <resource-root path="postgresql-<version>.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module> ``` 请将`<version>`替换为您使用的Pgsql驱动程序的版本号。 6. 将Pgsql驱动程序的JAR文件复制到`modules/org/postgresql/main`目录下,并将其命名为`postgresql-<version>.jar`。 7. 重新启动Keycloak服务器。 现在,Keycloak将能够与Pgsql数据库进行链接。您可以使用Keycloak单点登录功能来实现Pgsql的集成。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AllenLeungX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值