Kibana - Amazon Elasticsearch Service

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

Kibana

Kibana は Elasticsearch で稼働するように設計された、ポピュラーなオープンソースの可視化ツールです。Amazon ES は、すべての Amazon ES ドメインで Kibana のインストールを提供しています。Kibana へのリンクは、Amazon ES コンソールのドメインダッシュボードにあります。URL は domain-endpoint/_plugin/kibana/ です。 このデフォルトの Kibana インストールを使用したクエリは、300 秒でタイムアウトになります。

以下のセクションでは、いくつかの一般的な Kibana ユースケースを取り上げます。

Kibana へのアクセスのコントロール

Kibana では、IAM ユーザーとロールがネイティブにサポートされていませんが、Amazon ES には Kibana へのアクセスを制御するためのいくつかのソリューションが用意されています。

プロキシを使用した Kibana から Amazon ES へのアクセス

注記

このプロセスは、ドメインでパブリックアクセスが使用されており、Amazon CognitoKibana の 認証 を使用しない場合にのみ適用されます。「Kibana へのアクセスのコントロール」を参照してください。

Kibana は JavaScript アプリケーションであるため、リクエストの送信元はユーザーの IP アドレスです。IP ベースのアクセスコントロールは、ユーザーに Kibana へのアクセスを許可するために許可する必要のある IP アドレスの膨大な数のため、実用的でない可能性があります。1 つの回避策は、Kibana と Amazon ES の間にプロキシサーバーを配置することです。これにより、IP ベースのアクセスポリシーを追加し、唯一の IP アドレス (プロキシの IP アドレス) からのリクエストを許可できます。この設定は以下の図のようになります。

  1. これはお客様の Amazon ES ドメインです。IAM は、このドメインへの承認済みアクセスを提供します。追加の IP ベースのアクセスポリシーは、プロキシサーバーへのアクセスを提供します。

  2. これは、Amazon EC2 インスタンスで実行されているプロキシサーバーです。

  3. 他のアプリケーションは、署名バージョン 4 の署名プロセスを使用して認証済みのリクエストを Amazon ES に送信できます。

  4. Kibana クライアントはプロキシを介して Amazon ES ドメインに接続します。

この種の設定を有効にするには、ロールと 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/*" } ] }

プロキシサーバーを実行する EC2 インスタンスを Elastic IP アドレスを使用して設定することをお勧めします。これにより、必要に応じてインスタンスを置き換え、各インスタンスに同じパブリック IP アドレスをアタッチできます。詳細については、https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html の「Linux インスタンス用 Amazon EC2 ユーザーガイドElastic IP アドレス」を参照してください。

プロキシサーバーおよび Amazon CognitoKibana の 認証 を使用している場合、redirect_mismatch エラーを回避するため、Kibana と Amazon Cognito の設定の追加が必要になることがあります。次の nginx.conf の例を参照してください。

server { listen 443; server_name $host; rewrite ^/$ https://$host/_plugin/kibana 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/kibana { # Forward requests to Kibana proxy_pass https://$kibana_host/_plugin/kibana; # Handle redirects to Cognito proxy_redirect https://$cognito_host https://$host; # Update cookie domain and path proxy_cookie_domain $kibana_host $host; proxy_cookie_path / /_plugin/kibana/; # 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 Kibana proxy_redirect https://$kibana_host https://$host; # Update cookie domain proxy_cookie_domain $cognito_host $host; } }

WMS マップサーバーを使用するように Kibana を設定する

Amazon ES での Kibana のデフォルトインストールには、インドおよび中国リージョンのドメインを除き、マップサービスが含まれます。リージョンに関係なく、座標マップの可視化に別の Web Map Service (WMS) サーバーが使用されるように Kibana を設定できます。リージョンマップの可視化では、デフォルトのマップサービスのみがサポートされます。

WMS マップサーバーを使用できるように Kibana を設定するには:

  1. Kibana を開きます。

  2. [Management (管理)] を選択します。

  3. [Advanced Settings (詳細設定)] を選択します。

  4. visualization:tileMap:WMSdefaults を見つけます。

  5. enabledtrue に変更し、url を有効な WMS マップサーバーの URL に変更します。

    { "enabled": true, "url": "wms-server-url", "options": { "format": "image/png", "transparent": true } }
  6. [Save] を選択します。

新しいデフォルト値を可視化に適用するには、Kibana の再ロードが必要になることがあります。可視化結果を保存した場合は、可視化結果を開いた後に [オプション] を選択します。[WMS map server (WMS マップサーバー)] が有効で、[WMS url (WMS の URL)] に優先マップサーバーが指定されていることを確認し、[変更の適用] を選択します。

注記

マップサービスは多くの場合、ライセンス料や制限事項を伴います。マップサーバーを指定する際には、このような点を考慮する必要があります。テストを行うには、アメリカ地質調査所のマップサービスが便利です。

Kibana ローカルサーバーを Amazon ES に接続する

独自の Kibana インスタンスを設定するために時間をかけた場合は、Amazon ES から提供されるデフォルトの Kibana の代わりに (または追加で) 独自のインスタンスを使用することもできます。

ローカルの Kibana サーバーを Amazon ES に接続するには:

  • config/kibana.yml に以下の変更を加えます。

    kibana.index: ".kibanalocal" # Use elasticsearch.url for versions older than 6.6 # elasticsearch.url: "https://domain-endpoint:443" # Use elasticsearch.hosts for versions 6.6 and later elasticsearch.hosts: "https://domain-endpoint:443"

Elasticsearch の古いバージョンは HTTP 経由でのみ動作する可能性があります。いずれの場合も、http または https プレフィックスを追加します。古いバージョンでは、ポート 80 または 443 を明示的に指定する必要があります。新しいバージョンでは、ポートを省略できます。

その他の機能

各 Amazon ES ドメインへのデフォルトの Kibana インストールには、Kibana のオープンソースバージョンと比較していくつかの追加機能があります。