Loading

Apache Log4j2 취약점(Log4shell) - Tableau Server 완화 단계

게시 일자: Dec 9, 2022
상세 설명
최근 노출된 취약점으로 인해 Log4j Apache 라이브러리를 사용하는 제품에서 원격 코드 실행이 가능하게 되었습니다.

Cause

Apache Log4j 2 라이브러리의 보안 취약점 CVE-2021-44228 및 CVE-2021-45046
솔루션

옵션 1: Tableau 업데이트

 

유지 관리 유효 기간이 지나지 않은 고객님의 경우, 영향을 받는 버전(2021년 12월 15일 이전의 모든 제품 릴리스)을 업데이트하지 않았거나 2021년 12월 15일 제품 릴리스로 업데이트한 경우 다음과 같은 더 새로운 릴리스 중 하나로 업데이트하세요.

중요한 참고 사항: 2021년 12월 19일 또는 이후에 발표된 제품 릴리스로 업데이트한 후 이전에 구성된 서버 프로세스의 레거시 파일이 파일 시스템에 존재하는 경우가 있을 수 있습니다. 예를 들어 토폴로지를 변경하여 프로세스 개수를 변경하거나 프로세스를 다른 Tableau Server 노드로 이동한 후 이런 경우가 발생할 수 있습니다. log4j-core-2.15 이전 버전은 삭제해도 안전합니다. 이런 파일은 Tableau Server 작동 중에 액세스되지 않으므로 원할 경우 제거해도 안전합니다. 그 대신 서비스를 다시 배포해도 디렉터리가 정리되고 업데이트된 파일이 배포됩니다(노드 구성 온라인 도움말 가이드 참조).
 
2021년 12월 15일 Tableau 제품 릴리스에서 Log4j2 파일을 2.15 버전으로 업데이트했습니다. 아직 진단 또는 보조 구성 요소가 남아 있을 수 있습니다. 취약한 JNDI 조회 기능을 사용하지 않도록 구성을 변경하여 이러한 미해결 구성 요소를 완화했습니다.
2021년 12월 19일 Tableau Product 릴리스에서 JNDI 조회를 기본적으로 사용하지 않도록 설정하는 Log4j 2.16 릴리스를 통합했습니다. 이 조치는 CVE-2021-44228CVE-2021-45046을 모두 해결합니다.
  • Tableau Server 2021.4.2+, 2021.3.6+, 2021.2.7+, 2021.1.10+, 2020.4.13+
2021년 12월 19일 발표된 제품 릴리스로 업데이트하면 현재 CVE-2021-44228 CVE-2021-45046에서 식별된 보안 문제를 해결하게 됩니다.

 

옵션 2: 다음과 같은 경우 옵션 2에 설명된 완화 단계 실행:

2021년 12월 15일에 발표된 제품 릴리스로 업데이트했고, 더 새로운 릴리스로 업데이트할 수 없음(이유: 유지 관리 유효 기간이 지남, 또는 회사 업데이트 기간을 벗어남 등)
영향을 받는 버전(2021년 12월 15일 이전에 릴리스된 모든 제품 버전)을 사용 중이며 더 새로운 릴리스로 업데이트할 수 없음

참고:
  • 이러한 단계를 log4j를 2.16 릴리스로 업데이트한 2021년 12월 19일 제품 릴리스에서 실행하면 안 됩니다.
  • 이러한 완화 단계는 2021년 12월 19일 및 이후 제품 릴리스 이전의 Tableau Server 버전 v2020.1 - v2021.4에 적용됩니다.

이러한 지침은 vulnerable jars에서 jndilookup.class를 제거합니다. 해당 함수를 제거하면 작동하지 않은 구성 요소가 2개 있으며, 이러한 특정 구성 요소 jars는 2.16으로 교체됩니다. 스크립트를 실행하려면 Python이 필요합니다. 이 스크립트는 중첩된 java 라이브러리 내부를 포함한 JndiLookup.class 파일에서 모든 인스턴스를 찾았음을 확인합니다. 

Tableau Server

참고:
  • 효과적인 해결책을 확인하기 위해 모든 java 아카이브를 검사해야 하므로 최소 1시간 이상의 가동 중단을 대비해야 합니다. log4j 파일을 수동으로 수정하여 단계를 벗어나지 마세요. 이러한 단계는 2020.1-2020.3 뿐만 아니라 지원되는 모든 주요 버전에서 테스트되었지만, 수동 수정을 시작하기 전에 서버의 스냅샷을 생성하고 백업을 수행하는 것이 좋습니다.
  • 2021년 12월 19일 또는 이후에 발표된 제품 릴리스로 업데이트한 경우 이 버전에 대해 JNDI 조회를 사용하지 않도록 설정했으므로 조치를 취할 필요가 없습니다.

