PostgreSQL, Spotfire Server, Node Manager, Web Player, Python Service, TERR Service를 단일 서버에 순서대로 구성하는 가이드임.
Ubuntu Server 24.04 LTS / x86_64 / Spotfire Server 14.6.3 기준임. 명령은 위에서 아래 순서로 실행하면 됨.
<...>부분만 실제 환경값으로 변경하면 됨.
0. 설치 전 값과 파일 준비
시작 전에 FQDN과 고정 IP를 확정해야 함. 설치가 끝난 뒤 주소가 바뀌면 Server 공개 주소와 Node Manager 등록을 다시 잡아야 함.
| 항목 | 예시 |
|---|---|
| FQDN | spotfire.example.internal |
| Server HTTP | 8081 |
| Server 등록 / TLS | 9080 / 9443 |
| Node Manager 등록 / 통신 | 9081 / 9444 |
| 서비스 포트 | 9501 / 9502 / 9503 |
| DB / 사용자 | spotfire_server / spotfire |
설치 미디어 디렉터리에 아래 파일이 있어야 함.
SPOT_sfire_server_14.6.3_linux.tar
SPOT_sfire_deploy_14.6.3.zip
SPOT_sf-pysrv_1.17.12_linux24gl23_x86_64.tar.gz
SPOT_terrsrv_1.23.0_linux24gl23_x86_64.tar.gz
Node Manager 압축 파일 spotfirenodemanager-14.6.3.x86_64.tar.gz도 Server 패키지를 풀었을 때 함께 있어야 함. 아래 과정에서 없다고 나오면 설치 미디어가 불완전한 상태이므로 먼저 파일을 확보해야 함.
sudo mkdir -p /srv/install/spotfire
sudo chown "$USER":"$USER" /srv/install/spotfire
cat /etc/os-release
uname -m
hostname -f
hostname -I
df -h
free -h
mkdir -p ~/spotfire-kit ~/spotfire-deploy ~/spotfire-addons
sudo apt update
sudo apt install -y unzip
tar -xf /srv/install/spotfire/SPOT_sfire_server_14.6.3_linux.tar -C ~/spotfire-kit
unzip -q /srv/install/spotfire/SPOT_sfire_deploy_14.6.3.zip -d ~/spotfire-deploy
tar -xzf /srv/install/spotfire/SPOT_sf-pysrv_1.17.12_linux24gl23_x86_64.tar.gz -C ~/spotfire-addons
tar -xzf /srv/install/spotfire/SPOT_terrsrv_1.23.0_linux24gl23_x86_64.tar.gz -C ~/spotfire-addons
find ~/spotfire-kit -type f -name 'spotfirenodemanager-14.6.3.x86_64.tar.gz' -print
test -f ~/spotfire-deploy/Products/'Spotfire Distribution'/prerequisites-ubuntu24-04.sh
마지막 두 명령에서 각각 Node Manager 파일 경로와 사전 요구사항 스크립트 경로가 출력되거나 성공해야 다음 단계로 진행하면 됨.
1. PostgreSQL과 Spotfire DB 생성
sudo apt update
sudo apt install -y postgresql postgresql-client
sudo systemctl enable --now postgresql
cd ~/spotfire-kit/scripts/postgres_install
chmod +x create_databases.sh
./create_databases.sh
스크립트 입력값은 아래처럼 사용하면 됨.
| 항목 | 값 |
|---|---|
| DB 호스트 | 127.0.0.1 |
| DB 포트 | 5432 |
| 관리자 계정 | postgres |
| Spotfire DB | spotfire_server |
| Spotfire DB 사용자 | spotfire |
DB 접속 검증까지 통과해야 함.
psql -h 127.0.0.1 -p 5432 -U spotfire -d spotfire_server \
-c "select current_user, current_database();"
2. Spotfire Server 설치와 초기 구성
sudo mkdir -p /opt/spotfire/spotfireserver/14.6.3
sudo tar -xzf ~/spotfire-kit/spotfireserver-14.6.3.x86_64.tar.gz \
--strip-components=1 -C /opt/spotfire/spotfireserver/14.6.3
cd /opt/spotfire/spotfireserver/14.6.3
sudo ./configure -s 8081 -r 9080 -b 9443
sudo ./configure-boot
DB 연결, 기본 설정, 관리자 계정을 생성함. 비밀번호는 대화형 입력으로 처리하고 명령행에 넣지 않는 편이 안전함.
cd /opt/spotfire/spotfireserver/14.6.3/tomcat/spotfire-bin
sudo -u spotfire ./config.sh bootstrap \
--driver-class=org.postgresql.Driver \
--database-url="jdbc:postgresql://127.0.0.1:5432/spotfire_server" \
--username=spotfire
sudo -u spotfire ./config.sh create-default-config
sudo -u spotfire ./config.sh create-user --username=spotfireadmin
sudo -u spotfire ./config.sh promote-admin --username=spotfireadmin
sudo systemctl enable --now spotfireserver-14.6.3
curl -I http://127.0.0.1:8081/spotfire/
외부에서 사용할 주소도 설정함.
sudo -u spotfire ./config.sh set-public-address \
--url="http://spotfire.example.internal:8081/"
sudo systemctl restart spotfireserver-14.6.3
3. Docker와 Node Manager 설치
서비스 컨테이너가 먼저 실행 가능해야 하므로 Docker부터 설치함.
sudo apt update
sudo apt install -y ca-certificates curl zip unzip aspnetcore-runtime-8.0
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
printf '%s\n' \
'Types: deb' 'URIs: https://download.docker.com/linux/ubuntu' \
'Suites: noble' 'Components: stable' 'Architectures: amd64' \
'Signed-By: /etc/apt/keyrings/docker.asc' | \
sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo bash ~/spotfire-deploy/Products/'Spotfire Distribution'/prerequisites-ubuntu24-04.sh
dotnet --list-runtimes
찾아둔 Node Manager 압축 파일을 이용해 설치함. 아래 첫 줄에서 출력된 경로를 NODE_MANAGER_TAR에 넣으면 됨.
NODE_MANAGER_TAR="$(find ~/spotfire-kit -type f -name 'spotfirenodemanager-14.6.3.x86_64.tar.gz' -print -quit)"
test -n "$NODE_MANAGER_TAR" || { echo 'Node Manager 패키지 없음'; exit 1; }
sudo mkdir -p /opt/spotfire/nodemanager/14.6.3
sudo tar -xzf "$NODE_MANAGER_TAR" --strip-components=1 -C /opt/spotfire/nodemanager/14.6.3
cd /opt/spotfire/nodemanager/14.6.3
sudo ./configure -s spotfire.example.internal -r 9080 -b 9443 -m 9081 -c 9444 \
-n spotfire.example.internal
sudo ./configure-boot
sudo systemctl enable --now spotfirenodemanager-14.6.3
sudo usermod -aG docker spotfire
sudo systemctl restart spotfirenodemanager-14.6.3
sudo -u spotfire docker version
Node ID를 찾아 Server에서 Trust 처리함.
sudo grep -E 'Node Manager ID|CSR with fingerprint' \
/opt/spotfire/nodemanager/14.6.3/nm/logs/nm.log | tail -n 5
sudo -u spotfire /opt/spotfire/spotfireserver/14.6.3/tomcat/spotfire-bin/config.sh trust-node \
--id=<NODE_MANAGER_ID>
4. 분석 서비스 배포
관리 화면에서 진행하면 됨.
Deployments & Packages의 Production 영역에 아래 SDN 파일 업로드Nodes & Services에서 Web Player, Python Service, TERR Service 인스턴스를 각각 1개씩 생성- 각 서비스가 Running 상태가 될 때까지 대기
Spotfire.Dxp.netcore-linux.sdn
Spotfire.Dxp.PythonServiceLinux.sdn
Spotfire.Dxp.TerrServiceLinux.sdn
5. 최종 점검과 접속
systemctl is-active postgresql
systemctl is-active spotfireserver-14.6.3
systemctl is-active spotfirenodemanager-14.6.3
systemctl is-active docker
sudo ss -lntp | grep -E ':(8081|9080|9443|9081|9444|9501|9502|9503)\b'
sudo -u spotfire docker ps -a
http://spotfire.example.internal:8081/spotfire/ui/login
9501은 Web Player 서비스 포트임. 사용자는 이 포트로 직접 접속하지 않고 항상 Spotfire Server 로그인 주소로 접근하면 됨.
Web Player에서 열 DXP는 서버가 접근 가능한 데이터 원본을 사용해야 함. 로컬 PC 경로를 참조한다면 Spotfire Analyst에서 데이터를 분석 파일에 포함해 저장하면 됨.