본문으로 건너뛰기

홈 화면 (/ui/main) — 카드 / 액션 / 갱신 주기 완전 가이드

게이트웨이 웹 UI 의 메인 페이지 입니다. 한 화면에 게이트웨이의 모든 운영 상태를 카드 형태로 보여줍니다. 카드들은 1초 주기 로 백엔드(/monitor/bean) 에서 값을 다시 가져와 갱신되며, Sparkplug B 카드 만 별도로 5초 주기 (/api/v1/transfer) 갱신됩니다.

좌측 상단의 PlantPulse 로고 또는 직접 http://<게이트웨이>/ui/main 으로 접속.

2026.05+ 컨테이너 모드의 카드
  • MQTT / Sparkplug B / OPC UA 서버 카드: app.properties*.enable / host / port / user 키를 직접 lookup. install.sh 가 박스마다 random 비번을 생성하므로 user 가 비어있거나 박스마다 다르게 표시됨.
  • 도커 카드: /var/run/docker.sock 마운트 필요. plantpulse-edge 자기 자신은 self-exclude — list 에 표시되지 않음 (start/stop/delete 차단 안전).
  • 네트워크 카드 (LAN1/LAN2/WiFi/GSM/VPN/관리): edge.net.<role>.iface 값으로 매핑. dev 박스 처럼 enp1s0 / enp2s0 / tailscale0 같은 systemd predictable 이름이면 app.properties 에 직접 설정 (install.sh 의 LAN1_IFACE=... env 로 자동 반영 가능).
  • 컴포넌트 헬스 한 줄 확인: curl http://localhost/api/v1/system/health (인증 불필요, 8 컴포넌트 status map + 503 분기).

카드 한눈에 보기 (총 ~30개)

가로 6칸 그리드. 카드 종류는 3 가지:

종류의미
action_box (흰 배경, 큰 아이콘)회색 테두리클릭하면 해당 메뉴로 이동
black_box (검은 배경)회색 글자변하지 않는 게이트웨이 정보
gray_box (흰 배경, 회색 헤더)라이트 그레이실시간 모니터링 — 값이 1초마다 갱신

1. 상단 액션 / 정보 (1행)

1.1 엣지 정보 (black_box)

무엇을 표시하는가: 이 게이트웨이의 바뀌지 않는 정체성 정보. 부팅 시점에 한 번만 측정되어 화면에 박힙니다.

필드의미출처
HOST명OS 의 hostname (예: pe-edge-01)EdgeContext.hostname
O/SOS 이름 + 아키텍처 (예: Linux (amd64))os.name + os.arch
커널커널 버전 (예: 5.14.0-...)os.version
버전게이트웨이 SW 버전 (예: V2026.05.08)app.properties
빌드일산출물 빌드 날짜 (예: 2026-05-08)BUILD_DATE

⚠ HOST명, O/S 정보는 게이트웨이 재기동 후 OS 가 바뀌었을 때만 변합니다.

1.2 프로토콜 연결 하기 (action_box)

→ 클릭 시 /ui/connect/connect 로 이동. 새 PLC / OPC-UA / MQTT / 시뮬레이터 연결을 추가하는 화면 입니다.

1.3 연결된 목록 (N) (action_box)

→ 클릭 시 /ui/connect/list. 괄호 안의 N 은 현재 등록된 OPC(연결) 개수 (monitor.opc_count).

1.4 애플리케이션 (action_box)

/ui/apps. Docker 기반 사용자 애플리케이션을 띄우고/내리고/관리.

1.5 노-코드 플로우 (action_box)

/ui/flow (Node-RED 임베드). 자세한 사용법: 플로우 (Node-RED)

1.6 환경 설정 (action_box)

/ui/system/config. app.properties 직접 편집 + 시스템 재시작 / 재부팅 / 백업 / 임시파일 정리 등.


2. 게이트웨이 식별 (3 cards)

2.1 엣지 시작 시간 (gray_box)

무엇을 표시: 마지막으로 게이트웨이 (Tomcat) 가 부팅된 정확한 시각 — yyyy년 MM월 dd일 [a] HH시 mm분 ss초 (KST). 재시작 시점이 의심되면 이 값으로 “마지막 재시작” 을 확인하세요.

