将 OpenSearch 控制面板与 Amazon OpenSearch Service 结合使用 - Amazon Opensearch Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将 OpenSearch 控制面板与 Amazon OpenSearch Service 结合使用

OpenSearch 控制面板是一种开源虚拟化工具,专为与 OpenSearch 结合使用而设计。Amazon OpenSearch Service 为每个 OpenSearch Service 域提供了安装 OpenSearch 控制面板的功能。在 OpenSearch Service 控制台域控制面板上可以找到控制面板链接。URL 为 domain-endpoint/_dashboards/。使用此默认 OpenSearch 控制面板安装的查询具有 300 秒超时。

下面几节介绍一些常见控制面板使用案例:

控制对 Opensearch 控制面板的访问

控制面板本身不支持 IAM 用户和角色,但 OpenSearch Service 提供了多种解决方案来控制对控制面板的访问:

使用代理从控制面板访问 OpenSearch Service

注意

仅当域使用公有访问权限并且您不想使用 Cognito 身份验证时,此过程才适用。请参阅控制对 Opensearch 控制面板的访问

控制面板是 JavaScript 应用程序,因此请求源自用户的 IP 地址。基于 IP 的访问控制可能是不切实际的,这是因为,为了让每个用户能够访问 Kibana,需要加入白名单的 IP 地址绝对数量太巨大。一种解决方案是在 OpenSearch 控制面板和 OpenSearch Services 之间配置一个代理服务器。然后,您可以添加基于 IP 的访问策略,仅允许来自一个 IP 地址(即代理服务器)的请求。下图演示了此配置。

  1. 这是您的 OpenSearch Service 域。IAM 提供对此域的授权访问权限。此外,基于 IP 的访问策略提供对代理服务器的访问权限。

  2. 这是在 Amazon EC2 实例上运行的代理服务器。

  3. 其他应用程序可以使用签名版本 4 签名流程将通过身份验证的请求发送到 Amazon OpenSearch Service。

  4. OpenSearch 控制面板客户端通过代理连接到 OpenSearch Services 域。

要启用这种配置,需要在基于资源的策略中指定角色和 IP 地址。下面是示例策略:

