시스템 진단 및 사용량 분석
Libre WebUI는 관리자에게 인스턴스의 두 가지 실시간 보기를 제공합니다. 호스트 및 런타임 진단을 보여 주는 시스템 페이지와 모델 및 공급자 사용량 분석을 보여 주는 사용량 페이지입니다. 두 페이지 모두 백엔드와 인터페이스에서 관리자만 이용할 수 있습니다. 어느 페이지를 읽어도 데이터는 배포 내부에 머뭅니다. 선택적 외부 원격 측정은 운영자가 별도로 구성하는 관측 가능성 경로입니다.
사이드바의 관리자 항목, 탭 메뉴의 관리자 바로 가기 또는 /system과 /usage에서 직접 접근할 수 있습니다. 관리자가 아닌 사용자는 어느 페이지도 열 수 없으며 로그인한 계정에서 admin 역할이 사라지면 관리자 탭도 닫힙니다.
시스템 진단
시스템 페이지(/system)는 다음 내용을 보고합니다.
- 호스트: 호스트 이름, 플랫폼, 커널 릴리스, 아키텍처, 가동 시간, 논리 CPU 수, CPU 모델, 평균 부하와 프로세스의 컨테이너 실행 여부. CPU 사용률 백분율은 없으며 CPU 부하는 평균 부하로만 표시됩니다.
- 런타임: 애플리케이션 버전, Node.js 버전, 프로세스 ID, 프로세스 가동 시간과 작업 디렉터리
- 메모리: 전체, 여유, 사용 중인 호스트 메모리와 프로세스 RSS 및 힙 수치
- 파일 시스템: 런타임 파일 시스템(
/)과 데이터 디렉터리(DATA_DIR)의 용량 및 사용량 - 네트워크: 인터페이스 이름과 주소, Linux에서는 수신/송신 바이트 카운터
- Docker: Docker 소켓을 사용할 수 있을 때 엔진 버전, 호스트 OS, 커널, 엔진에서 보고하는 CPU 및 메모리, 컨테이너 수와 축약된 컨테이너 목록
탭에 포커스가 있는 동안 페이지는 30초마다 새로 고쳐지며 수동 새로 고침 버튼도 있습니다. 백엔드 엔드포인트는 GET /api/system이며 인증, 활성 관리자 역할, 사용자별 15분당 요청 120회의 속도 제한으로 보호됩니다. 응답은 캐시되지 않고(Cache-Control: no-store) 각 요청에서 최신 값을 수집합니다.
Docker 소켓 의존성
Docker 섹션은 Work 런타임 및 대화형 터미널과 같은 방식으로 엔드포인트를 결정합니다. WORK_DOCKER_SOCKET이 설정되어 있으면 사용하며 이는 항상 로컬 Unix 소켓 경로입니다. 그렇지 않으면 DOCKER_HOST를 사용합니다. 이는 unix:// URL 또는 필터링된 Docker API 프록시 같은 일반 HTTP tcp:// 엔드포인트일 수 있습니다. 둘 다 없으면 /var/run/docker.sock을 사용합니다. ssh://, npipe:// 엔드포인트와 TLS 검증이 활성화된 tcp://는 의도적으로 조회하지 않습니다. 요청은 엄격하게 읽기 전용 엔진 GET(버전, 정보, 컨테이너 목록)으로 제한되고 제한 시간은 4초이며 응답 크기가 제한되고 컨테이너 목록은 최대 100개입니다.
사용 가능한 소켓이 없어도 페이지의 나머지 부분은 계속 작동합니다. Docker 패널에는 전체 요청을 실패시키는 대신 사용할 수 없는 이유(소켓이 마운트되지 않음, 마운트되었지만 읽을 수 없음, 데몬에 연결할 수 없음 또는 원격 엔드포인트)가 표시됩니다.
페이지에 표시되는 정보와 공개 대상
컨테이너 목록은 의도적으로 축약되어 짧은 ID, 이름, 이미지, 상태와 생성 시간만 표시합니다. 환경 변수, 레이블, 마운트, 컨테이너 명령과 inspect 페이로드는 절대 포함되지 않으며 응답 어디에도 자격 증명이 나타나지 않습니다.
그렇더라도 페이지에는 호스트 이름, 작업 디렉터리, 내부 IP 주소와 Libre WebUI 컨테이너뿐 아니라 Docker 호스트의 모든 컨테이너 이름 및 이미지 같은 실제 인프라 세부 정보가 표시됩니다. 이는 신뢰 모델과 일치합니다. Docker 배포에서는 모든 Libre WebUI 관리자가 이미 사실상 호스트 관리자입니다(Docker 참조). 이에 맞춰 admin 역할을 부여하세요.
사용량 분석
사용량 페이지(/usage)는 사용자에게 귀속된 모델 및 공급자 작업을 차트로 보여 줍니다. 계측은 지원되는 각 실행 경계에서 수행되며 현재 다음을 포함합니다.
- 네이티브 채팅 및 Ollama 기반 Work 호출을 포함한 로컬 Ollama 채팅 호출
- 설치된 에이전트 CLI 채팅 호출
- 스트리밍과 비스트리밍을 포함한 플러그인 기반 채팅
- 플러그인 임베딩, 이미지 생성, 음성 텍스트 변환, 텍스트 음성 변환, 사운드와 동영상
- 플러그인 기반 Work 호출
소유 사용자가 없는 백그라운드 작업은 의도적으로 가상 계정에 할당하지 않으므로 계측되지 않습니다. 호출이 실패하거나 취소되더라도 기록됩니다.
각 이벤트는 다음 항목을 기록합니다.
- 공급자/플러그인 ID와 표시 이름의 스냅샷(
ollama및agent-cli:*는 플러그인 공급자와 같은 원장을 사용) - 기능(
chat,embedding,image,stt,tts,audio,video) - 모델
- 상태:
success,error,cancelled(중단된 스트림은 취소로 계산) - 공급자가 사용량 메타데이터를 반환한 경우에만 토큰 수
- 기능에 맞는 단위 카운터(TTS 문자 수, 이미지, 임베딩 입력, 동영상 작업 수, 오디오 바이트)
- 종단 간 지속 시간과 타임스탬프
- 요청한 사용자 ID
그 외의 항목은 저장하지 않습니다. 프롬프트, 응답, 공급자 엔드포인트, 자격 증명과 공급자 오류 본문은 사용량 테이블에 절대 기록되지 않으며, 실패한 호출은 status = 'error'로만 기록됩니다. 이벤트는 선택한 애플리케이션 데이터베이스(solo 모드의 SQLite, team 모드의 PostgreSQL)에 저장되고 400일 동안 유지됩니다. 더 오래된 행은 쓰기 시 하루 최대 한 번 기회적으로 정리됩니다. 계측은 의도적으로 최선형이며 모델 또는 공급자 요청을 실패하게 만들 수 없습니다.
이 페이지는 관리자 전용 단일 엔드포인트인 GET /api/plugins/usage?days=<1..365>(기본값 30)를 통해 7일, 30일, 90일 범위를 제공합니다. 총 호출 수, 보고된 토큰, 성공률, 평균 지연 시간, 호출 수와 토큰 간에 전환 가능한 일별 차트, 모델별 표, 플러그인별 트래픽 비중과 기능 구성을 표시합니다. 토큰 합계에는 공급자가 사용량 메타데이터를 보고한 호출만 포함됩니다.
계측을 비활성화하는 스위치는 없습니다. 데이터가 계정 전체에서 집계되므로 관리자만 확인할 수 있습니다.
사용량 페이지는 호출, 단위, 토큰, 지연 시간과 결과를 보고합니다. 이러한 이벤트에 적용일별 요금표, 지출 내역, 예산, 알림 또는 회계 내보내기가 필요하면 비용 관리를 추가하세요. 일치하는 요금표가 없거나 공급자가 사용량을 보고하지 않은 이벤트는 무료로 취급하지 않고 가격 미정으로 명확히 표시합니다.
OpenRouter 귀속 정보
0.18.0부터 OpenRouter 요청은 OpenRouter의 앱 귀속 헤더(HTTP-Referer: https://librewebui.org, 애플리케이션 제목과 카테고리 힌트)를 통해 애플리케이션을 식별합니다. 이 헤더는 요청이 https://openrouter.ai 자체로 전송될 때만 보내며 사용자 지정 또는 자체 호스팅 경로에는 절대 보내지 않습니다. 로컬에 저장되는 정보도 늘어나지 않습니다.