Metabase
데이터를 읽기 쉽게 시각화를 할 필요가 생겨서 여러가지 BI 도구들을 찾아봤다.
제플린, 타블로, 파워BI 등 다양한 도구들이 있지만 그 중에서도 오픈소스이면서 사용하기 간단하고, 설치조차 너무나 간단한 Metabase 를 사용하여 설치법을 간단하게 정리해둔다.
설치
•
개인 서버에다가 설치하기 때문에 SSL 인증서 등 다양한 처리를 자동으로 하기 위해 bunkerized-nginx 를 사용했다.
•
설정을 간소화 하기 위해 docker-compose 를 사용했다.
docker-compose.yml
version: '3'
services:
nginx:
image: bunkerity/bunkerized-nginx
restart: always
ports:
- target: 8080
published: 80
- target: 8443
published: 443
volumes:
- ./letsencrypt:/etc/letsencrypt
- ./modsec-crs-confs:/modsec-crs-confs
environment:
- SERVER_NAME=clud.me
- SERVE_FILES=no
- DISABLE_DEFAULT_SERVER=yes
- REDIRECT_HTTP_TO_HTTPS=yes
- AUTO_LETS_ENCRYPT=yes
- ALLOWED_METHODS=GET|POST|HEAD|PUT|DELETE|FETCH
- USE_REVERSE_PROXY=yes
- USE_GZIP=yes
- USE_BROTLI=yes
- USE_FAIL2BAN=no
- USE_MODSECURITY=false
- USE_MODSECURITY_CRS=false
- REVERSE_PROXY_URL_1=/
- REVERSE_PROXY_HOST_1=http://metabase:3000/
- CONTENT_SECURITY_POLICY=CONTENT_SECURITY_POLICY-object-src 'none'; frame-ancestors 'self'; form-action 'self'; block-all-mixed-content; sandbox allow-forms allow-same-origin allow-scripts allow-popups allow-downloads; base-uri 'self';
metabase:
image: metabase/metabase
restart: always
ports:
- target: 3000
published: 3000
volumes:
- /home/ubuntu/metabase:/metabase-data
environment:
- MB_DB_FILE=/metabase-data/metabase.db
Docker
복사
modsec-crs-confs
SecAction \
"id:900200,\
phase:1,\
nolog,\
pass,\
t:none,\
setvar:'tx.allowed_methods=GET HEAD POST PROPFIND DELETE PUT MKCOL MOVE COPY PROPPATCH REPORT'"
Plain Text
복사
Athena 연동
•
Metabase 에서 Athena 를 사용하기 위해서는 JDBC 드라이버를 추가해줘야한다.
FROM metabase/metabase:v0.37.3
ADD \
https://github.com/dacort/metabase-athena-driver/releases/do
Docker
복사
•
Dockerfile 을 작성한 후 빌드하고 실행한다.