{ "Version": "2012-10-17", "Statement": [{ "Resource": "arn:aws:es:us-west-2:111111111111:domain/my-domain/*", "Principal": { "AWS": "arn:aws:iam::111111111111:role/allowedrole1" }, "Action": [ "es:ESHttpGet" ], "Effect": "Allow" }, { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:*", "Condition": { "IpAddress": { "aws:SourceIp": [ "123.456.789.123" ] } }, "Resource": "arn:aws:es:us-west-2:111111111111:domain/my-domain/*" } ] }

建议使用弹性 IP 地址配置在代理服务器上运行的 EC2 实例。这样,如果有必要替换实例,仍然可以用相同的公有 IP 地址连接到实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的弹性 IP 地址

如果使用代理服务器 Cognito 身份验证,则可能需要添加控制面板和 Amazon Cognito 的设置以避免 redirect_mismatch 错误。请参阅以下 nginx.conf 示例:

server { listen 443; server_name $host; rewrite ^/$ https://$host/_plugin/_dashboards redirect; ssl_certificate /etc/nginx/cert.crt; ssl_certificate_key /etc/nginx/cert.key; ssl on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; location /_plugin/_dashboards { # Forward requests to Dashboards proxy_pass https://$dashboards_host/_plugin/_dashboards; # Handle redirects to Cognito proxy_redirect https://$cognito_host https://$host; # Update cookie domain and path proxy_cookie_domain $dashboards_host $host; proxy_cookie_path / /_plugin/_dashboards/; # Response buffer settings proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; } location ~ \/(log|sign|fav|forgot|change|saml|oauth2) { # Forward requests to Cognito proxy_pass https://$cognito_host; # Handle redirects to Dashboards proxy_redirect https://$dashboards_host https://$host; # Update cookie domain proxy_cookie_domain $cognito_host $host; } }

将 OpenSearch 控制面板配置为使用 WMS 地图服务器

OpenSearch Service 的 OpenSearch 控制面板默认安装包括地图服务,但印度和中国区域的域除外。地图服务最多支持 10 个缩放级别。

无论您的区域如何,您都可以将 Kibana 配置为使用不同的 Web 地图服务 (WMS) 服务器来提供坐标地图可视化。区域地图可视化只支持默认地图服务。

将控制面板配置为使用 WMS 地图服务器:

  1. 打开控制面板。

  2. 选择堆栈管理

  3. 选择 Advanced Settings (高级设置)

  4. 找到 visualization:tileMap:WMSdefaults

  5. enabled 更改为 true 并将 url 更改为有效 WMS 地图服务器的 URL:

    { "enabled": true, "url": "wms-server-url", "options": { "format": "image/png", "transparent": true } }
  6. 选择保存更改

要将新的默认值应用于可视化,您可能需要重新加载控制面板。如果已保存可视化,请在打开可视化后,选择 Options (选项)。验证是否已启用 WMS map server (WMS 地图服务器) 并且 WMS URL 包含首选地图服务器,然后选择 Apply changes (应用更改)

注意

地图服务通常具有许可费用或限制。您负责考虑有关指定的任何地图服务器的所有此类事项。您可能会发现来自美国地质调查局的地图服务对测试非常有用。

将本地控制面板服务器连接到 OpenSearch Service

如果您已投入大量时间来配置自己的 OpenSearch 控制面板实例,则可以使用该实例而不是(或以及)提供的默认 OpenSearch 控制面板实例。以下过程适用于将精细访问控制和开放访问策略结合使用的域。

要将本地 OpenSearch 控制面板服务器连接到 OpenSearch Service

  1. 在您的 OpenSearch Service 域中,创建具有相应权限的用户:

    1. 在控制面板中,转到安全内部用户,然后选择创建内部用户

    2. 提供用户名和密码,然后选择创建

    3. 转到角色,然后选择一个角色。

    4. 选择映射的用户,然后选择管理映射

    5. 用户中,添加您的用户名,然后选择映射

  2. 下载并将 Opensearch 的相应版本安全插件安装在自行管理的控制面板 OSS 安装程序上。

  3. 在本地的控制面板服务器中,通过您之前创建的用户名和密码打开 config/opensearch_dashboards.yml 文件并添加 OpenSearch 端点。

    opensearch.hosts: ['https://domain-endpoint'] opensearch.username: 'username' opensearch.password: 'password'

    您可以使用以下示例 opensearch_dashboards.yml 文件:

    server.host: '0.0.0.0' opensearch.hosts: ['https://domain-endpoint'] opensearch_dashboards.index: ".username" opensearch.ssl.verificationMode: none # if not using HTTPS opensearch_security.auth.type: basicauth opensearch_security.auth.anonymous_auth_enabled: false opensearch_security.cookie.secure: false # set to true when using HTTPS opensearch_security.cookie.ttl: 3600000 opensearch_security.session.ttl: 3600000 opensearch_security.session.keepalive: false opensearch_security.multitenancy.enabled: false opensearch_security.readonly_mode.roles: [opensearch_dashboards_read_only'] opensearch_security.auth.unauthenticated_routes: [] opensearch_security.basicauth.login.title: 'Please log in using your user name and password' opensearch.username: 'username' opensearch.password: 'password' opensearch.requestHeadersWhitelist: [ authorization, securitytenant, security_tenant, ]

要查看您的 OpenSearch Service 索引,请启动本地控制面板服务器,请转到开发工具并运行以下命令:

GET _cat/indices

管理 OpenSearch 控制面板中的索引

OpenSearch Service 域上的 OpenSearch 控制面板安装为管理域上不同存储层中的索引提供了一个有用的用户界面。从控制面板主菜单中选择索引管理以查看热、UltraWarm存储中的全部索引,以及由 Index State Management (ISM) 策略管理的索引。使用索引管理可以在热存储和冷存储之间移动索引,并监视三个层之间的迁移。

请注意,除非已启用 UltraWarm 和/或冷存储,否则不会看到热、暖和冷索引选项。

其他功能

每个 OpenSearch Service 域上的默认 OpenSearch 控制面板安装具有一些附加功能: