본문으로 건너뛰기

관리 콘솔

데이터레이크 노드의 운영 콘솔입니다. 브라우저로 상태 · 지표 · 로그 · 진단 · 설정 · 백업 · 워커를 한 화면에서 보고, 허용된 pd 명령을 실행하고, 같은 주소로 외부 모니터링 시스템(Grafana · Prometheus · Zabbix)에 헬스 API 를 제공합니다.

항목
백엔드 모듈plantpulse-datalake-admin-api (2026-09-03 까지 plantpulse-monitor)
어디서 도나plantpulse-datalake 컨테이너 안 — 마스터 · 워커 노드 모두
주소 (TLS)https://<서버IP>:4950/
주소 (평문)http://<서버IP>:4949/ — 같은 콘솔 · 같은 API
로그인PP_DATALAKE_ADMIN_USER(기본 admin) / PP_DATALAKE_ADMIN_PASSWORD
기본 언어영문. ?lang=ko 를 붙이면 한국어

접속

브라우저에서 두 주소 중 하나로 들어갑니다. 같은 콘솔이고 스킴만 다릅니다.

https://<서버IP>:4950/?lang=ko # TLS — 권장
http://<서버IP>:4949/?lang=ko # 평문 — 4950 으로 리다이렉트하지 않습니다
4949 는 평문입니다

로그인 비밀번호와 세션 쿠키가 그대로 흐릅니다. 신뢰할 수 없는 망에서는 반드시 4950 을 쓰세요. 4949 를 남겨 둔 것은 실수가 아니라 선택입니다 — 자체 서명 인증서 경고가 실제로 운영자를 막아 세우는 상자가 있기 때문입니다.

TLS 로 접속하면 자체 서명 인증서 경고가 뜰 수 있습니다. 실제 인증서로 바꾸는 방법은 보안 설정에 있습니다.

로그인

로그인 화면에는 이 노드의 이름과 역할(마스터 / 워커) 이 함께 표시됩니다. 여러 노드를 열어 놓고 작업할 때 어느 상자인지 확인하세요.

변수기본값설명
PP_DATALAKE_ADMIN_USERadmin로그인 이름
PP_DATALAKE_ADMIN_PASSWORD2026-09-05 이후 설치본은 개발용 기본값, 그 전은 비어 있음비어 있으면 콘솔이 열리지 않습니다
PP_DATALAKE_ADMIN_API_KEY없음로그 엔드포인트를 기계가 호출할 때의 X-API-Key

비밀번호를 바꾸거나 처음 넣는 방법은 웹 화면 로그인 계정 — 관리 콘솔에 있습니다.

«이 노드의 콘솔이 설정되지 않았습니다» 가 뜨면

PP_DATALAKE_ADMIN_PASSWORD 가 비어 있다는 뜻입니다. 콘솔만 안 켜지고 데이터레이크는 정상 기동합니다. 장애가 아니라 커미셔닝에서 빠뜨린 것이니, 값을 넣고 재시작하세요.

화면 구성 — 레일과 사이드바

왼쪽의 좁은 세로 띠가 레일이고 그룹 8개가 아이콘으로 놓입니다. 레일은 아이콘만 보여줍니다 — 이름은 마우스를 올리면 툴팁으로 나옵니다.

그룹을 고르면 그 그룹의 화면들이 사이드바로 펼쳐집니다. 단, 화면이 하나뿐인 그룹은 사이드바가 없습니다 — 고를 것이 없는데 칸만 차지하기 때문입니다.

레일의 순서는 장애 때 사람이 묻는 순서입니다 — «지금 이상이 있나» → «어디가» → «무엇이 참인가» → «누구에게 알리나» → «무엇을 바꾸나» → «명령» → «다른 화면으로» → «무슨 일이 있었나».

그룹구역화면무엇을 답하나
개요대시보드지금 이상이 있는가
토폴로지토폴로지 (탭: 데이터 흐름 · 노드)파이프라인의 어디가 막혔나, 나머지로는 데이터가 흐르나
관측상태상태 · 메트릭지금의 판정과, 지난 한 시간~이레의 추이
자원스토리지볼륨 · WAL · 복제 슬롯 · 저장소 크기
활동이벤트 · 로그 · 진단 · 작업무슨 일이 있었나 — 이벤트 저널, 서비스 로그, pd doctor, 백업 · 아카이브 잡 이력
알람알람누구에게, 언제 알리는가
운영설정설정템플릿과 렌더 결과의 diff, 템플릿 편집과 되돌리기
유지업그레이드 · 워커모듈별 버전, 클러스터 워커에 대해 무엇을 바꿔야 하나
백업백업백업 세트 · 스케줄 편집 · 실행 · 복원
명령명령허용된 pd 동사를 화면에서 실행
도구도구다른 제품 웹 UI 로 가는 카드
기록감사이 콘솔에서 누가 무엇을 바꿨나

