以前、上司から「部内の作業実績管理システムに溜めてあるデータをグラフ化して、皆の作業状況を見える化したい。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 します。
1 |
[root@docker-host ~]# git clone https://github.com/getredash/redash.git |
終わったらカレントディレクトリに 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_HOST: "http://RedashのIPアドレス:ポート/" 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 を設定しましょう」と書いてあるのですが、今回は社内の検証目的なのでパスします。
データベースの作成
次はデータベースを作成します。以下のコマンドを実行します。
1 |
[root@docker-host ~]# docker-compose -f docker-compose.production.yml run --rm server create_db |
初回実行時に “Is the server running on host “postgres” (172.18.0.3) and accepting TCP/IP connections on port 5432?” というエラーが出ますが、もう一度実行すると成功します。
Dockerホストの /opt/postgres-data の下にファイルが生成されていることを確認しましょう。
コンテナの起動
いよいよ最後、全てのコンテナを起動するために以下のコマンドを実行します。
1 |
[root@docker-host ~]# docker-compose -f docker-compose.production.yml up -d |
公式の手順ではフォアグラウンドで動作させていますが、バックグラウンドで動かしっぱなしにしたいので -d を付けました。
実行したら docker-compose ps コマンドを実行し、5台のコンテナが起動していることを確認します。
ブラウザで確認
ブラウザで http://DockerホストのIPアドレス/ にアクセスします。
この画面が出ればインストールは成功です。ここから先の設定(ユーザ作成、データソースとなる DB の設定等)はブラウザ経由で行います。
ここから先の設定は上司に任せることにしました。Redash のインストール作業、完了です。
終わりに
今回記事を書くにあたり、以下の環境で動作確認を行いました。
- CentOS: 7.4
- Docker Engine: 17.05.0-ce
- Docker Compose: 1.12.0
- Redash: 3.0.0
この記事が Redash インストールに悩むどなたかのお役に立てば幸いです。
執筆者プロフィール
- 開発プロジェクトの技術支援や技術の検証に従事しているインフラエンジニアです。Unix/Linuxを扱う機会が多く、構築から運用保守まで一通り携わった経験があります。好きな言葉は「試験運用」。
この執筆者の最新記事
- Pick UP!2022.03.15AWSのプライベートサブネットからSES経由でメールを送信する
- Pick UP!2020.10.19AWS認定試験の専門知識(セキュリティ・高度なネットワーキング)に合格する方法
- Pick UP!2020.03.23AWS認定試験を6冠するための受験順と勉強法
- AWS・クラウド2019.10.23AWS 認定ソリューションアーキテクト – プロフェッショナルの新試験に合格した話