Windows용 Tableau Server

아래 동영상에 나오는 단계를 더 잘 보려면 위 섹션을 확장하세요. 참고: 동영상은 무음입니다.

1단계: 각 노드에서 다음 수행


1. https://www.python.org/downloads/에서 Python 3.10을 다운로드하여 설치합니다.

2. 'Download the latest version for Windows(Windows용 최신 버전 다운로드)'에서 'Download Python 3.10.1(Python 3.10.1 다운로드)'을 선택합니다.
 
직접 링크: Windows 설치 프로그램 다운로드(64비트) https://www.python.org/ftp/python/3.10.1/python-3.10.1-amd64.exe

3. 파일을 다운로드한 위치(예: C:\users\<username>\Downloads)로 이동합니다.

4. Python-3.10.1-amd64를 마우스 오른쪽 단추로 클릭하고 'Run as administrator(관리자 권한으로 실행)'를 선택합니다.

5. 설정이 시작되면 'Add Python 3.10 to path(경로에 Python 3.10 추가)'를 선택합니다.

6. 'Install now(지금 설치)'를 선택하거나 필요에 따라 'Customize the installation(설치 사용자 지정)'을 선택하여 대체 설치 경로를 구성합니다.

'This installation is forbidden by system policy(이 설치는 시스템 정책에 따라 금지되었습니다.)'라는 오류가 표시되면 마우스 오른쪽 단추를 클릭하면 나타나는 'Run as Administrator(관리자 권한으로 실행)'를 사용하여 다운로드 파일을 다시 실행합니다.

7. 설치가 끝나면 'Disable path length limit(경로 길이 제한 사용 안 함)'를 선택합니다.

8. 이 문서에 첨부된 remove_jndi.zip에서 필요한 Python 스크립트 및 Windows용 Log4j 버전 2.16 jars를 다운로드합니다. 여기에는 다음이 포함됩니다.

  • log4j-api-2.16.0.jar
  • log4j-core-2.16.0.jar
  • log4j-slf4j-impl-2.16.0.jar
  • remove_jndilookup_win.py
8a. 새 관리 명령 프롬프트를 열어 Python이 경로에 있는지 확인합니다.

8b. 다음 명령을 입력하여 c:\remove_jdni 디렉터리를 생성합니다.
 
mkdir c:\remove_jndi
 
8c. 위 4개 파일을 이 디렉터리로 이동합니다. 참고: 이 C:\remove_jndi 디렉터리는 아래 지침에 나온 파일 위치로 참조됩니다.
 
이러한 지침을 실행하려는 첫 번째 노드인 경우 Tableau Server를 중지합니다.
 
tsm stop
 

2단계: 관리 서비스 중지 

1. Tableau Server가 중지되면 \packages\scripts.<version> 디렉터리 내에서 stop-administative-services.cmd를 실행하여 각 노드에서 관리 서비스를 중지합니다. 기본적으로 다음과 같습니다.
 
경로 예시: 'C:\Program Files\Tableau\Tableau Server\packages\scripts.<version>'

2. 설치 파일 내 패키지 폴더에서 디렉터리를 scripts<version> 디렉터리로 변경합니다.
 
아래 명령은 모든 버전의 특정 경로를 확인하기 위해 환경 변수를 사용합니다.

cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\scripts.%TABLEAU_SERVER_DATA_DIR_VERSION%"

3. 관리 서비스 중단 스크립트를 실행합니다.
 
a. stop-administrative-services.cmd

b. remove_jndilookup 스크립트를 실행하여 Tableau Server 위치에서 설치된 jndilookup 클래스를 제거합니다.
 
python.exe c:\remove_jndi\remove_jndilookup_win.py "C:\Program Files\Tableau\Tableau Server"

경로 끝에 '\'를 추가하지 마세요. 그렇지 않으면 오류가 발생할 수 있습니다.

remove_jndilookup_win.py의 실행이 끝날 때마다 JndiLookup.class가 제거된 파일이 포함된 로깅 정보가 나타납니다. 예를 들면 다음과 같습니다.

'Findings:

