---
schema_version: "1"
id: 6e71031de59946b08b3c2c1fc8a4ab2bf162373cf1ff5f692ef61c91f41f1be2
title: "RMT 업그레이드: 기술 참조"
collection: tableau
version: next
locale: ko-kr
portal_url: https://docs.salesforce.com/tableau/next/ko-kr/server/rmt-admin-upgrade-reference.md
canonical_url: https://help.tableau.com/v0.0/server/ko-kr/rmt-admin-upgrade-reference.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 1f854cbe28bfacd21bebe2bc1f420ec057d2901d0531cb23e1a83fbe4930b39e
description: Technical reference of operational thresholds and checks during RMT upgrade.
---
[주요 콘텐츠로 건너뛰기](#main-content)

# RMT 업그레이드: 기술 참조

이 섹션은 업그레이드 프로세스 중에 검사되는 작동 임계값, 시스템 경로 및 네트워크 포트에 대한 기술 참조 가이드입니다. 다음 테이블을 사용하여 유효성 검사 오류를 신속하게 진단하고 환경을 필요한 RMT 기준선에 맞게 조정할 수 있습니다.

**참고**: '평등'이라는 회사 가치에 부합하기 위해 RMT 마스터라는 명칭을 RMT 서버로 업데이트했습니다. 일부 경우 RMT 서버 설치 경로 및 명령에서 '서버' 대신 '마스터'라는 용어를 사용할 수 있습니다. 따라서 CLI 명령 및 옵션, 설치 폴더, 구성 파일 및 기타 인스턴스에는 계속해서 이러한 용어가 표시될 수 있습니다. 자세한 내용은 [Tableau 도움말 정보](https://help.tableau.com/current/tableau/ko-kr/about-tableau-help.htm)를 참조하십시오.

## 업그레이드 전 상태 검사

업그레이드 전 상태 검사는 기존 설치가 아직 존재하는 동안 RMT 서버 또는 Agent 호스트를 검사하여 서비스가 실행 중인지, 데이터베이스에 액세스할 수 있는지 등을 확인하고 자세한 PASS/FAIL/WARN 보고서를 생성합니다. 시스템 리소스, 계정, 파일 사용 권한, PostgreSQL, RabbitMQ, 네트워킹, 구성 파일 및 RMT 서비스 전반에 걸쳐 80개 이상의 개별 검사를 실행합니다. 다음 표에는 업그레이드 전에 수행되는 검사가 나와 있습니다. **FAIL** 상태(Exit Code 2)를 반환하는 항목이 있으면 업그레이드가 취소됩니다.

### 시스템 및 하드웨어

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 158px;"><col style="width: 23%;"><col style="width: 23%;"><col style="width: 438px;"></colgroup><tbody><tr><td><b>검사 ID</b></td><td style="text-align: center;"><strong>이름 </strong></td><td><b>플랫폼</b></td><td style="text-align: center;"><strong>실패(FAIL)/경고(WARN) 조건</strong></td></tr><tr><td>#1</td><td style="text-align: center;">운영 체제</td><td>Linux, Windows</td><td style="text-align: center;"><b>WARN</b> OS 버전이 사전 검사 허용 목록에 없습니다. 지원되는 목록은 RHEL 8.x/9.x, Ubuntu 20.04/22.04/24.04, CentOS Stream 8/9, Oracle Linux 8.x/9.x, AlmaLinux 8.x/9.x, Rocky Linux 8.x/9.x, Amazon Linux 2023, Windows Server 2019/2022입니다.</td></tr><tr><td>#2</td><td style="text-align: center;">디스크 공간</td><td>Linux, Windows</td><td style="text-align: center;"><b>FAIL</b> 여유 공간이 RMT 서버에서 20GB 미만이거나 Agent에서 5GB 미만인 경우 실패. <b>WARN</b> 여유 공간이 RMT 서버에서 50GB 미만이거나 Agent에서 10GB 미만인 경우 경고</td></tr><tr><td>#2a</td><td style="text-align: center;">디스크 유형</td><td>Linux, Windows</td><td style="text-align: center;"><b>INFO</b> 드라이브가 SSD인지 HDD인지를 보고함</td></tr><tr><td>#3</td><td style="text-align: center;"><p>RAM</p></td><td>Linux, Windows</td><td style="text-align: center;"><b>WARN</b> RMT 서버가 8GB(최소) 미만인 경우 또는 Agent가 4GB(최소) 미만인 경우 경고</td></tr><tr><td>#4</td><td style="text-align: center;">CPU 코어</td><td>Linux, Windows</td><td style="text-align: center;"><b>WARN</b> RMT 서버가 8GB(최소) 미만인 경우 또는 Agent가 4GB(최소) 미만인 경우 경고</td></tr><tr><td>#4a</td><td style="text-align: center;">CPU 명령어</td><td>Linux, Windows</td><td style="text-align: center;"><b>FAIL</b>(Linux): sse4_2 또는 popcnt가 없는 경우 실패. <b>WARN</b>(Windows): 오래된 CPU가 감지된 경우 경고.</td></tr><tr><td>#4b</td><td style="text-align: center;">VC++ Redist</td><td>Windows</td><td style="text-align: center;"><b>FAIL</b> Visual Studio 2022 C++ Redistributable 가능 패키지가 없는 경우 실패.</td></tr><tr><td>#4c</td><td style="text-align: center;">OpenSSL DLLs</td><td>Windows</td><td style="text-align: center;"><b>INFO</b> libcrypto-3-x64.dll 및 libssl-3-x64.dll을 확인함</td></tr><tr><td>#5</td><td style="text-align: center;">시스템 가동 시간</td><td>Linux, Windows</td><td style="text-align: center;font-weight: bold;">INFO: <span style="font-weight: normal;">10분 미만인 경우(최근 재부팅) 또는 90일 초과인 경우(패치 대기 중) 알림</span></td></tr><tr><td>#6</td><td style="text-align: center;">Systemd 실행 중</td><td>Linux</td><td style="text-align: center;"><b>FAIL</b> systemd가 실행되고 있지 않은 경우 실패, <b>PASS</b>: 실행 중이거나 성능이 저하된 경우 통과</td></tr><tr><td>#7</td><td style="text-align: center;">FIPS 모드</td><td>Linux, Windows</td><td style="text-align: center;"><b>FAIL</b>(Windows): 레지스트리에서 사용하는 경우 실패, <b>PASS</b> FIPS를 사용 안 하는 경우 통과. <b>WARN</b>(Linux) config.json과 일치하지 않는 경우 경고. <b>PASS</b> OS 및 구성이 일치하는 경우 통과</td></tr><tr><td>#7a</td><td style="text-align: center;">PowerShell 버전</td><td>Windows</td><td style="text-align: center;"><b>INFO</b> <span style="font-weight: normal;">PowerShell 버전</span></td></tr><tr><td>#7b</td><td style="text-align: center;">시스템 로캘</td><td>Windows</td><td style="text-align: center;"><b>INFO</b> <span style="font-weight: normal;">시스템 로캘 정보</span></td></tr><tr><td>#7c</td><td style="text-align: center;">WMI 상태</td><td>Windows</td><td style="text-align: center;"><b>WARN</b> WMI 리포지토리가 일관되지 않는 경우 경고</td></tr></tbody></table>

### 계정 및 사용 권한

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 161px;"><col style="width: 23%;"><col style="width: 23%;"><col style="width: 21%;"></colgroup><tbody><tr><td><b>검사 ID</b></td><td style="text-align: center;"><strong>이름</strong></td><td><b>플랫폼</b></td><td style="text-align: center;"><strong>실패(FAIL)/경고(WARN) 조건</strong></td></tr><tr><td>#8</td><td style="text-align: center;">서비스 계정</td><td>Linux, Windows</td><td style="text-align: center;"><b>FAIL</b> RMT 서비스 계정 또는 Windows 서비스를 찾을 수 없는 경우 실패</td></tr><tr><td>#9</td><td style="text-align: center;">그룹 멤버십</td><td>Linux</td><td style="text-align: center;"><b>FAIL</b> 필수 서비스 그룹(예: rmtmasterapp, rmtmasterconfig 등)이 없는 경우 실패</td></tr><tr><td>#10</td><td style="text-align: center;">사용자 Systemd</td><td>Linux</td><td style="text-align: center;"><b>FAIL</b> 사용자 systemd daemon/링거가 활성 상태가 아닌 경우 실패</td></tr><tr><td>#44</td><td style="text-align: center;">pamtester 설치됨</td><td>Linux</td><td style="text-align: center;"><b>WARN</b> 설치되지 않은 경우 경고. 이 문제를 해결하려면 <code>yum install pamtester</code> 또는 <code>apt install libpam-runtime</code>을 설치해야 함</td></tr></tbody></table>

#### Linux에 대한 디렉터리 소유권 및 사용 권한

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 136px;"><col style="width: 23%;"><col style="width: 21%;"><col style="width: 21%;"></colgroup><tbody><tr><td><b>검사 ID</b></td><td style="text-align: center;"><strong>디렉터리</strong></td><td style="font-weight: bold;">Expected Owner:Group</td><td style="text-align: center;font-weight: bold;">예상 모드</td></tr><tr><td>#11</td><td style="text-align: center;">구성 디렉터리</td><td>tabrmt-master:rmtmasterconfig</td><td style="text-align: center;">2775</td></tr><tr><td>#12</td><td style="text-align: center;">로그 디렉터리</td><td>tabrmt-master:rmtmasterlogs</td><td style="text-align: center;">2775</td></tr><tr><td>#13</td><td style="text-align: center;">데이터 디렉터리(+ PG/RMQ 하위 디렉터리)</td><td>구성 요소별로 다름</td><td style="text-align: center;">2775</td></tr><tr><td>#14</td><td style="text-align: center;">필수 요건 디렉터리</td><td><code>root</code> 또는 구성 요소 사용자</td><td style="text-align: center;">755</td></tr><tr><td>#14a</td><td style="text-align: center;"><code>rabbitmq-defaults</code> 파일</td><td>그룹 쓰기 가능 권한 필요</td><td style="text-align: center;">g+w</td></tr><tr><td>#15</td><td style="text-align: center;">SSL 인증서 디렉터리</td><td>tabrmt-master:rmtopenssl</td><td style="text-align: center;">2775</td></tr><tr><td>#15a</td><td style="text-align: center;">홈 디렉터리</td><td>구성 요소 사용자</td><td style="text-align: center;">770</td></tr><tr><td>#15b</td><td style="text-align: center;"><code>/etc/profile.d/tabrmt-*.sh</code></td><td>root</td><td style="text-align: center;">기본값</td></tr><tr><td>#15c</td><td style="text-align: center;">구성 디렉터리 setgid 비트</td><td>--</td><td style="text-align: center;">2xxx 필수</td></tr><tr><td>#16</td><td style="text-align: center;"><code>environment.bash</code></td><td>구성 요소 사용자</td><td style="text-align: center;">group-writable</td></tr></tbody></table>

심각도: 데이터 디렉터리 집합(#13 및 #15)에 대한 소유권에만 **FAIL**이 발생합니다. 다른 모든 Linux 디렉터리 검사(#11, #12, #14, #14a, #15a–c, #16)는 설치 프로그램의 사후 설치 단계에서 업그레이드 중에 소유권을 다시 적용하기 때문에 소유권/모드 불일치 시 **WARN**이 발생합니다. 사용 권한 모드가 잘못되었지만 소유권이 올바른 경우 **WARN**이 발생합니다.

#### Windows에 대한 디렉터리 소유권 및 사용 권한

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 136px;"><col style="width: 23%;"><col style="width: 21%;"></colgroup><tbody><tr><td><b>검사</b></td><td style="text-align: center;"><strong>이름</strong></td><td style="font-weight: bold;">심각도</td></tr><tr><td>#11</td><td style="text-align: center;">구성 디렉터리 ACL</td><td><b>FAIL</b> 서비스 사용자에게 FullControl이 없는 경우 실패</td></tr><tr><td>#12</td><td style="text-align: center;">로그 디렉터리 ACL</td><td><b>FAIL</b> 서비스 사용자에게 수정 권한이 없는 경우 실패</td></tr><tr><td>#13</td><td style="text-align: center;">데이터 디렉터리 ACL(RMT 서버)</td><td><b>FAIL</b> 서비스 사용자에게 PG/RMQ 데이터 디렉터리에 대한 FullControl이 없는 경우 실패</td></tr><tr><td>#14</td><td style="text-align: center;">필수 요건 디렉터리 ACL(RMT 서버)</td><td><b>WARN</b> ReadAndExecute가 없는 경우 경고(권고 - 모든 업그레이드는 필수 요건 MSI를 다시 설치하고 설치 후 동작은 ACL을 다시 적용함)</td></tr><tr><td>#15</td><td style="text-align: center;">SSL 인증서 디렉터리 ACL(RMT&nbsp;Server)</td><td><b>FAIL</b> 서비스 사용자에게 FullControl이 없는 경우 실패</td></tr><tr><td>#16a</td><td style="text-align: center;">서비스 사용자 ID</td><td><b>PASS</b>(정보 제공용 -- 서비스를 실행하는 사용자를 표시)</td></tr><tr><td>#16b</td><td style="text-align: center;">SeServiceLogonRight 권한</td><td>있는 경우 <b>INFO</b>를 제공하고, 없거나 secedit가 실패하는 경우 <b>WARN</b> 경고가 발생</td></tr><tr><td>#16c</td><td style="text-align: center;">RMT 디렉터리의 서비스 사용자 ACL</td><td><b>FAIL</b> 서비스 사용자에게 필요한 권한이 없는 경우 실패</td></tr></tbody></table>

### 데이터베이스(PostgreSQL)

모든 PostgreSQL 검사는 RMT 서버에서만 실행됩니다.

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 233px;"><col style="width: 23%;"><col style="width: 23%;"><col style="width: 21%;"></colgroup><tbody><tr><td><b>검사 ID</b></td><td style="text-align: center;"><strong>이름</strong></td><td><b>--</b><code style="font-weight: bold;">db-password</code><b> 옵션 필요</b></td><td style="text-align: center;"><strong>실패(FAIL)/경고(WARN) 조건</strong></td></tr><tr><td>#17</td><td style="text-align: center;">PG 서비스</td><td>아니요</td><td style="text-align: center;"><b>FAIL</b> 로컬 서비스가 중지되어 사용 안 함으로 설정된 경우 실패</td></tr><tr><td>#18</td><td style="text-align: center;">포트 5555 수신 대기</td><td>아니요</td><td style="text-align: center;"><b>WARN</b>(보안 그룹 / VPC / RDS 힌트) 수신 대기 안 하는 경우 경고</td></tr><tr><td>#19</td><td style="text-align: center;">DB Connection</td><td>예</td><td style="text-align: center;"><b>WARN</b> 내부 DB에 연결할 수 없는 경우 경고(SSL, 비밀번호 또는 네트워크 문제)</td></tr></tbody></table>

### 메시징(RabbitMQ)

메시징(RabbitMQ) 검사는 RMT 서버에서만 실행됩니다.

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 234px;"><col style="width: 23%;"><col style="width: 21%;"></colgroup><tbody><tr><td><b>검사 ID</b></td><td style="text-align: center;"><strong>이름</strong></td><td style="text-align: center;"><strong>실패(FAIL)/경고(WARN) 조건</strong></td></tr><tr><td>#22</td><td style="text-align: center;">RMQ 서비스</td><td style="text-align: center;"><b>FAIL</b> 로컬 서비스가 중지되어 사용 안 함으로 설정된 경우 실패</td></tr><tr><td>#24</td><td style="text-align: center;">큐 백로그</td><td style="text-align: center;"><b>WARN</b> 메시지가 10,000개를 초과하는 큐가 있는 경우 경고</td></tr><tr><td>#25</td><td style="text-align: center;">RabbitMQ 사용자</td><td style="text-align: center;"><b>WARN</b> 기본 <code>guest</code> 사용자가 여전히 존재하는 경우 경고</td></tr><tr><td>#26</td><td style="text-align: center;">활성 연결</td><td style="text-align: center;"><b>INFO</b>만 해당. 활성 연결 수를 보고함</td></tr><tr><td>#27</td><td style="text-align: center;">Erlang 쿠키 액세스 가능</td><td style="text-align: center;"><b>WARN</b> 쿠키 파일이 없는 경우, 사용 권한이 잘못된 경우 경고(모드 400 또는 600이어야 함)</td></tr><tr><td>#27a</td><td style="text-align: center;">ERLANG_HOME 집합</td><td style="text-align: center;"><b>WARN</b>(Windows만 해당) `ERLANG_HOME`가 설정되지 않았거나 경로가 없는 경우 경고.</td></tr><tr><td>#27b</td><td style="text-align: center;">SSL 유효성</td><td style="text-align: center;"><b>FAIL</b> 인증서가 만료된 경우 실패</td></tr><tr><td>#27c</td><td style="text-align: center;">디스크 경보</td><td style="text-align: center;"><b>FAIL</b> RMQ 파티션에 여유 공간이 10GB 미만인 경우 실패(업그레이드 중단됨)</td></tr><tr><td>#45</td><td style="text-align: center;">인증서 디렉터리가 채워짐</td><td style="text-align: center;"><b>WARN</b> 인증서 디렉터리가 있지만 비어 있는 경우 또는 필요한 인증서 파일(서버 인증서, 키, CA 인증서)이 없는 경우 경고</td></tr></tbody></table>

### 네트워크 및 구성

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 245px;"><col style="width: 23%;"><col style="width: 21%;"></colgroup><tbody><tr><td><b>검사 ID</b></td><td style="text-align: center;"><strong>이름</strong></td><td style="text-align: center;"><strong>실패(FAIL)/경고(WARN) 조건</strong></td></tr><tr><td>#28a/b</td><td style="text-align: center;">Agent-마스터 통신</td><td style="text-align: center;"><b>WARN</b> Agent가 5671, 5672, 80 또는 443에서 마스터에 연결할 수 없는 경우 경고</td></tr><tr><td>#33-35</td><td style="text-align: center;">JSON/Bash Config</td><td style="text-align: center;"><b>FAIL</b> config.json, setup.json 또는 environment.bash가 없거나 잘못된 경우 실패</td></tr><tr><td>#36a</td><td style="text-align: center;">알려진 결함이 있는 버전</td><td style="text-align: center;"><b>FAIL</b> 현재 버전은 2025.3.0임(회귀 문제로 인한 업그레이드 차단)</td></tr></tbody></table>

### 서비스 및 백업

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 215px;"><col style="width: 23%;"><col style="width: 21%;"></colgroup><tbody><tr><td><b>검사 ID</b></td><td style="text-align: center;"><strong>이름</strong></td><td style="text-align: center;"><strong>실패(FAIL)/경고(WARN) 조건</strong></td></tr><tr><td>#38</td><td style="text-align: center;">모든 RMT 서비스가 실행 중임</td><td style="text-align: center;"><b>WARN</b> 중지된 각 서비스에 대해 경고</td></tr><tr><td>#38a</td><td style="text-align: center;">중단된 프로세스</td><td style="text-align: center;"><b>FAIL</b> 서비스가 중지된 후에도 남아 있는 tabrmt-* 프로세스가 있는 경우 실패</td></tr><tr><td>#39</td><td style="text-align: center;">백그라운드 프로세서 실행 중</td><td style="text-align: center;"><b>WARN</b> 호스트 프로세스가 실행되고 있지 않는 경우 경고</td></tr><tr><td>#40</td><td style="text-align: center;">업그레이드 전 백업 미리 알림</td><td style="text-align: center;"><b>WARN</b> 업그레이드 전에 구성을 백업하도록 미리 알림으로 경고</td></tr><tr><td>#41</td><td style="text-align: center;">토폴로지</td><td style="text-align: center;"><b>INFO</b>만 해당. 마스터/Agent 노드 유형 및 활성 에이전트 수(DB 포함)를 보고함</td></tr><tr><td>#42</td><td style="text-align: center;">구성 요소 버전 인벤토리</td><td style="text-align: center;"><b>INFO</b>만 해당. RMT, PostgreSQL, RabbitMQ, OpenSSL 버전을 보고함</td></tr><tr><td>#43</td><td style="text-align: center;">컴퓨터 사양 요약</td><td style="text-align: center;"><b>INFO</b>만 해당. OS, CPU 코어, RAM, 디스크 여유 공간을 보고함</td></tr></tbody></table>

## 업그레이드 후 상태 검사

이러한 검사는 업그레이드 후에 실행됩니다. 이는 차단되지 않으며 실패가 발생해도 업그레이드가 중지되지는 않지만 설치 후 문제가 발생함을 나타냅니다.

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 136px;"><col style="width: 23%;"><col style="width: 21%;"><col style="width: 21%;"></colgroup><tbody><tr><td><b>검사 ID</b></td><td style="text-align: center;"><strong>이름</strong></td><td><b>구성 요소</b></td><td style="text-align: center;"><strong>실패(FAIL)/경고(WARN) 조건</strong></td></tr><tr><td>#1a-d</td><td style="text-align: center;">서비스 및 프로세스</td><td>RMT&nbsp;Server, Agent</td><td style="text-align: center;"><b>FAIL</b> 주, PG 또는 RMQ 서비스가 실행되고 있지 않는 경우 실패</td></tr><tr><td>#2</td><td style="text-align: center;">호스트 프로세스 감독자</td><td>RMT&nbsp;Server, Agent</td><td style="text-align: center;"><b>WARN</b> 호스트 감독자 프로세스가 없는 경우 경고(자동 복구 없음)</td></tr><tr><td>#3a-b</td><td style="text-align: center;">구성 파일 무결성</td><td>RMT&nbsp;Server, Agent</td><td style="text-align: center;"><b>FAIL</b> JSON이 없거나 잘못된 경우 실패</td></tr><tr><td>#4a-b</td><td style="text-align: center;">파일 사용 권한</td><td>RMT&nbsp;Server, Agent</td><td style="text-align: center;"><b>FAIL</b> 서비스 계정으로 구성/로그 디렉터리를 읽거나 쓸 수 없는 경우 실패</td></tr><tr><td>#5a-d</td><td style="text-align: center;">포트 수신 대기</td><td>RMT&nbsp;Server</td><td style="text-align: center;"><b>FAIL</b> Web(443), AMQP(5672) 또는 DB(5555)가 수신 대기 중에 있지 않는 경우 실패</td></tr><tr><td>#6</td><td style="text-align: center;">PostgreSQL 연결</td><td>RMT&nbsp;Server</td><td style="text-align: center;"><b>FAIL</b> PostgreSQL이 연결을 허용하지 않는 경우 실패</td></tr><tr><td>#7</td><td style="text-align: center;">RabbitMQ 상태</td><td>RMT 서버</td><td style="text-align: center;"><b>SKIP</b> 외부인 경우 건너뜁니다. <b>FAIL</b> 모든 재시도가 소진된 후 실패합니다.</td></tr><tr><td>#8a</td><td style="text-align: center;">큐 소비자</td><td>RMT&nbsp;Server</td><td style="text-align: center;"><b>WARN</b> 백로그가 있지만 활성 소비자가 없는 경우 경고(마스터 작업자 연결 끊김)</td></tr><tr><td>#9</td><td style="text-align: center;">RMQ 경보</td><td>RMT&nbsp;Server</td><td style="text-align: center;"><b>FAIL</b> 활성 메모리 또는 디스크 리소스 경보가 감지되는 경우 실패</td></tr><tr><td>#10</td><td style="text-align: center;">RabbitMQ SSL 인증서</td><td>RMT 서버</td><td style="text-align: center;"><b>FAIL</b> 인증서가 만료된 경우 실패. <b>WARN</b> 인증서가 30일 이내에 만료되는 경우 경고</td></tr><tr><td>#11</td><td style="text-align: center;">FIPS 일치</td><td>RMT&nbsp;Server, Agent</td><td style="text-align: center;"><b>FAIL</b> OS FIPS 상태가 isFIPSEnabled 구성과 불일치하는 경우 실패</td></tr><tr><td>#12</td><td style="text-align: center;">웹 서버 HTTP 응답</td><td>RMT 서버</td><td style="text-align: center;">HTTP GET을 `https://localhost:&lt;port&gt;/authentication/login`으로 설정합니다. <b>PASS</b> 200 또는 302인 경우 통과. <b>FAIL</b> 연결 거부/시간 초과인 경우 실패. <b>WARN</b> 그 외 다른 오류인 경우 경고.</td></tr><tr><td>#13</td><td style="text-align: center;">HTTPS 인증서 유효성</td><td>RMT&nbsp;Server</td><td style="text-align: center;"><b>FAIL</b> 웹 서버 TLS 인증서가 만료된 경우 실패</td></tr><tr><td>#14a-d</td><td style="text-align: center;">디스크 공간</td><td>RMT&nbsp;Server, Agent</td><td style="text-align: center;"><b>FAIL</b> 여유 공간이 1GB 미만인 경우 실패. <b>WARN</b>: 여유 공간이 5GB 미만인 경우 경고</td></tr><tr><td>#15</td><td style="text-align: center;">최근 로그 오류</td><td>RMT&nbsp;Server, Agent</td><td style="text-align: center;"><b>FAIL</b> 로그에 FATAL 오류가 있는 경우 실패. <b>WARN</b>: CRITICAL 오류가 있는 경우 경고</td></tr><tr><td>#16</td><td style="text-align: center;">RMT 상태</td><td>RMT&nbsp;Server, Agent</td><td style="text-align: center;"><b>FAIL</b> <code>rmtadmin</code> 상태가 오류 패턴을 반환하면 실패</td></tr><tr><td>#17</td><td style="text-align: center;">Agent 로그 기록</td><td>Agent</td><td style="text-align: center;">Agent 데이터 디렉터리에서 로그 추적 파일(<code>.history, .json</code>)을 검사합니다. <b>WARN</b> 파일을 읽을 수 없거나 손상된 경우 경고</td></tr><tr><td>#18a-f</td><td style="text-align: center;">인벤토리 버전</td><td>RMT&nbsp;Server, Agent</td><td style="text-align: center;"><b>INFO</b> RMT 버전, PostgreSQL 버전, RabbitMQ 버전, Erlang/OTP 버전, .NET Runtime(Windows) / OS(Linux), OS 버전(Windows) / 커널(Linux)에 대한 정보 제공</td></tr></tbody></table>

## 상태 검사 종료 코드

다음 종료 코드를 사용하여 업그레이드 전 및 업그레이드 후 상태 검사 스크립트의 결과를 해석할 수 있습니다.

### 업그레이드 전 스크립트

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 136px;"><col style="width: 23%;"><col style="width: 421px;"></colgroup><tbody><tr><td><b>종료 코드</b></td><td style="text-align: center;"><strong>상태</strong></td><td><b>업그레이드 동작</b></td></tr><tr><td>0</td><td style="text-align: center;">READY TO UPGRADE</td><td>업그레이드 진행</td></tr><tr><td>1</td><td style="text-align: center;">UPGRADE&nbsp;WITH&nbsp;CAUTION</td><td>업그레이드가 진행되지만 경고를 검토해야 함</td></tr><tr><td>2</td><td style="text-align: center;">Do not upgrade</td><td>업그레이드가 취소됨</td></tr><tr><td>3</td><td style="text-align: center;">Script Error</td><td>실행 환경 검사</td></tr></tbody></table>

### 업그레이드 후 스크립트

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 136px;"><col style="width: 669px;"></colgroup><tbody><tr><td style="font-weight: bold;">종료 코드</td><td style="text-align: center;"><strong>상태</strong></td></tr><tr><td>0</td><td style="text-align: center;">ALL PASSED</td></tr><tr><td>1</td><td style="text-align: center;">WARNINGS PRESENT</td></tr><tr><td>2</td><td style="text-align: center;">CRITICAL FAILURES</td></tr></tbody></table>

## InstallerContext 심각도 변경

자동 Windows MSI 업그레이드 중에 `-InstallerContext`를 사용하여 실행하는 경우 다음 검사는 수동 기본값과 다르게 동작합니다. 기본(InstallerContext가 아닌) 동작은 'stopped but not Disabled' / 'port not listening' 상태에 대해 \*이미\* WARN으로 설정되어 있으며, FAIL은 \`Stopped+Disabled\` 상태에 한해 사용됩니다. \`-`InstallerContext`\`에서는 'Disabled' 분기조차도 WARN으로 보고되므로, 설치 프로그램이 곧 수정할 일시적인 상태 때문에 진행 중인 설치 프로그램 기반 업그레이드가 차단되는 일은 절대 없습니다.

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 136px;"><col style="width: 23%;"><col style="width: 21%;"><col style="width: 21%;"></colgroup><tbody><tr><td><b>검사</b></td><td style="text-align: center;"><strong>이름</strong></td><td><b>기본값</b></td><td style="text-align: center;"><strong>InstallerContext</strong></td></tr><tr><td>#17</td><td style="text-align: center;">PG 서비스</td><td><b>WARN</b> 중지된 경우 경고, <b>FAIL</b> 중지 및 비활성화된 경우 실패, <b>INFO</b> 모두 중지된 경우 정보 제공</td><td style="text-align: center;">WARN</td></tr><tr><td>#18</td><td style="text-align: center;">PG 포트</td><td><b>WARN</b> 수신 대기 중이 아닌 경우 경고, <b>INFO</b> 모든 서비스가 중지된 경우 정보 제공</td><td style="text-align: center;">WARN</td></tr><tr><td>#22</td><td style="text-align: center;">RabbitMQ 서비스</td><td><b>WARN</b> 중지된 경우 경고, <b>FAIL</b> 중지+비활성화된 경우 실패, <b>INFO</b> 모두 중지된 경우 정보 제공</td><td style="text-align: center;">WARN</td></tr><tr><td>#23</td><td style="text-align: center;">Port 5672 (AMQP)</td><td><b>WARN</b> 수신 대기 중이 아닌 경우 경고, <b>INFO</b> 모든 서비스가 중지된 경우 정보 제공</td><td style="text-align: center;">WARN</td></tr><tr><td>#38a</td><td style="text-align: center;">중단된 RMT 프로세스</td><td>(검사 설명 참조)</td><td style="text-align: center;">SKIP(설치 프로그램이 프로세스 수명 주기를 관리함)</td></tr></tbody></table>

### 업그레이드 전 임계값

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 136px;"><col style="width: 23%;"><col style="width: 21%;"><col style="width: 21%;"></colgroup><tbody><tr><td><b>임계값</b></td><td style="text-align: center;"><strong>RMT&nbsp;Server</strong></td><td style="font-weight: bold;">Agent</td><td style="text-align: center;font-weight: bold;">단위</td></tr><tr><td>디스크 공간 FAIL</td><td style="text-align: center;">20</td><td>5</td><td style="text-align: center;">GB 여유 공간</td></tr><tr><td>디스크 공간 WARN</td><td style="text-align: center;">50</td><td>10</td><td style="text-align: center;font-weight: bold;"><span style="font-weight: normal;">GB 여유 공간</span></td></tr><tr><td>임시 디렉터리 FAIL</td><td style="text-align: center;">5</td><td>5</td><td style="text-align: center;">GB 여유 공간</td></tr><tr><td>임시 디렉터리 WARN</td><td style="text-align: center;">10</td><td>10</td><td style="text-align: center;font-weight: bold;"><span style="font-weight: normal;">GB 여유 공간</span></td></tr><tr><td>RAM&nbsp;FAIL</td><td style="text-align: center;">8</td><td>4</td><td style="text-align: center;font-weight: bold;"><span style="font-weight: normal;">GB</span></td></tr><tr><td>RAM&nbsp;WARN</td><td style="text-align: center;">16</td><td>8</td><td style="text-align: center;font-weight: bold;"><span style="font-weight: normal;">GB</span></td></tr><tr><td>CPU&nbsp;FAIL</td><td style="text-align: center;">4</td><td>2</td><td style="text-align: center;">코어</td></tr><tr><td>CPU&nbsp;WARN</td><td style="text-align: center;">8</td><td>4</td><td style="text-align: center;">코어</td></tr><tr><td>데이터베이스 크기 FAIL</td><td style="text-align: center;">500</td><td>-</td><td style="text-align: center;">GB</td></tr><tr><td>데이터베이스 크기 WARN</td><td style="text-align: center;">200</td><td>-</td><td style="text-align: center;">GB</td></tr><tr><td>Hangfire 스키마 FAIL</td><td style="text-align: center;">10</td><td>-</td><td style="text-align: center;">GB</td></tr><tr><td>Hangfire 스키마 WARN</td><td style="text-align: center;">1</td><td>-</td><td style="text-align: center;">GB</td></tr><tr><td>WAL 디렉터리 FAIL(Windows)</td><td style="text-align: center;">10</td><td>-</td><td style="text-align: center;">GB</td></tr><tr><td>WAL 디렉터리 FAIL(Windows)</td><td style="text-align: center;">2</td><td>-</td><td style="text-align: center;">GB</td></tr><tr><td>WAL 디렉터리 FAIL(Linux)</td><td style="text-align: center;">10</td><td>-</td><td style="text-align: center;">GB</td></tr><tr><td>Mnesia 디렉터리 WARN</td><td style="text-align: center;">5</td><td>-</td><td style="text-align: center;">GB</td></tr><tr><td>RabbitMQ 디스크 경보 FAIL</td><td style="text-align: center;">10</td><td>-</td><td style="text-align: center;">GB 여유 공간</td></tr><tr><td>큐 백로그 WARN</td><td style="text-align: center;">10,000</td><td>-</td><td style="text-align: center;">메시지</td></tr><tr><td>인증서 만료 WARN</td><td style="text-align: center;">30</td><td>30</td><td style="text-align: center;">일</td></tr><tr><td>정리 보존 WARN</td><td style="text-align: center;">180</td><td>-</td><td style="text-align: center;">일</td></tr><tr><td>데드 튜플 비율 WARN</td><td style="text-align: center;">20</td><td>-</td><td style="text-align: center;">퍼센트</td></tr><tr><td>Agent 하트비트 시간 경과</td><td style="text-align: center;">15</td><td>-</td><td style="text-align: center;">분</td></tr><tr><td>네트워크 드라이버 사용 기간 WARN</td><td style="text-align: center;">3</td><td>-</td><td style="text-align: center;">년</td></tr><tr><td>로그 디렉터리 크기 WARN</td><td style="text-align: center;">5</td><td>5</td><td style="text-align: center;">GB</td></tr><tr><td>로그 디렉터리 크기 WARN(심각)</td><td style="text-align: center;">20</td><td>20</td><td style="text-align: center;">GB</td></tr></tbody></table>

### 업그레이드 후 임계값

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 207px;"><col style="width: 23%;"><col style="width: 421px;"></colgroup><tbody><tr><td style="font-weight: bold;">임계값</td><td style="text-align: center;font-weight: bold;"><strong>값</strong></td><td style="font-weight: bold;">단위</td></tr><tr><td>디스크 공간 FAIL</td><td style="text-align: center;">1</td><td>GB 여유 공간</td></tr><tr><td>디스크 공간 WARN</td><td style="text-align: center;">5</td><td>GB 여유 공간</td></tr><tr><td>인증서 만료 WARN</td><td style="text-align: center;">30</td><td>일</td></tr><tr><td>큐 백로그 WARN</td><td style="text-align: center;">10,000</td><td>메시지</td></tr><tr><td>로그 검사 기간</td><td style="text-align: center;">60</td><td>분</td></tr><tr><td>RabbitMQ 시작 재시도</td><td style="text-align: center;">6회 시도 x 5초</td><td>총 30초</td></tr></tbody></table>

## 지원되는 최소 구성 요소 버전

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 136px;"><col style="width: 23%;"></colgroup><tbody><tr><td style="font-weight: bold;">구성 요소</td><td style="text-align: center;font-weight: bold;"><strong>최소 버전</strong></td></tr><tr><td>RabbitMQ</td><td style="text-align: center;">3.10.10 이상</td></tr><tr><td>Agent 버전</td><td style="text-align: center;">2023.1.0 이상</td></tr></tbody></table>

### 자동화 및 CI/CD 통합

**Linux의 경우:**

\`\`\`base  
\# Linux  
sudo bash rmt-pre-upgrade-check.sh --component master --db-password "$DB\_PASSWORD"  
EXIT\_CODE=$?  
if \[ $EXIT\_CODE -eq 2 \]; then  
echo "BLOCKED: Fix critical issues before upgrading"  
exit 1  
fi  
\`\`\`

**Windows의 경우:**

\`\`\`powershell  
\# Windows  
.\\rmt-pre-upgrade-check.ps1 -Component master  
if ($LASTEXITCODE -eq 2) {  
Write-Error "BLOCKED: Fix critical issues before upgrading"  
exit 1  
}  
\`\`\`

## 설치 디렉터리 참조서

기초 진단 유틸리티를 수동으로 호출하거나 설치 구조를 확인하려면 플랫폼별 디렉터리 경로를 참조하십시오.

### Linux 디렉터리 구조

\`\`\`

`/opt/tableau/tabrmt/ # Install root`

+`-- master/ # Master application binaries`

`+-- agent/ # Agent application binaries`

`+-- prerequisites/ # Bundled dependencies`

`/var/opt/tableau/tabrmt/ # Data root`

`+-- master/config/ # config.json, setup.json`

`+-- master/logs/ # Application logs`

`+-- data/postgresql15/ # PostgreSQL data files`

`+-- data/rabbitmq313/ # RabbitMQ data/mnesia`

`+-- data/ssl/ # TLS certificates`

`/etc/opt/tableau/tabrmt/`

`+-- master/environment.bash # Master environment variables`

`+-- agent/environment.bash # Agent environment variables`

\`\`\`

### Windows 디렉터리 구조

\`\`\`

`C:\Program Files\Tableau\Tableau Resource Monitoring Tool\ # Install root`

`C:\ProgramData\Tableau\Tableau Resource Monitoring Tool\ # Data root`

\`\`\`

### 필수 네트워크 포트

<table style="width: 100%;margin-left: 0;margin-right: auto;" class="simple-table"><colgroup><col style="width: 136px;"><col style="width: 23%;"><col style="width: 421px;"></colgroup><tbody><tr><td><b>포트</b></td><td style="text-align: center;"><strong>서비스</strong></td><td><b>방향</b></td></tr><tr><td>80</td><td style="text-align: center;">RMT 웹 UI(HTTP)</td><td>인바운드</td></tr><tr><td>443</td><td style="text-align: center;">RMT 웹 UI(HTTPS)</td><td>인바운드</td></tr><tr><td>5672</td><td style="text-align: center;">RabbitMQ AMQP</td><td>RMT 서버에서 인바운드</td></tr><tr><td>5671</td><td style="text-align: center;">TLS를 통한 RabbitMQ AMQP</td><td>RMT 서버에서 인바운드</td></tr><tr><td>15672</td><td style="text-align: center;">RabbitMQ 관리 UI</td><td>로컬</td></tr><tr><td>25672</td><td style="text-align: center;">RabbitMQ 상호 노드</td><td>로컬</td></tr><tr><td>5555</td><td style="text-align: center;">내부 PostgreSQL</td><td>로컬</td></tr></tbody></table>