Skip links

[GDSK x Tableau] Tableau Log 정보를 활용하여 리포트 만들기 ②

[ Tableau ]

Tableau Log 데이터에 접근하는 방법
  • Log 데이터에 접근하기

로그 데이터에 접근하는 방법은 간단합니다.

Tableau Desktop 또는 Tableau 웹편집에서 ‘데이터에 연결’ 할 때 ‘서버에 연결 -> PostgreSQL’을 선택하면, DB 연결을 위한 팝업 창이 뜹니다. 이 창에 Database 정보만 입력해주면 됩니다. 일반적인 Database 데이터를 활용하는 것과 동일합니다.

그렇다면, PostgreSQL를 설치하고 구성하는 방법부터 알아야 하는 것 아닐까?

그럴 필요는 전혀 없습니다. Tableau Server리포지토리는 Tableau Server를 설치한 순간부터 ‘자동으로 생성’되기 때문입니다. 그리고 PostgreSQL DB에 대한 정보도 사용자계정 비밀번호를 제외하고는 어떤 Tableau Server든지 전부 동일한 ‘디폴트 값’으로 자동 설정됩니다.

다만, Tableau 관리자가 고려해야 할 사항이 하나 있습니다.

<그림1>  Tableau Sever Repository(PostgrSQL)에 접속하는 두 가지 경우                                          

그림-2

Tableau Server Repository(PostgreSQL)에 접근할 때, 그림에서 볼 수 있는 것처럼, 운영 서버 내부에서 관리자만 접근할 수 있는 경우가 있고, 외부에서 일반 사용자들도 접근할 수 있도록 하는 경우가 있습니다. 관리자는 이 두 경우 중에서 하나를 선택해야 합니다.

Tableau Server Repository는 운영에 필요한 모든 메타데이터를 저장하는 민감한 정보니 기본적으로는 관리자만 접근할 수 있습니다. 일반 사용자들도 접근할 수 있도록 하려면 추가 설정이 필요합니다.

  • 관리자만 접근할 수 있는 경우

그럼 먼저, 관리자만 접근할 수 있는 경우에 로그 데이터에 연결하는 방법에 대해 알아보겠습니다.

step1    Tableau를 운영하는 서버에 접속한다. (그림2)

<그림2> 원격 데스크톱 연결 창을 이용해 Tableau Sever에 접속하기                                          

step2    Tableau Desktop 실행 후 PostgreSQL에 연결한다. (그림3)

<그림3> PostgrSQL에 선택하기                                          

06.postgrsql(S)

step3    연결 정보를 기입하기 위한 팝업 창이 뜨면 필요한 정보를 입력한다. (그림4)

<그림4>    PostgrSQL에 연결하기                                          

step3-1    서버명에 localhost(Tableau Server Repository는 Tableau를 운영하는 서버에 대한 저장소이기 때문)라고 기입하거나, 운영서버의 IP를 기입한다.

step3-2    포트는 ‘8060’, 데이터베이스는 ‘workgroup’, 사용자 이름은 ‘readonly’라고 기입한다.

step4    비밀번호는 운영서버 내부에서 tsm명령어로  확인해서  입력한다.

* 서버명, 포트 번호, 데이터베이스 명칭, 사용자 이름은 모든 Tableau Server에서 동일합니다.

비밀번호는 초기에 랜덤으로 자동 설정되기 때문에 운영 서버 내부에서 TSM 명령어로 확인할 수 있습니다.

    1. 운영 서버 내에서 cmd 창을 실행하고, 다음과 같이 입력해줍니다. (그림5)

tsm configuration get -k pgsql.readonly_password

<그림5> tsm 명령어로 비밀번호 확인하기

2.명령어를 실행하여 나오는 결과가 Tableau Server를 설치할 때 자동으로 부여된 PostgreSQL 비밀번호입니다.

step5    cmd 창에서 비밀번호를 복사해서 연결 정보 팝업 창의 비밀번호 입력란에 붙여놓고 연결을 클릭한다.

연결에 성공하면, 아래 그림처럼 왼쪽에는 테이블 목록이, 오른쪽에는 빈 캔버스가 표시됩니다.

<그림6> Tableau Server 연결되었을 때의 화면