Detected org/apache/logging/log4j/core/lookup/JndiLookup.class in C:\Program Files\Tableau\Tableau Server\<path to file>'

c. 기본 위치에 설치된 경우 다시 한 번 실행해야 합니다.
 
python.exe c:\remove_jndi\remove_jndilookup_win.py "c:\ProgramData\Tableau\Tableau Server"
 
경로 끝에 '\'를 추가하지 마세요. 그렇지 않으면 오류가 발생할 수 있습니다.


2020.1~2020.3 버전 및 2021년 12월 15일자 12월 유지 관리 버전(2021.4.1, 2021.3.5, 2021.2.6, 2021.1.9, 2020.4.12)의 경우 4단계 관리 서비스 시작으로 건너뜁니다.
 

3단계: 12월 유지 관리 버전을 제외한 2020.4 이상 버전의 경우 Python 스크립트가 실행되면 Log4j 2.16 파일을 elasticsearch 및 solr 디렉터리로 복사합니다(기본 위치에 설치된 경우 두 번).


1. 설치 파일 내에서 탄력적 검색 디렉터리를 찾습니다.
 
a. 예: C:\Program Files\Tableau\Tableau Server\packages\elasticsearch.20213.21.0917.1006

b. cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\lib"

2. elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\lib 디렉터리에서 log4j-core-2.16.0.jar 및 log4j-api.2.16.0.jar을 현재 디렉터리로 복사합니다.
 
참고: 아래 지침에서는 '현재 디렉터리'라는 점을 나타내기 위해 마침표를 사용합니다.

a. copy c:\remove_jndi\log4j-core-2.16.0.jar .

b. copy c:\remove_jndi\log4j-api-2.16.0.jar .

3. elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\lib 디렉터리에서 오래된 버전을 제거합니다.
 
a. del log4j-api-2.11.1.jar

b. del log4j-core-2.11.1.jar

4. 그런 다음 'C:\Program Files\Tableau\Tableau Server\packages\elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%'의 plugins\search-guard7 디렉터리로 변경합니다.
cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\plugins\search-guard-7"
 
5. 오래된 jar을 제거합니다.
 
del log4j-slf4j-impl-2.11.1.jar

6. 새 jar을 오래된 jar 이름에 복사합니다.
 
copy c:\remove_jndi\log4j-slf4j-impl-2.16.0.jar log4j-slf4j-impl-2.11.1.jar
 
7. 디렉터리를 packages\solr7.%TABLEAU_SERVER_DATA_DIR_VERSION%\server\lib\ext 폴더로 변경합니다.

cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\solr7.%TABLEAU_SERVER_DATA_DIR_VERSION%\server\lib\ext"
 
8. 3가지 모든 2.16.0 jars를 현재 작업 디렉터리(마침표로 표시)로 복사합니다.

copy c:\remove_jndi\log4j*.jar .
 
9. elasticserver 디렉터리에는 추가적으로 삭제해야 할 jar이 하나 더 있습니다. jar에 대한 기본 설치 경로는 ProgramData 아래입니다. 디렉터리를 'C:\ProgramData\Tableau\Tableau Server\data\tabsvc\services\elasticserver_0.%TABLEAU_SERVER_DATA_DIR_VERSION%\plugins\search-guard-7'로 변경합니다.
 
 
cd "%TABLEAU_SERVER_DATA_DIR%\data\tabsvc\services\elasticserver_0.%TABLEAU_SERVER_DATA_DIR_VERSION%\plugins\search-guard-7"
 
 
10. log4j-slf4j-impl-2.11.1.jar을 삭제합니다.
 
del log4j-slf4j-impl-2.11.1.jar

권장되는 단계: 제품에 2.16 버전보다 오래된 JndiLookup.class 파일이 남아 있지 않은지 확인합니다.

1. remove_jndilookup을 “--dryrun” 플래그와 함께 실행하여 디렉터리를 스캔하되 파일에 대해서는 작업을 수행하지 않도록 스크립트에 지시합니다.

python.exe c:\remove_jndi\remove_jndilookup_win.py --dryrun "C:\Program Files\Tableau\Tableau Server" > verification.txt

python.exe c:\remove_jndi\remove_jndilookup_win.py --dryrun "c:\ProgramData\Tableau\Tableau Server" >> verification.txt


2. verification.txt에서 드라이 런 출력의 "Findings:" 섹션에 포함된 항목이 없는 경우, JndiLookup.class를 포함하는 jar을 더 찾지 않았음을 의미합니다.


