NPU
설치된 NPU 카드의 식별 정보와 현재 상태입니다
설치된 NPU
줄을 클릭하면 그 카드의 식별 정보와 코어별 상태가 열립니다| NPU | 모델 | 상태 | 온도 | 전력 | 사용률 | 메모리 | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ▸ | {{ g.label }} · 랙 {{ g.rack || '—' }} · {{ g.models }} | 최고 {{ g.maxTemp != null ? g.maxTemp.toFixed(1) + '°C' : '—' }} | {{ g.powerSum != null ? Math.round(g.powerSum) + ' W' : '—' }} · {{ g.powerSamples }}/{{ g.total }}장 기준 | 정상 {{ g.alive }} · 응답 없음 {{ g.down }} · 미확인 {{ g.unknown }} · 스로틀 {{ g.throttled }} · 스로틀 미확인 {{ g.throttleUnknown }} | |||||||||||||||||||||||||||||||
| ▸ | {{ c.device }} | {{ c.model }} | {{ c.throttling_total > 0 ? '스로틀' : (c.alive === true ? '정상' : (c.alive == null ? '미확인' : '응답 없음')) }} | {{ c.temperature != null ? c.temperature.toFixed(1) + '°C' : '—' }} | {{ c.power_watts != null ? Math.round(c.power_watts) + ' W' : '—' }} |
{{ c.utilization != null ? c.utilization.toFixed(0) + '%' : '—' }}
|
{{ (c.memory_used != null || c.memory_total != null) ? (c.memory_used != null ? gb(c.memory_used) : '—') + ' / ' + (c.memory_total != null ? gb(c.memory_total) : '—') + ' GB' : '—' }} | ||||||||||||||||||||||||||||
|
식별 정보
코어별 사용률 · 주파수
이 모델은 코어별 지표를 내지 않습니다 — 카드 단위로만 봅니다. 스로틀링 이벤트
{{ t.label }}
{{ t.count }}
●
스로틀링이 걸려 있습니다 — 사용률이 {{ c.utilization.toFixed(0) }}% 인데 실제 주파수는 낮아져 있습니다.
스로틀링이 걸려 있습니다 — 실제 주파수가 낮아져 있습니다.
●
흡기 {{ c.temp_ambient.toFixed(1) }}°C · 최고 {{ c.temp_peak != null ? c.temp_peak.toFixed(1) : '—' }}°C
|
|||||||||||||||||||||||||||||||||||
| 수집된 NPU 없음 | |||||||||||||||||||||||||||||||||||
랙
등록된 랙 {{ racks.length }} / {{ RACK_MAX }}개 · 카드의 실장도를 클릭하면 랙 상세로 들어갑니다
입력하면 빈 랙이 생깁니다
등록된 랙이 없습니다 — 랙을 추가해 시작하세요
등록 현황
{{ racks.length }} / {{ RACK_MAX }}랙은 최대 {{ RACK_MAX }}개까지 등록합니다 · 상한 도달 시 추가 버튼이 잠깁니다
서버 등록 순서
{{ rackDetail.name }}
{{ rackDetail.total_u }}U · 사용 {{ rackDetail.used_u }}U · 여유 {{ rackDetail.free_u }}U · 서버 {{ rackDetail.server_count }}대 {{ rackBadge(rackDetail) }}
실장도
장비를 클릭하면 서버 상세로 이동합니다 · 네트워크 장비를 클릭하면 수정 창이 열립니다(관리자)
{{ row.uBot }} {{ row.uTop }}
랙 환경
팬 제어 →설치된 서버 {{ rackDetail.server_count }}대
전원 제어 →| 서버 | 역할 | 위치 | 전원 | 온도 | BMC | |
|---|---|---|---|---|---|---|
| {{ seg.name }} | {{ seg.role }} | {{ uSpan(seg.u_start, seg.u_height) }} | ● {{ seg.status==='on'?'ON':(seg.status==='off'?'OFF':'—') }} | {{ srvTemp(seg.id) }} | {{ seg.bmc_host || '미지정' }} | 위치 변경 상세 → |
Grafana 대시보드
센서 추이는 Grafana에서 봅니다등록된 대시보드 없음
{{ serverDetail.name }}
● 전원 {{ serverDetail.status==='on'?'ON':(serverDetail.status==='off'?'OFF':'—') }}{{ serverDetail.role }} · {{ rackDetail ? rackDetail.name : '' }} {{ uSpan(serverDetail.u_start, serverDetail.u_height) }} ({{ serverDetail.u_height }}U) · {{ powerKindText(serverDetail) }}
전원 상태
{{ powerKindText(serverDetail) }}BMC 정보
{{ probeBadgeLabel(bmcCard) }}BMC 없음
| 방식 | {{ bmcCard ? (probeProtocolLabels[bmcCard.protocol] || '—') : '—' }} |
| 제조사 | {{ bmcVendorText(bmcCard) || '—' }} |
| BMC 주소 | {{ bmcAddressText(serverDetail) }} |
| 계정 | {{ (bmcCard && bmcCard.username) || '—' }} |
| 마지막 판별 | {{ probeHistoryTime(serverDetail.bmc_probe) }} {{ probeOutcomeLabel(serverDetail.bmc_probe) }} · {{ probeFailReason(serverDetail.bmc_probe) }} 판별 기록 없음{{ bmcCollectedNote(bmcCard) }} |
식별 정보
| 서버 ID | {{ serverDetail.id }} |
| 수집 이름 | {{ serverDetail.collect_name || '미지정' }} |
| 역할 | {{ serverDetail.role || '—' }} |
| 랙 · 위치 | {{ rackDetail ? rackDetail.name : '—' }} · {{ uSpan(serverDetail.u_start, serverDetail.u_height) }} ({{ serverDetail.u_height }}U) |
| 드라이버 | {{ powerKindText(serverDetail) }} |
| OS 주소 | {{ serverDetail.os_host || '미지정' }} |
온도
{{ srvBmcUnset ? 'BMC 주소 미지정 — 센서 미수집' : '' }}전력
{{ srvBmcUnset ? 'BMC 주소 미지정 — 센서 미수집' : '' }}서버 팬 {{ fmtList(hw.fans).length }}기
랙 팬 제어와는 별개입니다| 팬 | RPM | 상태 | 비중 |
|---|---|---|---|
| {{ srvBmcUnset ? 'BMC 주소 미지정 — 센서 미수집' : '—' }} | |||
| {{ f.name }} | {{ fmtInt(f.rpm) }} | {{ fmtEnum(f.health, {0:'정상',1:'주의',2:'심각'}) }} | |
개요
서버실 전체 현황 · 랙별 상세는 좌측 랙 메뉴에서 봅니다
발생 중 알람 {{ ovFiring.length }}건
알람 현황 →| 알람 | 대상 | 심각도 | 지속 |
|---|---|---|---|
| {{ a.name }} |
{{ a.target }}
{{ a.target }}
{{ a.sub }}
|
{{ a.severity==='critical'?'심각':'주의' }} | {{ a.since }} |
발생 중인 알람이 없습니다
주의 필요
주의가 필요한 항목이 없습니다
환경 · 팬
팬 제어 →Grafana 대시보드
센서 추이등록된 대시보드 없음
데이터 조회
최근 15일 이내 데이터는 대시보드에서 확인하세요 — 이 화면은 장기 이력 조회용입니다
조회 조건
| 시간 | 대상 | 지표 | 값 |
|---|---|---|---|
| {{ row.timeText }} | {{ row.target }} | {{ row.metric }} | {{ row.valueText }} |
데이터 관리
보존 정책을 확인하고 기간을 지정해 데이터를 삭제합니다
보존 정책
기간이 지난 데이터는 자동으로 정리됩니다| 버킷 | 해상도 | 보존 기간 | 비고 |
|---|---|---|---|
| udcim | 원본 (15초) | 30일 | 수집 원본 |
| udcim_5m | 5분 집계 | 180일 | downsample_5m 태스크 |
| udcim_1h | 1시간 집계 | 365일 | downsample_1h 태스크 |
데이터 삭제
⚠️ 삭제된 데이터는 복구할 수 없습니다.
선택한 버킷의 해당 기간 전체 데이터가 삭제됩니다
알람 현황
지금 발생 중인 알람과, 점검 모드로 잠시 멈춰둔 알람입니다
발생 중 알람 {{ alertStatus.length }}건
| 알람명 | 상태 | 심각도 | 대상 | 설명 | 관리 |
|---|---|---|---|---|---|
| {{ a.name }} | {{ a.state }} | {{ a.severity }} |
{{ a.target }}
{{ a.target || '-' }}
{{ a.targetSub }}
|
{{ a.summary || '—' }} | 점검 중 |
| 발생 중인 알람 없음 |
점검 모드 적용 중 {{ silences.length }}건
점검 중인 알람은 알림이 발송되지 않습니다| 알람명 | 생성자 | 시작 | 종료 | 사유 | 관리 |
|---|---|---|---|---|---|
| {{ silenceAlertName(s) }} | {{ s.createdBy || '-' }} | {{ formatSilenceTime(s.startsAt) }} | {{ formatSilenceTime(s.endsAt) }} ({{ remainingText(silenceAlertName(s)) || '만료' }}) | {{ s.comment || '—' }} |
점검 시간 연장
현재 잔여: {{ remainingText(silenceAlertName(s)) || '만료' }}
|
| 점검 모드 없음 |
알람 규칙
임계값·대기 시간을 수정하고, 작업 중에는 점검 모드로 알람을 잠시 멈춥니다
현재 알람 상태 (Prometheus)
| 알람명 | 상태 | 심각도 | 대상 | 설명 |
|---|---|---|---|---|
| {{ a.name }} | {{ a.state }} | {{ a.severity }} |
{{ a.target }}
{{ a.target || a.device || '-' }}
{{ a.targetSub }}
|
{{ a.summary }} |
| 알람 없음 | ||||
기본 알람 규칙
{{ group.name }} [{{ group.rules.length }}개]
| 알람명 | 설명 | 심각도 | 현재 임계값 | 대기 | 관리 |
|---|---|---|---|---|---|
|
{{ r.alert }}
점검 중 · {{ remainingText(r.alert) }}
{{ silenceDetailDataFor(r.alert).alertname }}
생성자
{{ silenceDetailDataFor(r.alert).createdBy }}
시작 시간
{{ silenceDetailDataFor(r.alert).startsAt }}
종료 시간
{{ silenceDetailDataFor(r.alert).endsAt }}
사유
{{ silenceDetailDataFor(r.alert).comment }}
|
{{ r.summary }} | {{ r.severity === 'warning' ? '주의' : '경고' }} | {{ displayThreshold(r.expr) }} | {{ displayFor(r.for, r.expr) }} |
점검 시간 연장
현재 잔여: {{ remainingText(r.alert) }}
|
팬 제어
랙마다 내부 온도에 따라 팬 속도를 자동·수동으로 조절합니다
랙별 팬 현황
줄을 클릭하면 그 랙의 상세와 수동 속도 조절이 열립니다| 랙 | 위치 | 랙 온도 | 모드 | 속도 | 제어 | |
|---|---|---|---|---|---|---|
| ▸ | {{ row.name }} | {{ row.location || '—' }} | {{ fmtSensor(row.rack_temp, '°C') }} | {{ fmtEnum(row.mode, {auto:'자동', manual:'수동'}) }} |
{{ fmtSensor(row.current_percent, '%') }}
{{ fmtInt(row.current_rpm, ' RPM') }}
|
|
|
{{ row.name }} 상세
랙 온도
{{ fmtSensor(row.rack_temp) }} °C
팬 속도
{{ fmtSensor(row.current_percent) }} %
회전수
{{ fmtInt(row.current_rpm) }} RPM
제어 모드
{{ fmtEnum(row.mode, {auto:'자동', manual:'수동'}) }}
수동 속도
%
●
랙 온도 {{ fmtSensor(row.rack_temp, '°C') }} 기준으로 자동 조절 중입니다.{{ curveNext(row.rack_temp) }}
●
{{ fanModeNote(row) }} {{ fmtSensor(row.manual_percent, '%') }}
|
||||||
| 등록된 랙 없음 | ||||||
전원 제어
BMC(Redfish/IPMI) 연동 기반 서버 전원 제어 · {{ powerFleetText(powerTargets) }}
등록된 대상
등록된 대상 {{ powerTargets.length }} / 64
| 서버 | 역할 | 상태 | 마지막 액션 | 제어 | 관리 |
|---|---|---|---|---|---|
|
{{ row.name }}
{{ powerKindLabel(row) }}
{{ row.error }}
|
{{ row.role }} | ● {{ row.status === 'on' ? 'ON' : (row.status === 'off' ? 'OFF' : '알 수 없음') }} 재부팅 중 | {{ formatPowerActionAt(row) }} |
|
|
| 등록된 대상 없음 | |||||
재부팅 시 3초 후 자동으로 ON 상태로 전환됩니다.
알림 설정
알람 발생 시 이메일을 받을 주소와 재발송 간격을 관리합니다
수신 이메일
| 이름 | 이메일 주소 | 관리 |
|---|---|---|
| {{ e.name }} — | {{ e.email }} |
|
| 등록된 이메일 없음 | ||
알림 발송 설정
계정 관리
로그인 계정과 역할(관리자·뷰어)을 관리합니다
계정 목록
| 아이디 | 표시명 | 역할 | 관리 |
|---|---|---|---|
| {{ u.username }} | {{ u.display_name }} | {{ u.role==='admin'?'관리자':'뷰어' }} |
|
계정 추가
피드백
보내면 GitHub 이슈로 등록되고, 처리 상황은 담당자가 확인합니다