레일의 점 읽는 법

레일의 그룹 아이콘 옆에 붙는 점은 그 그룹에 속한 화면들의 «최악» 상태입니다.

못 잰 것은 점을 그리지 않습니다 — 초록이 아닙니다

폴링이 멈췄거나 응답이 비었거나 상태가 UNKNOWN 인 컴포넌트는 점 자체가 없습니다. 초록으로 칠하지 않습니다. 즉 점이 없는 것과 초록 점은 다릅니다. «아무 색도 없으니 괜찮겠지» 로 읽지 마세요 — 못 쟀다는 뜻입니다.

알람 그룹의 점은 헬스가 아니라 알람 목록 자체를 봅니다.

FAIL소리를 내고 있는 알람이 하나라도 있다
WARN활성 알람이 있는데 전부 음소거돼 있다
OK활성 알람이 아예 없다
점 없음알람 폴링이 멈췄다 — 조용한 것이 아니라 못 본 것

조용한 것은 정상이 아닙니다. 음소거 · 규칙 꺼짐 · 최소 심각도 미만 · 억제 구간 · 채널 없음 — 알람이 소리를 내지 않는 이유는 다섯 가지이고, 콘솔은 그 다섯을 각각 다른 문장으로 알려 줍니다.

화면별로 알아 둘 것

화면알아 둘 것
토폴로지두 탭은 한 시스템의 두 그림입니다 — 데이터 흐름(MQTT → Kafka → 소비자)과 노드(마스터 · 워커). 대시보드가 «이상이 있다» 고 하면 여기서 어느 구간인지 봅니다
상태 → 컴포넌트행을 누르면 컴포넌트 상세로 들어갑니다. pd status 표와 같은 행이고 15초마다 갱신됩니다. 기동 직후 몇십 초의 STOPPED 는 창(window)입니다
로그pd logs --list 가 선언한 파일만 보여 줍니다. 앱 컨테이너(서버 · 배치 · 웨어하우스)의 로그는 여기 없습니다 — 호스트의 logs.sh 를 쓰세요
진단pd doctor 의 결과. «검사 실행» 버튼이 즉시 한 번 더 돌립니다. 한 번에 하나만 받으므로 «busy» 가 뜨면 잠깐 뒤 다시 누릅니다
작업백업 · 아카이브 · 유지 작업의 이력을 한 곳에서. 백업 화면은 백업만 따로 봅니다
설정«지금 렌더하면 무엇이 바뀌나»(pd config diff)와 «내 템플릿이 이미지 기본값과 다른가»(pd config diff --templates). 템플릿을 화면에서 고치면 리비전이 남아 되돌릴 수 있습니다. 값(비밀번호 · 주소)의 정본은 여전히 호스트입니다 → 설정 바꾸는 법
업그레이드모듈별 PlantPulse 버전과 커밋. 이미지가 굽는 /etc/plantpulse-modules.json 을 읽습니다
워커클러스터 워커에 대해 무엇을 바꿔야 하는지 명령을 보여 줄 뿐, 실행하지는 않습니다. 실행은 호스트에서 합니다 → 클러스터 설치
백업세트 목록 · 타이머 일정 · 지금 도는 것. «Schedule editor» 가 pd backup schedule set 을 부릅니다 → 백업 · 복원
명령서버가 정한 허용 목록pd 동사만 실행됩니다(목록이 화면에 보입니다). 그 밖의 명령은 컨테이너 셸에서 → pd CLI
도구다른 제품의 웹 UI 를 카드로 모아 새 탭으로 엽니다. 주소의 호스트는 지금 접속한 호스트를 따라가므로 어느 상자에서 열든 그 상자의 도구로 갑니다. 이 노드에 없는 서비스의 카드는 그려지지 않습니다
감사이 콘솔에서 누가 무엇을 바꿨는지. 워커 노드에는 감사 저장소가 없어 항상 «읽을 수 없음» 으로 나옵니다 — 조용한 한 주가 아닙니다
비어 있는 화면이 «이상 없음» 은 아닙니다