4단계: 관리 서비스를 시작하고, 구성 변경 사항을 적용하여 변경 사항이 전파되도록 한 다음, 서버를 시작합니다.

 
1. 각 노드에서 TSM 관리 서비스를 시작합니다.
 
a. cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\scripts.%TABLEAU_SERVER_DATA_DIR_VERSION%"
 
b. start-administrative-services.cmd
 
참고: 모든 Tableau Server 노드가 관리 서비스를 시작하면 구성 변경 사항을 적용하여 war 파일을 다시 생성해야 합니다.

2. 초기 노드로 돌아가서 gateway.timeout의 현재 값을 확인합니다.
 
tsm configuration get -k gateway.timeout
 
3. gateway.timeout의 값을 1씩 증가시킵니다.
 
tsm configuration set -k gateway.timeout -v <current value +1, example 7201 if set at default>

4. 보류 중인 변경 사항을 적용합니다.
 
tsm pending-changes apply

5. Tableau Server를 시작합니다.
 
tsm start
 
이제 JdniLookup.class 파일이 Tableau Server의 모든 .jar 및 .war 파일에서 제거됩니다.

Linux용 Tableau Server

아래 단계를 root로 사용하지 말고 대신 sudo를 사용하세요.

참고: 이 지침은 Python이 클러스터의 각 노드에 설치되었다고 가정합니다.

1단계: 각 노드에서 다음 수행


1. 이 문서에 첨부된 remove_jndi_linux.tar.gz에서 필요한 Python 스크립트 및 Linux용 Log4j 버전 2.16 jars를 다운로드합니다. 여기에는 다음이 포함됩니다.
  • log4j-api-2.16.0.jar
  • log4j-core-2.16.0.jar
  • log4j-slf4j-impl-2.16.0.jar
  • remove_jndilookup.py
2. remove_jndi_linux.tar.gz의 압축을 해제합니다.
 
sudo tar -xzvf remove_jndi_linux.tar.gz
 
3. 홈 디렉터리에 /elasticJars라는 이름의 디렉터리를 만들고 jar 파일 3개를 /elasticJars 디렉터리로 이동합니다.
 
mkdir ~/elasticJars
mv ./log4j* ~/elasticJars

4. elasticJars에서 jar 파일의 권한을 -rw-r--r--로 설정합니다.
 
sudo chmod -R 644 ./elasticJars/

5. remove_jndilookup.py 스크립트의 권한을 Execute로 설정합니다.

sudo chmod 744 ./remove_jndilookup.py

6. Tableau Server를 중지합니다.

tsm stop
 
7. 사용자의 환경에서 TABLEAU_SERVER_DATA_DIR_VERSION 환경 변수를 사용할 수 있는지 확인합니다.

env | grep TABLEAU_SERVER_DATA_DIR_VERSION

7a. 이전 명령이 버전을 반환하지 않으면 다음 명령을 실행하여 이 세션에 대한 변수를 설정합니다.

export $(cat /etc/opt/tableau/tableau_server/environment.bash | grep TABLEAU_SERVER_DATA_DIR_VERSION | xargs)
 
7b. 이제 사용자의 환경에서 TABLEAU_SERVER_DATA_DIR_VERSION을 사용할 수 있는지 확인합니다.

env | grep TABLEAU_SERVER_DATA_DIR_VERSION
 

2단계: 각 노드의 관리 서비스 중지

참고: 각 노드에서 다음 단계를 모두 반복하세요. 이러한 단계는 기본 설치 위치를 /opt/tableau/tableau_server/packages로 가정합니다.
 

1. 관리 서비스 중지

sudo /opt/tableau/tableau_server/packages/scripts.$TABLEAU_SERVER_DATA_DIR_VERSION/stop-administrative-services

2. remove_jndilookup.py 스크립트를 실행하여 패키지 디렉터리의 jars에서 JndiLookup.class 파일을 제거합니다.

sudo ./remove_jndilookup.py /opt/tableau/tableau_server/packages

참고: remove_jndilookup.py 스크립트가 완료되면 데이터 디렉터리에 대해 스크립트를 다시 한 번 실행합니다. 기본 설정은 /var/opt/tableau/tableau_server입니다.
 

3. 우선 권한 없는 사용자의 홈 디렉터리에서 스크립트 복사본을 만듭니다. 기본 설정된 이름은 tableau입니다.