2.2 엣지 ID (gray_box)

무엇을 표시: 이 게이트웨이의 고유 ID (예: EDGE_00303). Sparkplug, REST API, OPC-UA 노드 트리 등 모든 식별 의 기준 입니다. app.propertiesedge.id 에서 옴.

2.3 배포 사이트 ID (gray_box)

무엇을 표시: 이 엣지가 어느 사이트(공장 / 라인) 에 배치됐는지 (예: SITE_00001). 외부 SCADA / Sparkplug 의 Group ID 결정에 사용. app.propertiessite.id 에서 옴.


3. 네트워크 상태 (6 cards)

각 카드는 링크 상태 아이콘 + IP 또는 DISCONNECTED(회색) 를 보여줍니다.

3.1 인터넷 (gray_box)

게이트웨이가 외부 인터넷에 ping 가능한지. 아이콘 색:

  • 녹색 globe: 정상 연결
  • 빨간 globe: 연결 실패

ping 대상은 app.propertiesmonitor.ping.targets (예: 8.8.8.8).

3.2 이더넷 (gray_box) — 두 칸으로 분할

  • 좌: 1 WAN (외부 망 NIC, net_1_ip)
  • 우: 2 PLC (PLC 망 NIC, net_2_ip)

각 칸의 색상은 인터넷 ping 결과 에 따라 같이 바뀝니다 (단순화된 표시).

3.3 WIFI (gray_box)

wifi-1 아이콘 + IP, 또는 wifi-slash 회색 (DISCONNECTED).

3.4 3G/4G/5G (gray_box)

GSM 모뎀의 IP 또는 DISCONNECTED. SIM 카드 아이콘.

3.5 VPN (gray_box)

shield-check 아이콘. VPN 연결 시 IP 표시, 끊겨있으면 회색 + DISCONNECTED.

3.6 관리 포트 (gray_box)

wrench 아이콘. USB / 별도 관리 NIC 의 IP. 일반적으로 사이트 네트워크와 분리된 진단용 채널.


4. 시스템 리소스 (5 cards)

4.1 온도 (gray_box)

CPU 온도. 90°C 이상이면 빨간색 + temperature-high 아이콘 (위험), 이하면 녹색 + temperature-low. 산업 환경에서 팬 막힘 / 고온 알람 의 1차 신호.

4.2 CPU (gray_box)

게이지(0–100%) + 총 코어 수. JustGage 라이브러리. 1초 갱신.

지속적으로 90% 를 넘으면 PLC 폴링 주기 / 태그 수 검토 필요.

4.3 물리 메모리 (gray_box)

게이지 + 사용 / 전체 (KB/MB/GB 자동 단위). swap 과 별개로 RSS 사용량.

4.4 가상 메모리 (gray_box)

스왑(swap) 사용량. 게이지 + 사용 / 전체. 평소 0–10% 정상, 지속적으로 30% 넘으면 RAM 부족 가능성.

4.5 디스크 (gray_box)

/data1 (또는 게이트웨이 홈) 의 사용률. 게이지 + 사용 / 전체.

90% 넘으면 즉시 정리 / 청소 (clean.sh / node-cleanup.sh) 절차 실행.


5. 네트워크 트래픽 (1 card)

5.1 네트워크 사용량 (gray_box)

  • 다운로드 (RX) — 누적 수신 바이트
  • 업로드 (TX) — 누적 송신 바이트

KB/MB/GB 자동 단위. 부팅 후 누적 값.


6. 수집 / 처리 (4 cards)

6.1 연결 | 태그 건수 (gray_box)

  • 상단 큰 숫자: 연결 (OPC) 수 (opc_count)
  • 하단 큰 숫자: 태그 수 (tag_count)

게이트웨이가 알고 있는 OPC/태그의 전체 카운트. 시스템 태그 (EDGE_*) 도 포함.

6.2 PLC 연결 및 수집 상태 (gray_box) — 2x4 매트릭스

