RedashをDocker上に今更だけどインストールしてみた

Pocket

以前、上司から「部内の作業実績管理システムに溜めてあるデータをグラフ化して、皆の作業状況を見える化したい。Redashを使ってみたいから、環境をつくってくれいないか。」と声を掛けられて作業した時のことを、記事にまとめてみました。

Redashとは

ダッシュボードツールです。簡単に言えば、データベースに溜めてあるデータをグラフ化して分析とかに使うツールです。

どこで動かすか?

Redash公式ページを確認してみたところ、Redash を構築するには、AWS の AMI を使う方法や GCE でイメージを展開する方法等があるのですが、たまたま手元に Docker の検証を行った時の環境があったので、Docker のコンテナとして準備することにしました。

Redashインストール

Redash公式ページにあるインストール手順の「Docker Compose」のところを参考にして作業しました。

Dockerを準備する

これについては社内にある仮想ホスト上に、以前検証に使ったDockerホストがやや放置気味で存在していたのでそれを使いました。手順は省略しますが、yum install docker-engine した後に docker-compose を追加でインストールした程度のシングル構成のサーバです。

Redashリポジトリをcloneする

Docker ホストにログインし、 Redash のリポジトリを git clone します。

終わったらカレントディレクトリに redash というフォルダができているので、中に移動します。

docker-compose.production.yml の編集

ディレクトリにある docker-compose.production.yml を vi で編集していきます。

server,worker,redis,postgres,nginxの合計5個のコンテナの設定が記述されていますが、この中で編集が必要なのは server と worker、そして postgres の設定の箇所です。

メール送信設定

server と worker には Redash からメールを送信するための設定を追加します。公式ページの手順では「Mail Configration」の箇所に書いてあります。
この設定がない場合、後でユーザのパスワードをリセットする時にパスワード変更用URLが書かれたメールが飛ばない事態となります。

server と worker の environment: に以下を追記します。

1
2
3
4
5
6
7
REDASH_MAIL_SERVER: "メールサーバのホスト名"
REDASH_MAIL_PORT: 25
REDASH_MAIL_USE_TLS: "False"
REDASH_MAIL_USERNAME: ""
REDASH_MAIL_PASSWORD: ""
REDASH_MAIL_DEFAULT_SENDER: "システム通知の送信者メールアドレス"

データの永続化設定

Redash の各種設定が保存されるデータベースの内容がコンテナの削除と共に消えてしまわないよう、volumes の設定をします。具体的には postgres の volumes の設定のコメントを外します。

これを…

1
2
3
4
postgres:
image: postgres:9.5.6-alpine
# volumes:
# - /opt/postgres-data:/var/lib/postgresql/data

こうします。

1
2
3
4
postgres:
image: postgres:9.5.6-alpine
volumes:
/opt/postgres-data:/var/lib/postgresql/data

これで Docker ホストの /opt/postgres-data が postgres コンテナの /var/lib/postgresql/data にマウントされるようになるので、コンテナが削除されてもデータが Docker ホスト上に残ることになります。

REDASH_COOKIE_SECRETの設定

手順には「テスト用途でなければ REDASH_COOKIE_SECRET を設定しましょう」と書いてあるのですが、今回は社内の検証目的なのでパスします。

データベースの作成

次はデータベースを作成します。以下のコマンドを実行します。

初回実行時に “Is the server running on host “postgres” (172.18.0.3) and accepting TCP/IP connections on port 5432?” というエラーが出ますが、もう一度実行すると成功します。
Dockerホストの /opt/postgres-data の下にファイルが生成されていることを確認しましょう。

コンテナの起動

いよいよ最後、全てのコンテナを起動するために以下のコマンドを実行します。

公式の手順ではフォアグラウンドで動作させていますが、バックグラウンドで動かしっぱなしにしたいので -d を付けました。

実行したら docker-compose ps コマンドを実行し、5台のコンテナが起動していることを確認します。

ブラウザで確認

ブラウザで http://DockerホストのIPアドレス/ にアクセスします。

Redash画面

この画面が出ればインストールは成功です。ここから先の設定(ユーザ作成、データソースとなる DB の設定等)はブラウザ経由で行います。

ここから先の設定は上司に任せることにしました。Redash のインストール作業、完了です。

終わりに

今回記事を書くにあたり、以下の環境で動作確認を行いました。

  • CentOS: 7.4
  • Docker Engine: 17.05.0-ce
  • Docker Compose: 1.12.0
  • Redash: 3.0.0

この記事が Redash インストールに悩むどなたかのお役に立てば幸いです。

執筆者プロフィール

Chiba Kumiko
Chiba Kumikotdi IT技術推進部
開発プロジェクトの技術支援や技術の検証に従事しているインフラエンジニアです。Unix/Linuxを扱う機会が多く、構築から運用保守まで一通り携わった経験があります。好きな言葉は「試験運用」。
Pocket