Amazon OpenSearch Service와 함께 OpenSearch Dashboards 사용
OpenSearch Dashboards는 OpenSearch와 함께 작동하도록 제작된 오픈 소스 시각화 도구입니다. Amazon OpenSearch Service는 모든 OpenSearch Service 도메인과 함께 OpenSearch Dashboards를 설치합니다. OpenSearch 대시보드는 도메인의 핫 데이터 노드에서 실행됩니다.
OpenSearch Service 콘솔의 도메인 대시보드에서 OpenSearch 대시보드 링크를 찾을 수 있습니다. OpenSearch 실행하는 도메인의 경우 URL은
입니다. 레거시 Elasticsearch를 실행하는 도메인의 경우 URL은 domain-endpoint
/_dashboards/
입니다.domain-endpoint
/_plugin/kibana
이 기본 OpenSearch Dashboards 설치를 이용한 쿼리는 제한 시간이 300초입니다.
참고
이 설명서에서는 다양한 연결 방법을 포함하여 Amazon OpenSearch Service의 컨텍스트에서 OpenSearch 대시보드를 설명합니다. 시작하기 가이드, 대시보드 생성 지침, 대시보드 관리 및 대시보드 쿼리 언어(DQL)를 포함한 포괄적인 설명서는 오픈 소스 OpenSearch 설명서의 OpenSearch Dashboards
다음 섹션에서는 OpenSearch 대시보드에 대한 몇 가지 공통 사용 사례를 다룹니다.
OpenSearch Dashboards에 대한 액세스 제어
Dashboards는 IAM 사용자와 역할을 기본으로 지원하지는 않지만, OpenSearch Service가 Dashboards 액세스 제어를 위한 다양한 솔루션을 제공합니다.
-
Dashboards에 대한 SAML 인증을 활성화합니다.
-
HTTP 기본 인증과 함께 세분화된 액세스 제어를 사용합니다.
-
Dashboards에 대한 Cognito 인증을 구성합니다.
-
공용 액세스 도메인의 경우 프록시 서버를 사용하거나 사용하지 않는 IP 기반 액세스 정책을 구성합니다.
-
VPC 액세스 도메인의 경우 프록시 서버를 사용하거나 사용하지 않는 오픈 액세스 정책 및 보안 그룹을 이용해 액세스를 제어합니다. 자세한 내용은 VPC 도메인 액세스 정책에 대하여을 참조하십시오.
프록시를 사용하여 OpenSearch Dashboards에서 OpenSearch Service에 액세스
참고
이 프로세스는 도메인이 퍼블릭 액세스를 사용하며 Cognito 인증을 사용하지 않으려는 경우에만 적용됩니다. OpenSearch Dashboards에 대한 액세스 제어 섹션을 참조하세요.
Kibana는 JavaScript 애플리케이션이므로 요청은 사용자의 IP 주소에서 발생합니다. 각 사용자에게 대시보드 액세스 권한을 주기 위해 허용해야 하는 IP 주소 수가 늘어나기 때문에, IP 기반 액세스 제어는 실용적이지 않을 수 있습니다. 한 가지 해결 방법은 OpenSearch Dashboards와 OpenSearch Service 사이에 프록시 서버를 배치하는 것입니다. 그런 다음 하나의 IP 주소인 프록시의 요청만 허용하는 IP 기반 액세스 정책을 추가할 수 있습니다. 다음 다이어그램은 이 구성을 보여줍니다.
-
이것이 OpenSearch Service 도메인입니다. IAM은 이 도메인에 대해 인증된 액세스 권한을 제공합니다. 추가 IP 기반 액세스 정책은 프록시 서버에 대한 액세스를 제공합니다.
-
이 프록시 서버는 Amazon EC2 인스턴스에서 실행됩니다.
-
다른 애플리케이션은 서명 버전 4 서명 프로세스를 사용하여 인증 요청을 OpenSearch Service로 보낼 수 있습니다.
-
OpenSearch Dashboards 클라이언트는 프록시를 통해 OpenSearch Service 도메인에 연결합니다.
이러한 유형의 구성을 활성화하려면 역할 및 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":[ "
203.0.113.0/24
", "2001:DB8:1234:5678::/64
" ] } }, "Resource":"arn:aws:es:us-west-2:111111111111:domain/my-domain/*" } ] }
탄력적 IP 주소를 사용하여 프록시 서버를 실행하는 EC2 인스턴스를 구성하는 것이 좋습니다. 이러한 방식으로 필요한 경우 인스턴스를 대체하고 동일한 퍼블릭 IP 주소를 계속 연결할 수 있습니다. 자세한 내용은 Amazon EC2 사용 설명서의 탄력적 IP 주소를 참조하세요.
프록시 서버 및 Cognito 인증을 사용한다면, Dashboards와 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 대시보드 호스팅이 시작됩니다. 따라서 CPU 및 메모리와 같은 데이터 노드 리소스의 가용성이 증가합니다. 이렇게 증가된 데이터 노드 리소스 가용성은 도메인의 전반적인 복원력을 개선하는 데 도움이 될 수 있습니다.
WMS 맵 서버를 사용하도록 OpenSearch Dashboards 구성
OpenSearch Service에 대한 OpenSearch Dashboards의 기본 설치에는 인도 및 중국 리전의 도메인을 제외한 맵 서비스가 포함됩니다. 맵 서비스는 최대 10개의 줌 레벨을 지원합니다.
리전과 관계없이 좌표 맵 시각화를 위해 다른 WMS(Web Map Service) 서버를 사용하도록 대시보드를 구성할 수 있습니다. 리전 맵 시각화는 기본 맵 서비스만 지원합니다.
WMS 맵 서버를 사용하도록 Dashboards를 구성하려면:
-
Dashboards를 엽니다.
-
스택 관리(Stack Management)를 선택합니다.
-
고급 설정(Advanced Settings)을 선택합니다.
-
visualization:tileMap:WMSdefaults를 찾습니다.
-
enabled
를true
로 바꾸고url
은 유효한 WMS 맵 서버의 URL로 변경합니다.{ "enabled": true, "url": "
wms-server-url
", "options": { "format": "image/png", "transparent": true } } -
변경 사항 저장(Save changes)을 선택합니다.
새 기본값을 시각화에 적용하려면 Dashboards를 다시 로드해야 할 수 있습니다. 시각화를 저장한 경우 시각화를 연 후 옵션(Options)을 선택합니다. WMS 맵 서버가 활성화되어 있고 WMS url에 기본 설정 맵 서버가 포함되어 있는지 확인한 다음 변경 사항 적용을 선택합니다.
참고
맵 서비스에는 종종 라이선스 요금이 부과되거나 제한이 따릅니다. 어떤 맵 서버를 지정하든 간에 그러한 부분은 모두 사용자의 책임입니다. 미국 지질조사국
로컬 Dashboards 서버를 OpenSearch Service에 연결
이미 상당한 시간을 투자하여 자체 OpenSearch Dashboards 인스턴스를 구성한 경우, OpenSearch Service에서 제공하는 기본 Dashboards 인스턴스 대신(또는 추가로) 그 인스턴스를 사용할 수 있습니다. 다음 절차는 오픈 액세스 정책과 함께 세분화된 액세스 제어를 사용하는 도메인에 적용됩니다.
로컬 OpenSearch Dashboards 서버를 OpenSearch Service에 연결하려면
-
OpenSearch Service 도메인에서 적절한 권한을 가진 사용자를 생성합니다.
-
Dashboards에서 보안(Security),내부 사용자(Internal users)로 이동하여 내부 사용자 생성(Create internal user)을 선택합니다.
-
사용자 이름과 암호를 입력하고 생성(Create)을 선택합니다.
-
역할(Roles)로 이동하여 역할을 선택합니다.
-
매핑된 사용자(Mapped users)를 선택하고 매핑 관리(Manage mapping)를 선택합니다.
-
사용자(Users)에서 사용자 이름을 추가하고 맵(Map)을 선택합니다.
-
-
자체 관리형 Dashboards OSS 설치에 적절한 버전의 OpenSearch 보안 플러그인
을 다운로드하고 설치합니다. -
로컬 Dashboards 서버에서
config/opensearch_dashboards.yml
파일을 열고 이전에 만든 사용자 이름과 암호를 사용하여 OpenSearch Service 엔드포인트를 추가합니다.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
'] opensearchDashboards.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 username and password' opensearch.username: 'username' opensearch.password: 'password' opensearch.requestHeadersWhitelist: [authorization, securitytenant, security_tenant]
OpenSearch Service 인덱스를 보려면 로컬 대시보드 서버를 시작하고 Dev Tools로 이동하여 다음 명령을 실행합니다.
GET _cat/indices
OpenSearch Dashboards의 인덱스 관리
OpenSearch Service 도메인에 OpenSearch Dashboards를 설치하면 도메인의 여러 스토리지 계층에서 인덱스를 관리하는 데 유용한 UI를 사용할 수 있습니다. 인덱스 상태 관리(ISM) 정책에 따라 관리되는 인덱스뿐만 아니라 핫, UltraWarm, 콜드 스토리지의 모든 인덱스를 보려면 Dashboards 주 메뉴에서 인덱스 관리(Index Management)를 선택합니다. 인덱스 관리를 사용하여 웜 스토리지와 콜드 스토리지 간에 인덱스를 이동하고 세 계층 간의 마이그레이션을 모니터링합니다.
UltraWarm 및/또는 콜드 스토리지를 활성화하지 않으면 핫, 웜 및 콜드 인덱스 옵션이 표시되지 않습니다.
기타 기능
각 OpenSearch Service 도메인의 기본 OpenSearch Dashboards 설치에는 몇 가지 추가 기능이 있습니다.
-
다양한 OpenSearch 플러그인을 위한 사용자 인터페이스
-
보고(Reporting) 메뉴를 사용하여 검색 페이지에서 온디맨드 CSV 보고서 및 대시보드 또는 시각화의 PDF 또는 PNG 보고서를 생성할 수 있습니다. CSV 보고서의 행은 10,000개로 제한됩니다.