GRIPHONE Advent Calendar 2018 22日目の記事を担当しました、SREの川野です。
今回はRedashというBIツールが簡単にローカルで動かせることができるのでその紹介記事になります。
※この記事はGRIPHONE Advent Calendar 2018 22日目の記事です。
https://adventar.org/calendars/3147
https://qiita.com/advent-calendar/2018/griphone
Redashとは
BigQueryやMySQLなどのデータを可視化するダッシュボード生成ツールです。エンジニアが使うためのBIツールともいえます。
現在サポートされているデータソースは35コあります。https://redash.io/help/data-sources/supported-data-sources
2018年12月16日時点でversion6.0.0がリリースされています。https://github.com/getredash/redash
ダッシュボードのサンプル↓
構築・設定
KubernetesやECSのようなコンテナオーケストレーションツールやDockerCompose用のDockerImageが提供されていてそこから構築することができます。
ですが、今回はイメージは使用せずに、公式のOSSでdocker-compose.ymlが提供されているのでそれを使用してローカルのDocker上でRedashの構築を行ってみました。
Setting up a Redash Instance
redash/setup/docker-compose.yml
以下のDockerComposeの設定ファイルを作成します。
envファイルのパスとpostgresのvolumesのマウントパスを任意のものに設定してください。
version: '2'
x-redash-service: &redash-service
image: redash/redash:5.0.1.b4850
depends_on:
- postgres
- redis
env_file: [ローカルの適当なパス/env]
restart: always
services:
server:
<<: *redash-service
command: server
ports:
- "5000:5000"
environment:
REDASH_WEB_WORKERS: 4
scheduler:
<<: *redash-service
command: scheduler
environment:
QUEUES: "celery"
WORKERS_COUNT: 1
scheduled_worker:
<<: *redash-service
command: worker
environment:
QUEUES: "scheduled_queries"
WORKERS_COUNT: 1
adhoc_worker:
<<: *redash-service
command: worker
environment:
QUEUES: "queries"
WORKERS_COUNT: 2
redis:
image: redis:3.0-alpine
restart: always
postgres:
image: postgres:9.5.6-alpine
env_file: [ローカルの適当なパス/env]
volumes:
- [ローカルの適当なパス/postgres-data]:/var/lib/postgresql/data
restart: always
envファイル
PYTHONUNBUFFERED=0
REDASH_LOG_LEVEL=INFO
REDASH_REDIS_URL=redis://redis:6379/0
REDASH_DATABASE_URL=postgresql://redash:hogehoge@postgres/redash
REDASH_COOKIE_SECRET=fugafuga
REDASH_MAIL_SERVER=localhost
POSTGRES_USER=redash
POSTGRES_PASSWORD=hogehoge
POSTGRES_DB=redash
envファイルの作成が済んだら、dbを作成してdocker-compose up -d をすれば、
ブラウザで http://localhost:5000 にアクセスするとRedashの画面が表示されます!
$ git clone git@github.com:getredash/redash.git
$ cd redash
$ docker-compose run --rm server create_db #db作成
$ docker-compose up -d
また、envファイルにREDASH_GOOGLE_CLIENT_IDとREDASH_GOOGLE_CLIENT_SECRETを準備すれば、簡単にGoogle OAuthを使用してユーザー認証することもできます。
終わりに
このようにRedashは構築がとても簡単なので、どんなことができるのか実際に触れて確かめてみては如何でしょうか?