이 포스팅은 실제 공공기관 온프라미스 Tableau Server 구축 프로젝트에서 직접 겪은 경험을 바탕으로 작성되었습니다.
참고 공식 문서: 오프라인으로 Tableau Server 활성화 (Tableau 공식 도움말)
들어가며 — UI 버튼이 없어도 당황하지 마세요
TSM(Tableau Services Manager) 관리자 화면에서 라이선스 인증을 시도하면 이런 흐름을 기대하게 됩니다.
제품 키 입력 → "오프라인 파일 만들기" 버튼 클릭 → JSON 파일 생성 → …
그런데 실제 버튼이 보이지 않고 경고 메시지만 뜨는 경우가 있습니다. 처음 마주치면 꽤 당황스럽습니다. 저도 그랬으니까요.

결론부터 말하면, TSM 관리자 UI에서 못 하는 작업은 TSM CLI(명령줄)로 전부 처리할 수 있습니다. 오프라인 라이선스 인증도 마찬가지입니다. UI 버튼이 없어도 명령어 두 줄로 깔끔하게 해결됩니다.
이 글은 그 전체 과정을 단계별로 정리한 실무 기록입니다.
오프라인 인증이 왜 필요한가
공공기관, 금융기관, 제조업 등 보안 정책이 강한 환경의 온프라미스 서버는 인터넷이 완전히 차단되어 있는 경우가 많습니다. Tableau Server의 기본 라이선스 인증은 Tableau 인증 서버와 직접 통신하는 온라인 방식이기 때문에, 인터넷이 없는 환경에서는 이 방법을 쓸 수 없습니다.
이때 사용하는 것이 오프라인 활성화(Offline Activation) 입니다.
서버(오프라인)에서 요청 파일 생성
↓ 파일 반출
인터넷 PC에서 Tableau 활성화 사이트에 업로드 → 응답 파일 다운로드
↓ 파일 반입
서버(오프라인)에서 응답 파일로 인증 완료
파일을 물리적으로 오가는 방식이기 때문에 시간이 좀 걸리지만, 과정 자체는 명확합니다.
라이선스 기술 방식: FlexNet vs ATR
Tableau Server 2023.1부터 두 가지 라이선스 기술이 공존합니다. 어떤 방식인지에 따라 생성되는 파일 형식이 다르기 때문에 먼저 확인이 필요합니다.
구분 FlexNet (레거시, 여전히 지원) ATR (최신)
| 요청 파일 | TableauOfflineActivationRequest.tlq | OfflineActivationRequestFile_yyyyMMdd.hhmmss.json |
| 응답 파일 | activation.tlf | OfflineActivationLicensingAtrs.zip |
| 적용 버전 | 2023.1 이전 설치 기준 | 2023.1 이상 신규 설치 |
실무 팁: 명령어를 실행하고 나서 생성된 파일 확장자를 보면 어느 방식인지 바로 알 수 있습니다.
.json 파일이 나오면 ATR, .tlq 파일이 나오면 FlexNet입니다.
이 포스팅의 사례는 ATR 방식 기준입니다. 응답 파일이 .zip으로 내려옵니다.
전체 과정 한눈에 보기
[STEP 1] TSM에 로그인
[STEP 2] tsm 명령어로 오프라인 활성화 요청 파일(JSON) 생성
[STEP 3] 파일질라(FileZilla)로 파일을 내 PC로 반출
[STEP 4] 파일 담당자에게 전달 → 인터넷 PC에서 Tableau 활성화 사이트 업로드
[STEP 5] 응답 파일(ZIP) 수령 → 서버로 반입
[STEP 6] tsm 명령어로 응답 파일 적용 → 인증 완료
[STEP 7] (선택) tsm licenses list로 인증 확인
STEP 1 — TSM 로그인
서버 터미널(SSH)에 접속한 뒤, TSM에 로그인합니다.
tsm login -u <username>
비밀번호를 입력하면 로그인이 완료됩니다.
로그인이 안 될 때
계정이 tsmadmin 그룹에 속해 있어야 TSM을 사용할 수 있습니다. 그룹 확인 명령어:
grep tsmadmin /etc/group
계정이 없다면 추가:
sudo usermod -G tsmadmin -a <username>
추가 후 다시 tsm login을 실행합니다.
STEP 2 — 오프라인 활성화 요청 파일 생성
이게 핵심입니다. TSM CLI로 요청 파일을 생성합니다.
tsm licenses get-offline-activation-file -k <product-key> -o <target-directory>
- -k : Tableau 고객 포털에서 확인한 제품 키
- -o : 파일이 저장될 디렉터리 경로 (미리 존재해야 합니다)
예시
# 디렉터리 먼저 생성
mkdir -p /home/tableauadmin/offline_activation
# 요청 파일 생성
tsm licenses get-offline-activation-file -k XXXX-XXXX-XXXX-XXXX -o /home/tableauadmin/offline_activation
명령이 성공하면 지정한 디렉터리에 파일이 생성됩니다.
- ATR 방식: OfflineActivationRequestFile_20250610.143025.json
- FlexNet 방식: TableauOfflineActivationRequest.tlq
⚠️ 주의: 제품 키를 잘못 입력하거나 이미 활성화된 키를 입력하면 에러가 납니다. Tableau 고객 포털에서 정확한 키를 복사해서 붙여 넣는 것이 안전합니다.
STEP 3 — 파일질라(FileZilla)로 파일 반출
서버에 생성된 요청 파일을 인터넷이 연결된 PC로 옮겨야 합니다.
가장 편한 방법은 **파일질라(FileZilla)**를 이용한 SFTP 접속입니다.
접속 방법
- 파일질라 실행 → 상단 빠른 연결 입력
- 호스트: sftp://서버IP
- 사용자명: 서버 계정
- 포트: 22 (변경된 경우 해당 포트)
- 접속 후 좌측(로컬)과 우측(서버) 창 확인
- 서버 우측 창에서 파일이 있는 경로 이동
- 파일을 드래그해서 로컬 PC로 복사
보안 규정이 있는 현장이라면?
직접 반출이 안 되는 경우, 파일을 내 PC로 옮긴 뒤 파일 반입반출 담당자에게 메신저로 파일을 전달하고 요청하는 절차를 따릅니다. 실제 현장에서도 이 방식으로 진행했습니다.
STEP 4 — Tableau 활성화 사이트에서 응답 파일 생성
인터넷이 연결된 PC에서 아래 링크로 이동합니다.
👉 http://www.tableau.com/ko-kr/support/activation
- 파일 선택 클릭 → STEP 2에서 만든 요청 파일 선택
- 활성화 파일 업로드 클릭
- 성공하면 here 링크가 표시됩니다 → 클릭해서 응답 파일 다운로드
응답 파일의 형식:
- ATR 방식: OfflineActivationLicensingAtrs.zip (ZIP 파일)
- FlexNet 방식: activation.tlf
⚠️ 중요한 포인트:
ATR 방식이라면 응답 파일이 ZIP 압축 파일입니다.
요청할 때 JSON 파일을 보냈는데 ZIP으로 돌아오니까 처음엔 당황할 수 있습니다.
절대 압축을 풀지 마세요. ZIP 파일째로 그대로 서버에 올려야 합니다.
STEP 5 — 응답 파일 서버로 반입
파일질라로 다시 서버에 접속해서 응답 파일(ZIP 또는 tlf)을 서버로 업로드합니다.
파일 위치는 어디든 상관없지만, 관리 편의상 STEP 2에서 만든 디렉터리와 같은 곳에 넣는 것을 추천합니다.
/home/tableauadmin/offline_activation/
├── OfflineActivationRequestFile_20250610.143025.json ← 요청 파일 (참고용)
└── OfflineActivationLicensingAtrs.zip ← 응답 파일 (활성화에 사용)
STEP 6 — 응답 파일로 라이선스 인증
이제 최종 명령어입니다.
tsm licenses activate -f <path-and-activation-file>

