本記事はre:dash Advent Calendar 2015の1日目の記事です。
最初に
re:dashは、オープンソースのデータ可視化・共有プラットフォームです。
多くのデータソースに対応しており、クエリの定期実行や権限制限・APIといった機能が豊富なことに加え、アップデートも活発なため最近注目を浴びています。
データソースは、PostgreSQL(Redshift), MySQL, BigQuery, Graphite, MongoDB, Elasticsearch, InfluxDB, Presto, Hive, Impala, URL, Google Spreadsheets, Pythonコードに対応しています。
特にユニークなのは、URL, Pythonです。
URLは、決められた形式のJSONフォーマット( http://docs.redash.io/en/latest/dev/results_format.html )を返すようにしておけば、データソースとして扱うことが出来ます。
Pythonコードは、URLと同様のJSONフォーマットを返すコードを書いてやるとデータソースとして扱えます。
今回は、re:dashのインストールから、インストール後の設定までを書きたいと思います。
インストール
re:dashそのものは、pythonと依存ライブラリがあれば起動しますが、実際に使用するには、postgreSQL(クエリの実行結果やデータの保存)、redis(タスクキューで使用)、nginxが必要になります。
AWSやGoogle Compute Engineの場合はセットアップ済みのイメージが用意されているため、それを用いるのが無難です。
それ以外の環境や、専用イメージが嫌いな方は、https://github.com/getredash/redash/tree/master/setup にプロビショニングスクリプトがいくつか用意されているため、都合が合うものを使用してください。
スクリプトによっては、バージョン番号やダウンロードURLが古かったり、自分の環境と異なったりで上手く動かないことがあるので、泣かずに適宜修正します。
今回は、ubuntu用のスクリプトを用いてubuntu15.10にインストールを行いました。
$ wget https://raw.githubusercontent.com/getredash/redash/master/setup/ubuntu/bootstrap.sh
$ sudo sh bootstrap.sh
自分の環境ではpostgresのバージョンが9.3となっている所を9.4と直す必要がありましたが、あとはすんなりとインストールは行えました。
アップデート
プロビショニングスクリプトを使った場合は、latestバージョンになっていないと思うので、アップグレードを行います。
アップデートにはfabricを用います。
どの道、頻繁にアップデートをする機会があると思うので、ここでまとめて設定しちゃった方がいいです。
前提として、
- re:dashサーバ上でパスワード無しでsudo出来るユーザがいる
- 上記ユーザでre:dashサーバにSSHログインが出来る
が必要になります。これが気になる人は、fabricスクリプトを修正して使ってください。
$ sudo pip install fabric requests
$ wget https://gist.githubusercontent.com/arikfr/440d1403b4aeb76ebaf8/raw/f9ae30f6b0968987a5957aba33bd393e542cb549/fabfile.py
$ fab -H{re:dashサーバのホスト} -u{ログインユーザ名} -i{鍵認証の場合は鍵のパス} deploy_latest_release
設定
初回ログイン
インストール後は80番ポートでアクセスできるようになっているので、ブラウザで表示後、admin/adminでログインします。
/admin/user にアクセスすると、ユーザ一覧が確認出来るので、デフォルトのadminユーザのEmailアドレスとパスワードを変更します。
その後、ログアウト後、変更後のEmailアドレスとパスワードでログイン出来ることを確認します。
Google OAuthを使用する場合
Google OAuthを使用する場合は、Google ConsoleでウェブアプリケーションのクライアントIDとクライアントシークレットを取得し、/opt/redash/.envに以下の設定を記述します。
export REDASH_GOOGLE_CLIENT_ID="" # Google Consoleで取得したクライアントID
export REDASH_GOOGLE_CLIENT_SECRET="" # Google Consoleで取得したクライアントシークレット
会社等でGoogle Appsを使用している場合は、以下の設定でログイン可能なドメインを限定できます。
export REDASH_GOOGLE_APPS_DOMAIN="sample.com"
パスワード認証をオフにするには、初期ユーザで、googleアカウントユーザのGroupsにadminを追加してやった後に、以下の設定を追加します。
export REDASH_PASSWORD_LOGIN_ENABLED=false # パスワードログインを禁止
メールサーバの設定
re:dashでは、クエリの実行結果を条件にして、アラートメールを送信する機能があります(近々、hipchatでの通知も対応するそうです)。
使用する場合は。/opt/redash/.envに以下の設定を記述します。
export REDASH_MAIL_SERVER="" # デフォルト値はlocalhost
export REDASH_MAIL_PORT="" # デフォルト値は25
export REDASH_MAIL_USE_TLS="" # デフォルト値はfalse
export REDASH_MAIL_USE_SSL="" # デフォルト値はfalse
export REDASH_MAIL_USERNAME="" # デフォルト値はNone
export REDASH_MAIL_PASSWORD="" # デフォルト値はNone
export REDASH_MAIL_DEFAULT_SENDER="" # 送信元Emailアドレス
export REDASH_HOST="" # re:dashサーバのアドレス("https://demo.redash.io"みたいに指定)
REDASH_HOSTは、アラートメールのクエリ参照URLを生成するために使います。
そのため、メールを受け取る人がアクセス出来るアドレスにしておきます。
データソースの設定
admin権限を持つユーザでログインしていると、ヘッダの右側のDBっぽい絵のリンクからデータソース一覧画面に飛び、適宜データソースの追加・編集を行います。
(バージョンが古いと、Data Sourceというテキストリンクになっていると思います。)
一つ注意点としては、re:dashはRedshift対応を謳っていますが、データソースとしてRedshiftという区分は存在しません。
Redshiftを使用する際は、データソースの種別をPostgreSQLした上で必要な情報を記述します。
権限の種類の追加
初期状態では、権限はadminとdefaultの2種類しか存在しません。
/admin/group/にアクセスして、必要に応じて権限の追加・編集を行います。
defaultは、登録時に自動的に付与される権限にも関わらず、ダッシュボードやクエリの編集・クエリの実行が行えてしまうので危険極まりないのです。
defaultはview系の権限だけに制限しておくほうが無難かと思います。
使う
実際の使用例に関しては、iPROSさんのスライドが参考になります。
http://www.slideshare.net/toyama0919/redash-is-awesome
http://www.slideshare.net/jumpeiyokota1/redash-use-cases-at-ipros
また、デモサイトにも使用例が多く載っているので参考にするといいでしょう。
デモサイトはメールサーバの設定もしてあるため、メールアラートのテストにも使えます。
最後に
re:dashは、アップデートの頻度が高いとはいえ、足りない機能や使いづらい部分が少なからずあります。
しかし、ソースコードの量はそれほど多くなく改良も容易な上、PRを積極的に受け入れてくれる雰囲気はあります。
OSS活動をしたことがない方も、re:dashへのコミットをきっかけにOSSをはじめてみませんか?