왼쪽의 테이블들은 운영에 필요한 모든 메타데이터로 Tableau Server를 설치할 때 자동으로 생성된 테이블들입니다.

이 데이터들에 대한 설명은 나중에 자세히 다뤄보겠습니다.

  • 외부에서 일반 사용자들이 접근할 수 있는 경우

먼저, 로컬 데스크톱이 Tableau 운영서버와 동일한 네트워크 대역을 사용하는지 확인합니다. 외부에서 접속하는 경우이기 때문에, 동일한 네트워크 대역을 사용하도록 설정해야 Tableau 운영서버에 접속할 수 있습니다.

Tableau 운영서버에 접속이 되면, cmd 창을 열고, 아래와 같이 TSM 명령어를 입력합니다.

tsm data-access repository-access enable –repository-username <username> –repository-password <password>

이때, <username>에는 기본 생성된 ‘readonly’ 또는 Tableau 유저를 입력해 주고, <password>부분에 초기에 설정된 비밀번호나 변경하기 원하는 비밀번호를 입력해 줍니다.

<그림7> Tableau Server Repository의 접속 비밀번호 변경하기

위의 그림은 비밀번호를 ‘test1234’로 설정한 예시입니다.

(반대로, 외부 사용자가 다시 접근하지 못하게 하려면 다음의 명령어를 입력해 줍니다.)

tsm data-access repository-access disable –repository-username readonly

비밀번호 설정을 적용하면 Tableau Server를 재기동합니다.

서버 재기동이 끝나면, 운영서버를 닫고 외부 local로 나가서 테스트를 해봅니다.

<그림8> 변경된 비밀번호로 접속하기

Tableau의 ‘서버에 연결 -> postgreSQL’을 클릭하면, 연결 정보 입력창이 뜨고, 이곳에 변경된 비밀번호 ‘test1234’를 입력하면 운영서버 외부에서 연결이 이뤄지는 것을 확인할 수 있습니다.

정상적으로 연결이 되면, 서버 내부에서 관리자가 접속할 때와 동일한 테이블 목록을 볼 수 있습니다.

  • 연결에 실패하는 경우 1

만일, 연결에 실패한다면, 먼저 방화벽 관련 문제를 의심해봐야 합니다.

Tableau Server Repository가 8060 포트를 사용하기 때문에 해당 포트에 접속이 가능한지 확인하시면 됩니다.

이를 위해서는, 윈도우에서 CMD 창을 실행하고, “telnet 운영서버IP 포트번호”를 입력합니다.

예를 들면, “telnet XX.XX.XX.XX 8060”와 같이 입력합니다.

명령어를 실행시키면, 바로 검정화면으로 넘어가고 커서가 깜빡이는데, 그렇게 되면 정상적으로 연결이 된 것입니다.

  • 연결에 실패하는 경우 2

위와 같이 실행했는데, “호스트에 연결할 수 없습니다…..”와 같은 메세지가 뜨면 연결이 되지 못한 것이니 추가 설정이 필요합니다.

기본적으로 Tableau Server Repository는 같은 네트워크 대역의 사용자는 접근이 가능하도록 설정되어 있습니다.

그런데, 운영서버와 외부사용자가 다른 네트워크 대역을 사용하고 있다면 연결되지 않습니다.

이 문제의 해결에는 두 가지 방법이 있습니다.

1.사용자의 IP 주소 추가

관리자가 운영 서버 내에 위치한 pg_hba.conf 파일에 사용자의 IP 주소(또는 IP 대역)를 추가합니다. pg_hba.conf 일반적으로 Tableau를 설치한 드라이브의 다음 폴더 안에 있습니다.

:\Tableau Server\data\tabsvc\config\pgsql\pg_hba.conf

2.8060 포트 방화벽 해제

관리자가 운영 8060 포트의 방화벽을 해제하면, 외부 사용자가 접속할 수 있습니다.

상세하게 설명하다 보니 글이 꽤 길어졌습니다만, 내용 자체는 어렵지 않습니다. 필요한 상황에 맞춰 한 단계, 한 단계 따라 해보면 쉽게 할 수 있을 겁니다.

여러분들께서 원하는 형태의 리포트를 만들어서 더욱 효율적으로 Tableau 서버 관리를 할 수 있게 되었으면 좋겠습니다.