예시
tsm licenses activate -f /home/tableauadmin/offline_activation/OfflineActivationLicensingAtrs.zip
성공하면 아래 메시지가 출력됩니다.
Activation successful.
이 메시지를 보는 순간, 라이선스 인증이 완료된 겁니다. 🎉
서버가 이미 실행 중이라면 변경 사항 적용을 위해 재시작이 필요합니다.
(처음 설치 과정 중이라면 이 단계를 건너뛰어도 됩니다)tsm restart
STEP 7 — 인증 확인 (선택)
라이선스가 제대로 등록됐는지 확인하려면:
tsm licenses list
활성화된 라이선스 목록, 만료일, 할당된 시트 수 등이 출력됩니다.
TSM 관리자 웹 UI에서도 확인할 수 있습니다. 라이선스 상태가 모두 녹색으로 바뀌면 정상입니다.
전체 명령어 요약
# 1. TSM 로그인
tsm login -u <username>
# 2. 요청 파일 생성 (디렉터리는 미리 생성)
tsm licenses get-offline-activation-file -k <product-key> -o <target-directory>
# 3~5. 파일 반출 → 활성화 사이트 업로드 → 응답 파일 반입 (수동 작업)
# 6. 응답 파일로 인증
tsm licenses activate -f <path-and-activation-file>
# 7. (이미 실행 중인 경우) 서버 재시작
tsm restart
# 8. 인증 확인
tsm licenses list
자주 하는 실수 & 트러블슈팅
상황 원인 해결책
| tsm 명령어 실행 시 권한 오류 | 계정이 tsmadmin 그룹에 없음 | sudo usermod -G tsmadmin -a <username> |
| 요청 파일 생성 디렉터리 오류 | 지정한 경로가 없음 | mkdir -p <target-directory> 먼저 실행 |
| 응답 파일 적용 실패 | ZIP 압축을 풀고 적용 시도 | ZIP 파일 그대로 경로 지정 |
| 인증 후에도 UI가 변화 없음 | 서버 재시작 안 함 | tsm restart 실행 |
| 이미 활성화된 키 입력 오류 | 중복 키 사용 | Tableau 고객 포털에서 키 상태 확인 |
마치며 — 현장에서 배운 것
온프라미스 환경의 Tableau Server 구축은 클라우드 환경과는 다른 감각이 필요합니다.
인터넷이 없다는 전제 하에, 모든 작업이 파일 단위의 물리적 이동으로 이루어집니다.
TSM 관리자 UI가 예상대로 동작하지 않을 때, CLI가 항상 대안입니다.
오히려 CLI가 더 정확하고, 스크립트 자동화도 가능합니다.
처음 현장에서 이 과정을 직접 밟으면서 느낀 건, 공식 문서를 그대로 따라가면 결국 된다는 것입니다.
단, 파일 형식(JSON → ZIP)처럼 예상과 다른 포인트에서 멈추지 않도록 미리 알아두는 게 중요합니다.
이 글이 같은 상황을 마주한 분들께 도움이 되길 바랍니다.
참고 자료