좌측 (연결)의미
🟢 연결TCP/UDP 연결 OK 인 OPC 수 (plc_con_connected_count)
🔴 끊김연결 실패 OPC 수 (plc_con_disconnected_count)
우측 (수집)의미
🟢 정상수집 시작 + read 성공 중 (plc_scan_start_count)
🟧 이상수집 시작했지만 일정 시간 read 실패 (plc_scan_not_collect_count)
정지사용자가 중지 누른 OPC (plc_scan_stop_count)

연결과 수집은 다릅니다: TCP 가 살아있어도 (연결 ✅) 어떤 사유로든 read 가 안 들어오면 수집 이상 으로 분류됩니다.

6.3 PLC 읽기/쓰기 결과 (gray_box)

수집기/REST API 가 누적한 read/write 카운터. K/M/B 단위로 압축 표시.

성공실패
읽기 (R)plc_value_read_success_countplc_value_read_error_count
쓰기 (W)plc_value_write_success_countplc_value_write_error_count

우상단 ↻ 새로고침 아이콘 클릭/connect/reset-read-error 호출 → 실패 카운터만 0 으로 초기화. 알람 정리 후 다음 사이클부터 새로 카운트하고 싶을 때.

6.4 MPS (gray_box)

Messages Per Second — 초당 처리되는 데이터 포인트 수 (monitor.mps). 바로 밑에 sparkline (최근 추세 미니 차트). 부하 변화를 한눈에.

평소 사이트의 mps 가 100 인데 갑자기 0 으로 떨어지면 → PLC 연결 또는 수집 이상.


7. 전송 / 저장 (5 cards)

7.1 대기 큐 (gray_box)

전송 대기중인 포인트 큐 크기 (queue_size).

평소 0–수 십. 외부 전송이 막히면 (Sparkplug 끊김 등) 빠르게 증가 → 디스크 큐 (queue_disk_size) 로 넘침. 이 카드가 지속적으로 늘어나면 외부 통신 점검 필요.

7.2 포인트 전송 건수 (gray_box)

부팅 후 외부로 성공적으로 전송 된 누적 포인트 수 (sended_point_count).

7.3 포인트 전송량 (gray_box)

부팅 후 누적 송신 바이트 (sended_point_bytes). 자동 단위. 데이터 사용량 청구 산정에 참고.

7.4 데이터 저장량 (gray_box)

Cassandra 의 keyspace pe 에 저장된 시계열 총 크기 (MBytes 입력 → 자동 단위 변환). 디스크 잔여 공간과 같이 보세요.

7.5 데이터 저장 기간 (gray_box)

tm_tag_point 의 TTL (Time-To-Live) 일 수 (system_db_ttl, 기본 30 일). 이 일수가 지나면 자동 만료됩니다. app.properties 에서 변경.


8. 시스템 오류 (1 card)

8.1 시스템 오류 (오늘) (gray_box)

오늘(00:00–현재) 발생한 ERROR 레벨 시스템 로그 건수 (system_error_count). 빨간 큰 숫자. 숫자 클릭 → /system/log/list 로 이동, 실제 로그 본문 확인.


9. 외부 서비스 / 통합 (5 cards)

각 카드는 상태 띠 (녹색/빨강/회색) + 접속 정보 표.

9.1 플랫폼 API 서버 (gray_box)

상위 PlantPulse 플랫폼 API 와의 연결 상태. 우상단 외부링크 아이콘 클릭 시 새창으로 그 서버 접속.

의미
🟢 연결 성공 / 🔴 연결 실패 (monitor.api)
HOST/IPserver.host
PORTserver.port
USERserver.username

9.2 OPC-UA 서버 (gray_box)

게이트웨이 내장 OPC-UA 서버 정보. 외부 SCADA 가 여기로 접속해 태그를 구독.

의미
🟢 활성화 (서버는 항상 운영)
HOST/IPopc.ua.server.host
PORTopc.ua.server.tcp.port (기본 12000)
USERopc.ua.server.user

자세한 노드 트리 / 시계열 차트: OPC-UA 노드 뷰어 사용

9.3 MQTT 서버 (gray_box)