sudo cp ./remove_jndilookup.py /var/opt/tableau/tableau_server

4. 스크립트의 소유권을 tableau 사용자 및 그룹으로 변경합니다.
 
 
sudo chown tableau:tableau /var/opt/tableau/tableau_server/remove_jndilookup.py
 

5. 권한 없는 사용자로 세션을 시작합니다.

sudo su -l tableau

6. 스크립트를 실행하여 데이터 디렉터리의 jars에서 JndiLookup.class 파일을 제거합니다.

./remove_jndilookup.py /var/opt/tableau/tableau_server

7. Tableau 셸을 종료합니다.

exit
 

2020.1~2020.3 버전 및 2021년 12월 15일자 12월 유지 관리 버전(Tableau 2021.4.1, 2021.3.5, 2021.2.6, 2021.1.9, 2020.4.12)의 경우 4단계 관리 서비스 시작으로 건너뜁니다.
 

3단계: 12월 유지 관리 버전을 제외한 2020.4 이상 버전의 경우 Python 스크립트가 두 번 실행되면 Log4j 2.16 파일을 elasticsearch 디렉터리로 복사합니다.

 
1. 각 노드의 ~/elasticJars에서 jars를 대상으로 복사하고 오래된 jars를 제거합니다.

sudo cp ./elasticJars/log4j-api-2.16.0.jar /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/

sudo cp ./elasticJars/log4j-core-2.16.0.jar /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/

sudo cp ./elasticJars/log4j-slf4j-impl-2.16.0.jar /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/plugins/search-guard-7/log4j-slf4j-impl-2.11.1.jar

sudo rm /var/opt/tableau/tableau_server/data/tabsvc/services/elasticserver_0.$TABLEAU_SERVER_DATA_DIR_VERSION/plugins/search-guard-7/log4j-slf4j-impl-2.11.1.jar

sudo rm /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/log4j-api-2.11.1.jar

sudo rm /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/log4j-core-2.11.1.jar
 

권장되는 단계: 제품에 2.16 버전보다 오래된 JndiLookup.class 파일이 남아 있지 않은지 확인합니다.

그런 다음 remove_jndilookup을 --dryrun 플래그와 함께 실행하여 스크립트가 디렉터리를 스캔하되 파일에 대해서는 작업을 수행하지 않도록 할 수 있습니다.

1. remove_jndilookup.py 스크립트를 --dryrun 플래그와 함께 설치 디렉터리에 대해 실행하여 스크립트가 디렉터리를 스캔하되 파일에 대해서는 작업을 수행하지 않도록 합니다.

sudo ./remove_jndilookup.py --dryrun /opt/tableau/tableau_server/packages > verification.txt

참고: remove_jndilookup.py 스크립트가 완료된 후 데이터 디렉터리에 대해 스크립트를 다시 한 번 실행하여 데이터 디렉터리의 유효성을 검사하세요. 기본 설정은 /var/opt/tableau/tableau_server입니다.

2. 우선 권한 없는 사용자의 홈 디렉터리에서 스크립트 복사본을 만듭니다. 기본 설정된 이름은 tableau입니다.

sudo cp ./remove_jndilookup.py /var/opt/tableau/tableau_server

3. 스크립트의 소유권을 tableau 사용자 및 그룹으로 변경합니다.

 sudo chown tableau:tableau /var/opt/tableau/tableau_server/remove_jndilookup.py

5. 권한 없는 사용자로 세션을 시작합니다.

sudo su -l tableau

6. 스크립트를 --dryrun 플래그와 함께 데이터 디렉터리에 대해 실행하여 스크립트가 디렉터리를 스캔하되 파일에 대해서는 작업을 수행하지 않도록 합니다.

./remove_jndilookup.py –dryrun /var/opt/tableau/tableau_server > datadirverification.txt

verification.txt 및 datadirverification.txt에서 드라이 런 출력의 "Findings:" 섹션에 포함된 항목이 없는 경우, JndiLookup.class를 포함하는 jar을 더 찾지 않았음을 의미합니다.
 

7. Tableau 셸을 종료합니다.

exit
 

4단계: 관리 서비스 시작

 
1. 각 노드에서 관리 서비스를 시작합니다.

sudo /opt/tableau/tableau_server/packages/scripts.$TABLEAU_SERVER_DATA_DIR_VERSION/start-administrative-services

