Redashを構築してみた

Posted by

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

ダッシュボードのサンプル↓

Redash:dashboard

構築・設定

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は構築がとても簡単なので、どんなことができるのか実際に触れて確かめてみては如何でしょうか?