게이트웨이 내장 HiveMQ 정보 + Sparkplug 등을 발행할 토픽.

의미
🟢 활성화 / ⬜ 비활성화 (mqtt.enable)
HOST/IPmqtt.server.host
PORTmqtt.server.port (기본 1883)
USERmqtt.server.user
TOPICmqtt.server.topic (Sparkplug spBv1.0/... 또는 사용자 토픽)

9.4 Sparkplug B (gray_box)

Sparkplug 발행 컴포넌트의 실시간 상태 (5초 갱신, /api/v1/transferSparkplug 항목).

의미
🟢 활성화 (연결됨) / 🔴 연결끊김 (활성이지만 broker 연결 끊김) / ⬜ 비활성화 (sparkplug.enable=false)
GROUPSparkplug Group ID (예: Plant1)
NODEEdge Node ID (예: EDGE_00303)
세션 #bdSeq (디바이스 birth/death 시퀀스 — 재연결 횟수)
메시지 #seq (현재 출판 메시지 번호 — 0–255 순환)

메시지 # 가 멈춰있으면 송출 중단. 세션 # 가 자주 증가하면 broker 연결이 불안정.

9.5 도커 (gray_box)

Docker 데몬 상태 + 사용자 애플리케이션 컨테이너 통계.

의미
🟢 운영중 / 🔴 중지됨 (monitor.docker_on)
카운트[ 살아있는 / 전체 ] 컨테이너 수 (docker_container_up_count / docker_container_total_count)

/ui/apps 에서 등록한 애플리케이션이 모두 살아있는지 한눈에.


10. 푸터 (모든 페이지 공통)

화면 하단에 다음이 표시됩니다.

  • PlantPulse Edge 텍스트 + 라이선스
  • 소프트웨어 업그레이드 아이콘 — 클릭 시 upgrade.sh 호출 (확인 다이얼로그 후)
    • 아이콘 옆 뱃지:
      • 빨간 "업그레이드 가능!" → 다운로드 서버에 새 버전 있음
      • 회색 "다운로드 서버 연결 안됨" → 외부 망 / product.kopens.io 접근 실패
      • (뱃지 없음) → 현재 버전이 최신
  • 외부 포트 단축 — 기타 외부 서비스 (예: Grafana 3000) 새창 띄우기

내부적으로 /config/upgrade/check 가 server-to-server 로 https://product.kopens.io/.../VERSION.JSON 을 가져와 비교 → CORS 에러 없이 깨끗하게 뱃지 표시.


11. 갱신 주기 / 데이터 출처 정리

영역갱신 주기엔드포인트
게이지 / 리소스 / 네트워크 / 카운터 / 큐 / 저장량 / 오류1초GET /monitor/bean
Sparkplug B 카드5초GET /api/v1/transfer
업그레이드 뱃지페이지 로딩 시 1회GET /config/upgrade/check
검은 정보 카드 (HOST명/OS/버전 등)안 갱신 (페이지 로딩 시점 값)EdgeContext (서버 부팅 시 결정)

12. 자주 보는 패턴

화면 신호의심 / 행동
온도 빨강 (90°C↑)팬 막힘 / 환경 온도 — 즉시 점검
CPU 90%+ 지속폴링 주기가 너무 빠름 / 태그 수 과다
디스크 90%+정리 / 청소 — clean.sh + node-cleanup.sh
PLC 끊김 카운트가 갑자기 증가PLC 망 케이블 / 스위치 / PLC 전원
수집 이상 > 0연결은 OK 인데 read 실패 — 주소 형식 / PLC 펌웨어 점검
MPS 가 0 으로 떨어짐모든 PLC 가 read 실패 또는 수집기가 멈춤
대기 큐 가 계속 증가외부 전송 (Sparkplug / MQTT) 가 막힘 — 9.3/9.4 카드 확인
시스템 오류 빨간 숫자클릭 → /system/log/list 에서 본문 확인
Sparkplug 메시지 # 가 안 변함송출 중단 — app.propertiessparkplug.* 점검
도커 빨강systemctl status docker 에서 데몬 상태 확인

13. 더 알아보기