Oracle Kerberos 集成
Grafana 为独立和 Docker 化 Grafana 服务器提供 Kerberos 身份验证的基本配置。在此配置中,您必须使用 tnsnames.ora
文件。tnsnames.ora
文件由 Oracle 用于存储和配置不同数据库的连接信息。
注意
Grafana Cloud 中不支持 Kerberos 身份验证。
Oracle 配置文件
以下是主要的 Oracle 配置文件
tnsnames.ora
- Oracle 用于存储和配置不同数据库连接信息的配置文件。有关tnsnames.ora
文件的更多信息,请参阅 tnsnames.ora 文件中的本地命名参数。sqlnet.ora
- 用于管理数据库连接的 Oracle 配置文件。请参阅 sqlnet.ora 文件参数。krb5.conf
- 包含 Kerberos 配置信息的配置文件。有关详细信息,请参阅 Oracle 文档中的 krb5.conf。
位置
Oracle 插件使用由 Oracle Instant Client 定义的默认搜索路径。设置 ORACLE_HOME
环境变量可用于覆盖查找 sqlnet.ora
和 tnsnames.ora
配置文件的位置。
当 ORACLE_HOME
设置为 /opt/oracle
时,Oracle 配置文件位于以下目录中
文件名 | 搜索路径 |
---|---|
tnsnames.ora | /opt/oracle/network/admin |
sqlnet.ora | /opt/oracle/network/admin |
krb5.conf | /opt/oracle/network/admin |
krb5cc_472 | /tmp/krb5cc_472 |
您可以使用其他搜索路径,包括以下路径
/home/grafana/.sqlnet.ora
/var/lib/grafana/plugins/grafana-oracle-datasource/lib/linux_x64/instantclient_12_2/network/admin/sqlnet.ora
/home/grafana/.tnsnames.ora
/etc/tnsnames.ora
数据源配置
有关如何在 Grafana 中配置 Oracle 的说明,请参阅配置 Oracle 数据源。在设置 Oracle 数据源时,请在**连接**部分使用数据源连接选项 **TNSNames 入口**。在文本字段中输入的名称应遵循以下约定:
/@DBNAME
DBNAME
必须对应 tnsnames.ora
中的一个条目。
在以下示例配置文件中,连接字符串为 /@XE
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = krbclient1.plugins.grafana.net)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
Docker
以下 Docker Compose 文件显示了映射到 Docker 容器中的预期配置文件。
主要组件包括
krb5.conf
位置- 将票据缓存映射到 Grafana UID (472)
tnsnames.ora
位置sqlnet.ora
位置
version: '3.7'
services:
grafana:
image: grafana/grafana:latest
ports:
- 3000:3000
volumes:
- ./kerb5_client/krb5.conf:/etc/krb5.conf
- ./ticketcache/krb5cc_1000:/tmp/krb5cc_472
- ./plugin:/var/lib/grafana/plugins/grafana-oracle-datasource
- ./network/admin/tnsnames.ora:/etc/tnsnames.ora
- ./network/admin:/opt/oracle/network/admin
extra_hosts:
krb5.plugins.grafana.net: 172.16.0.4
krbclient1.plugins.grafana.net: 172.16.0.11
environment:
- TERM=linux
- ORACLE_HOME=/opt/oracle
- GF_DATAPROXY_LOGGING=true
- GF_LOG_LEVEL=debug
- GF_LOG_FILTERS=oracle-datasource:debug
- GF_PLUGINS_ORACLE_DATASOURCE_POOLSIZE=15
Kerberos
以下示例展示了基本的 Oracle Kerberos 配置。使用 Oracle 的配置 Kerberos 身份验证 将 Oracle 与 Kerberos 集成。
/opt/oracle/network/admin/krb5.conf
[libdefaults]
default_realm = PLUGINS.GRAFANA.NET
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
fcc-mit-ticketflags = true
[realms]
PLUGINS.GRAFANA.NET = {
kdc = krb5.plugins.grafana.net:9088
admin_server = krb5.plugins.grafana.net:9749
}
[domain_realm]
.plugins.grafana.net = PLUGINS.GRAFANA.NET
plugins.grafana.net = PLUGINS.GRAFANA.NET
sqlnet.ora 配置
sqlnet.ora
配置文件中的关键项包括
AUTHENTICATION_KERBEROS5_SERVICE
SQLNET.KERBEROS5_CC_NAME
SQLNET.KERBEROS5_KEYTAB
/opt/oracle/network/admin/sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5)
SQLNET.FALLBACK_AUTHENTICATION=TRUE
SQLNET.AUTHENTICATION_KERBEROS5_SERVICE=oraclesvc
SQLNET.KERBEROS5_CC_NAME=/tmp/krb5cc_472
SQLNET.KERBEROS5_CONF_MIT=TRUE
SQLNET.KERBEROS5_CONF=/etc/krb5.conf
SQLNET.KERBEROS5_CONF_LOCATION=/etc
SQLNET.KERBEROS5_KEYTAB=/etc/v5srvtab