아직 데이터를 제공하지 않는 화면은 비어 있다고 알려 주면서, 그것이 «이상 없음» 이라는 뜻이 아니라고 함께 적습니다. 빈 화면을 정상으로 읽지 마세요.

도구 화면의 카드

카드주소무엇
CEPhttps://<호스트>:7401/EQL 규칙과 그것이 매칭한 이벤트
Grafanahttps://<호스트>:3000/시계열 데이터의 대시보드
Timeseries Enginehttps://<호스트>:7801/시계열 데이터가 아니라 엔진 자체의 관리 화면
Sparkhttp://<호스트>:4440/Spark 마스터 · 워커 · 실행 중인 애플리케이션
Temporalhttp://<호스트>:8233/워크플로 실행과 이력
Kestrahttps://<호스트>:8380/데이터 파이프라인 — 플로 · 실행 · 로그
MinIOhttp://<호스트>:9001/오브젝트 스토리지 — 버킷 · 객체 · 액세스 키
Data Gatewayhttps://<호스트>:5501/SQL 실행 콘솔. 옛 SQL 도구 카드는 이것으로 합쳐졌습니다(2026-09-07)

TLS 쌍둥이 포트가 있는 화면은 TLS 쪽으로 링크됩니다. 이 콘솔이 TLS(4950)라, 평문 주소를 건네지 않기 위해서입니다.

콘솔이 pd 를 얼마나 자주 부르나

콘솔의 화면은 요청마다 pd 를 돌리지 않습니다. 백엔드의 수집 루프가 한 번에 하나씩 돌리고 마지막 문서를 캐시하며, 화면은 그 캐시를 읽습니다.

동사주기
pd status --json · pd logs --list15초
pd node status --json · pd storage --json30초
pd flow --json · pd config diff --json · pd env --json60초
pd doctor --json · pd retention --json · pd config diff --templates --json300초

주기대로면 60초 중 약 46초가 pd 를 돌리는 데 쓰입니다. 그래서 콘솔이 떠 있는 상자에서 pd status 가 가끔 느린 것은 정상입니다.

헬스 API

콘솔이 그리는 화면은 전부 /api/* 위에 있고, 전체 목록과 스키마는 콘솔이 /api/openapi.json 을 읽어 API 표로 보여 줍니다.

curl -kfsS https://<서버IP>:4950/api/health | jq # TLS
curl -fsS http://<서버IP>:4949/api/health | jq # 평문 — 같은 API
docker exec plantpulse-datalake curl -kfsS https://127.0.0.1:4950/api/health | jq # 컨테이너 안 — 어떤 구성에서도
curl -kfsS https://<서버IP>:4950/api/services | jq # 서비스 목록과 상태

호스트의 status.sh · ops-check.sh · doctor.sh · stack-verify-boot.sh 가 모두 이 /api/health 를 읽습니다. /api/health 는 인증 없이 답하고, 그 밖의 API 는 로그인 세션이나 X-API-Key(로그 엔드포인트)가 필요합니다.

Prometheus 연동

https://<서버IP>:4950/metrics 를 스크레이프합니다. 자체 서명 CA 면 insecure_skip_verify 를 켭니다. 플랫폼 동봉 Grafana(3000)나 외부 Grafana 에서 데이터 소스로 연결하세요.

자주 발생하는 문제

증상원인조치
콘솔이 열리지 않음 · «설정되지 않았습니다»PP_DATALAKE_ADMIN_PASSWORD 가 비어 있음웹 화면 로그인 계정
4949 는 되는데 4950 이 안 됨인증서 문제브라우저 경고를 확인하거나 보안 설정에서 인증서 교체
헬스 엔드포인트 응답 없음데이터레이크 컨테이너 이상호스트에서 status.shlogs.sh plantpulse-datalake
화면 전체가 «Not measured»폴링이 멈췄거나 옛 이미지pd envIMAGE_BUILT_AT 을 봅니다. 2026-09-04 이전 admin-api 는 «Another job is already running» 을 자주 냈습니다
도구 카드가 안 그려짐그 서비스가 이 노드에 없음(워커) 또는 폴링 미응답마스터 노드의 콘솔로
Prometheus 스크레이프 5xx백엔드 모듈 다운status.sh 로 의존 모듈 확인
감사 화면이 «읽을 수 없음»워커 노드정상 — 마스터에서 보세요

관련 문서