菜单
文档breadcrumb arrow 插件breadcrumb arrow Oracle 数据源breadcrumb arrow Oracle Kerberos 集成
企业版

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.oratnsnames.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

INI
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 位置
YAML
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

INI
[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

INI
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

附加参考