Consul 웹 UI

Consul 웹 UI (Consul Web UI)

Consul 웹 UI는 브라우저 기반의 그래픽 인터페이스로 Consul 클러스터와 상호작용하는 한 가지 방법이에요. 이 문서에서 UI로 서비스, 노드, 키-값 저장소, 의도, ACL을 보고 관리하는 방법을 설명할게요.

출처: 문서

본문

이 페이지는 Consul CLI와 HTTP API와 함께 Consul 클러스터와 인터페이스하는 한 가지 방법인 Consul 웹 UI의 개요를 제공합니다.

소개 (Introduction)

웹 UI를 사용하면 브라우저 기반의 그래픽 사용자 인터페이스로 Consul과 상호작용할 수 있습니다. 다음을 포함해 Consul 데이터센터에 대한 정보를 볼 수 있습니다:

또한 Consul UI를 통해 다음 구성 요소를 보고 업데이트할 수 있습니다:

UI 태스크 표 (UI task table)

다음 표는 각 페이지에서 허용되는 CRUD 동작을 설명합니다.

| 페이지 (Page) | 동작 (Action) | | Services | Read | | Nodes | Read | | Key/Value | Create, Read, Update, Delete | | Intentions | Create, Read, Update, Delete | | ACLs | Create, Read, Update, Delete |

UI로 이동 (Navigate to the UI)

consul agent -dev로 Consul을 개발 모드로 시작하면 웹 UI가 자동으로 활성화됩니다. 에이전트가 실행되는 동안 웹 브라우저에서 http://localhost:8500/ui를 열어 Consul UI를 봅니다.

개발 에이전트가 아닌 경우 UI 활성화 (Enable the UI for non-development agents)

웹 UI는 기본적으로 활성화되지 않습니다. -dev 플래그 없이 실행되는 에이전트는 웹 UI를 명시적으로 활성화해야 합니다.

웹 UI를 활성화하려면:

에이전트 시작 명령 수정

에이전트 구성 파일 수정

$ consul agent -ui [...]

agent-config.hcl:

datacenter = "dc1"
data_dir   = "/opt/consul"

server     = true

ui_config {
  enabled = true
}

# ...

Consul 서버 노드의 서버 주소를 사용해 포트 8500의 /ui 경로에서 웹 브라우저로 주소를 엽니다. 예를 들어 서버 주소가 212.44.23.212라면 웹 브라우저에서 http://212.44.23.212:8500/ui를 엽니다.

서비스 (Services)

Consul UI의 초기 랜딩 페이지는 Services 페이지이며, 데이터센터에 등록된 모든 서비스와 게이트웨이 목록과 그들의 건강 상태, 태그, 유형, 소스를 보여줍니다. 왼쪽 탐색 바에서 Services 페이지에 접근할 수도 있습니다.

건강 상태와 서비스 유형으로 서비스를 필터링하거나 검색 바에서 서비스를 검색할 수 있습니다.

서비스 이름을 클릭하면 인스턴스 수, 개별 인스턴스의 건강 상태, 서비스에 등록된 Consul 에이전트 등을 포함한 더 많은 정보를 볼 수 있습니다.

노드 (Nodes)

왼쪽 탐색 바에서 Nodes 옵션을 클릭합니다.

이 페이지는 데이터센터의 각 노드에 대한 정보(건강 상태, 네트워크 주소, 노드에 등록된 서비스 수)를 보여줍니다. 노드 옆의 배지는 현재 클러스터 리더의 호스트를 보여줍니다.

노드 이름을 클릭하면 노드에 등록된 서비스 헬스 체크, 인스턴스, 왕복 시간, 락 세션, 메타데이터에 대한 자세한 정보를 볼 수 있습니다.

건강 상태로 노드를 필터링하거나 검색 바에서 노드를 검색할 수 있습니다.

키/값 저장소 (Key/value store)

왼쪽 탐색 바에서 Key/Value 옵션을 클릭합니다.

이 페이지는 파일 디렉터리와 유사한 구조를 가집니다. 객체를 키 접두사에 따라 중첩합니다.

접두사를 사용해 객체를 애플리케이션, 비즈니스 기능 또는 둘의 조합으로 구성할 수 있습니다.

의도 (Intentions)

서비스 의도는 서비스 간 통신을 제어하는 Consul의 아이덴티티 기반 보안 메커니즘입니다.

왼쪽 탐색 바에서 Intentions 옵션을 클릭합니다.

소스·대상 서비스를 지정하고 설명을 작성하며 두 서비스 간 트래픽을 허용(allow) 또는 거부(deny)하도록 구성해 새 서비스 의도를 만들 수 있습니다. 의도를 Application Aware로 설정할 수도 있는데, 이렇게 하면 경로, 헤더, 메서드 같은 Layer 7 기준에 따라 서비스 간 통신을 더 세밀하게 허용·거부할 수 있습니다.

액세스 제어 목록 (ACLs)

Consul은 액세스 제어 목록 (ACL)을 사용해 웹 UI, API, CLI, 서비스 통신, 에이전트 통신에 대한 접근을 보호합니다.

로컬 개발 에이전트에는 ACL이 활성화되어 있지 않으므로, Consul이 로컬 개발 에이전트로 실행 중이라면 왼쪽 탐색 바의 Access Controls 제목 옆에 빨간 점이 표시됩니다.

acl 블록의 enabled 속성으로 에이전트 구성 파일에서 ACL을 활성화합니다. ACL 구성에 대한 자세한 내용은 ACL 시스템 부트스트랩을 참조하세요.

agent-config.hcl:

datacenter = "dc1"
data_dir   = "/opt/consul"

server     = true

ui_config {
  enabled = true
}

acl {
  enabled = true
}

# ...

ACL이 활성화되고 적절한 권한이 설정되면 왼쪽 탐색 바의 Access Controls 제목 아래의 ACL 관련 페이지를 클릭해 Tokens, Policies, Roles, Auth Methods 페이지를 볼 수 있습니다. 자세한 내용은 ACL 토큰, ACL 정책, ACL 역할, 인증 메서드 문서를 참조하세요.

UI 설정 조정 (Adjust UI settings)

상단 탐색 바에서 Settings 옵션을 클릭합니다.

Blocking Queries를 활성화할지 여부를 선택할 수 있습니다. 이 기능은 페이지를 수동으로 새로 고치지 않고도 UI가 실시간으로 업데이트되게 합니다. 이 설정은 기본적으로 활성화되어 있지만 성능을 위해 대규모 데이터센터에서는 비활성화하고 싶을 수 있습니다.

더 알아보기 (Learn more)