Blog

Metabase 설치

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 --chown=2000:2000 \ https://github.com/dacort/metabase-athena-driver/releases/do
Docker
복사
Dockerfile 을 작성한 후 빌드하고 실행한다.

레퍼런스