참고: 모든 Tableau Server 노드가 관리 서비스를 시작하면 구성 변경 사항을 적용하여 war 파일을 다시 생성해야 합니다.

2. 2. 초기 노드로 돌아가서 gateway.timeout의 현재 값을 확인합니다.

tsm configuration get -k gateway.timeout

3. gateway.timeout의 값을 1씩 증가시킵니다.

tsm configuration set -k gateway.timeout -v <current value +1, example 7201 if set at default>

4. 보류 중인 변경 사항을 적용합니다.
 
 
tsm pending-changes apply
 

5. Tableau Server를 시작합니다.

tsm start
 
이제 JdniLookup.class 파일이 Tableau Server의 모든 .jar 및 .war 파일에서 제거됩니다.
 

옵션 3: Tableau Server 버전 v2020.4 이상에 대해 '시스템 환경 변수'를 설정하여 취약점을 완화합니다(Tableau Server에만 해당).

참고: 이는 컴퓨터에서 모든 Java 프로세스의 환경 변수를 수정하는 CVE-44228에 대한 임시적이고 부분적인 완화 조치입니다.
 

Linux 지침


1. Tableau Server를 중지합니다.

tsm stop

2. TSM 관리 서비스를 중지합니다. 다음 스크립트를 실행합니다.

sudo /opt/tableau/tableau_server/packages/scripts.<version>/stop-administrative-services

3. 권한 없는 사용자로 변경합니다(기본 사용자는 tableau).

sudo su -l tableau

4. 변수로 log4j.conf 파일을 생성하여 취약점을 완화합니다.

echo LOG4J_FORMAT_MSG_NO_LOOKUPS=true >> ~/.config/systemd/tableau_server.conf.d/log4j.conf

5. Tableau 셸을 종료합니다. 다음 명령을 실행합니다.

exit

6. TSM 관리 서비스를 시작합니다. 다음 스크립트를 실행합니다.

sudo /opt/tableau/tableau_server/packages/scripts.<version>/start-administrative-services

7. 다중 노드 배포를 실행하는 경우 클러스터의 각 노드에 대해 2~6단계를 반복합니다.
 

8. TSM을 시작합니다.

tsm start

9. 다시 시작 후 pgrep -l run- 명령을 실행하여 Tableau 프로세스 중 하나의 PID를 얻습니다.
 

10. sudo strings /proc/<pid>/environ을 실행합니다. 여기서 <pid>는 9단계에서 반환된 PID 중 하나입니다.
 

11. 10단계의 출력에 LOG4J_FORMAT_MSG_NO_LOOKUPS=true가 있는지 확인합니다.
 
 

Windows 지침

 

1. 관리 PowerShell 창을 엽니다.
 

2. 초기 노드에서 Tableau Server를 중지합니다.

tsm stop

3. 각 노드에서 TSM 관리 서비스를 중지합니다. 다음 스크립트를 실행합니다.

C:\Program Files\Tableau\Tableau Server\packages\scripts.<version>\stop-administrative-services.cmd

4. LOG4J_FORMAT_MSG_NO_LOOKUPS 시스템 환경 변수를 만들고 true로 설정합니다. PowerShell로 이 작업을 수행하기 위한 바로 가기는 다음과 같습니다.
 
[System.Environment]::SetEnvironmentVariable(‘LOG4J_FORMAT_MSG_NO_LOOKUPS’,‘true’,[System.EnvironmentVariableTarget]::Machine)

5. 다중 노드 배포를 실행하는 경우 클러스터의 각 노드에 대해 3~4단계가 완료되었는지 확인합니다.
 

6. 각 노드에서 TSM 관리 서비스를 시작합니다. 다음 스크립트를 실행합니다.

C:\Program Files\Tableau\Tableau Server\packages\scripts.<version>\start-administrative-services.cmd

7. 초기 노드에서 Tableau Server를 시작합니다.

tsm start

8. 관리 cmd 창을 열고 명령 세트를 실행하여 환경 변수가 있는지 확인합니다. 명령 출력에 LOG4J_FORMAT_MSG_NO_LOOKUPS=true 변수가 있어야 합니다.
추가 자원
Tableau Cloud 상태에 대한 자세한 내용은 Salesforce Trust 사이트를 참조하세요.
자세한 내용은 다음을 참조하세요.
Knowledge 기사 번호

001534225

첨부 파일

remove_jndi.zip

1850 KB

remove_jndi_linux.gz

1846 KB

 
로드 중
Salesforce Help | Article