Kibana - Amazon Elasticsearch Service

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

Kibana

Kibana는 Elasticsearch와 연동되도록 설계된 인기 있는 오픈소스 시각화 도구입니다. Amazon ES는 각 Amazon ES 도메인에 Kibana를 설치합니다. Amazon ES 콘솔의 도메인 대시보드에서 Kibana 링크를 찾을 수 있습니다. URL은 domain-endpoint/_plugin/kibana/. 이 기본 Kibana 설치를 사용하는 쿼리의 시간 초과는 300초입니다.

다음 단원에서는 일부 Kibana 일반 사용 사례에 대해 다룹니다.

Kibana에 대한 액세스 제어

Kibana는 IAM 사용자와 역할을 기본으로 지원하지는 않지만, Amazon ES가 Kibana: 액세스 제어를 위한 다양한 솔루션을 제공합니다.

도메인 구성 액세스 제어 옵션
퍼블릭 액세스
VPC 액세스

프록시를 사용하여 Kibana에서 Amazon ES에 액세스

참고

이 프로세스는 도메인이 퍼블릭 액세스를 사용하며 Kibana에 대한 Amazon Cognito 인증를 사용하고 싶지 않을 때만 적용됩니다. Kibana에 대한 액세스 제어을(를) 참조하십시오.

Kibana는 JavaScript 애플리케이션이므로 요청은 사용자의 IP 주소에서 발생합니다. 각 사용자가 키바나 에 액세스하기 위해 허용해야 하는 IP 주소의 수가 너무 많아 IP 기반 액세스 제어가 비현실적일 수 있습니다. 한 가지 해결 방법은 Kibana와 Amazon ES 사이에 프록시 서버를 배치하는 것입니다. 그런 다음 하나의 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/*" } ] }

탄력적 IP 주소를 사용하여 프록시 서버를 실행하는 EC2 인스턴스를 구성하는 것이 좋습니다. 이러한 방식으로 필요한 경우 인스턴스를 대체하고 동일한 퍼블릭 IP 주소를 계속 연결할 수 있습니다. 자세한 내용은 다음을 참조하십시오. 탄력적인 IP 주소 에서 Linux 인스턴스용 Amazon EC2 사용 설명서.

프록시 서버 Kibana에 대한 Amazon Cognito 인증를 사용한다면, Kibana와 Amazon Cognito용 설정을 추가해 redirect_mismatch 오류를 방지해야 할 수도 있습니다. 다음 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의 기본 설치에는 인도 및 중국 리전의 도메인을 제외하고는 맵 서비스가 포함됩니다. 리전에 관계없이 좌표 맵 시각화를 위해 다른 WMS(웹 맵 서비스) 서버를 사용하도록 Kibana를 구성할 수 있습니다. 리전 맵 시각화는 기본 맵 서비스만 지원합니다.

WMS 맵 서버를 사용하도록 Kibana를 구성하려면:

  1. Kibana를 엽니다.

  2. 관리를 선택합니다.

  3. 고급 설정을 선택합니다.

  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 맵 서버가 활성화되어 있고 WMS url에 기본 설정 맵 서버가 포함되어 있는지 확인한 다음 변경 사항 적용을 선택합니다.

참고

맵 서비스에는 종종 라이선스 요금이 부과되거나 제한이 따릅니다. 어떤 맵 서버를 지정하든 간에 그러한 부분은 모두 사용자의 책임입니다. 지도 서비스는 미국 지질 조사 테스트에 유용합니다.

Amazon ES에 로컬 Kibana 서버 연결

상당한 시간을 투자하여 자체 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을 명시적으로 지정해야 하며, 최신 버전의 경우 포트를 생략할 수 있습니다.