Dockerを利用せずにredashを構築する(ver 4.0.x)
はじめに
Dockerを利用せずに構築したredashを再構築しないといけない場面に遭遇した。
すると、redashのバージョンが上がったことでDockerを利用しない構築手順がredashのドキュメントから消えてしまった。
redashの構築ではsetup用のスクリプトを利用することになるが、最新のsetupスクリプトではUbuntuの18.04から対応している。私の場合、Ubuntuの16.04で構築する必要があった。
redashのドキュメントはまだ整備されきれておらず、試行錯誤を経てredashの構築を行なった。
本記事はその際の構築手順をまとめたものである。
参考: redashドキュメント
https://redash.io/help/参考: redash setupスクリプトについて
https://github.com/getredash/redash/tree/master/setup
redashとは?
- OSSで提供されているダッシュボードツール
- RDBやBigQuery、Prestoといった様々なデータソースとの連携が可能。
- Active Directoryとの連携が可能で、LDAPによりシングルサインオンも実現可能。
注意
- 本手順は2018年11月時点で正常に動作した手順である。
- 最新以外のバージョンを入れる手順は非公式であるため、急にできなくなってしまうことも考えられるので本手順は参考程度に見てもらえると良い。
バージョン情報
- redash
- 4.0.x
- OS
- Ubuntu 16.04
- Python
- 2.7.12
準備
- 本手順は2018年11月時点で正常に動作した手順である。
- 最新以外のバージョンを入れる手順は非公式であるため、急にできなくなってしまうことも考えられるので本手順は参考程度に見てもらえると良い。
バージョン情報
- redash
- 4.0.x
- OS
- Ubuntu 16.04
- Python
- 2.7.12
準備
- 4.0.x
- Ubuntu 16.04
- 2.7.12
redashを利用するにあたり、最低限必要となるもの(以下5つ)を事前にインストールする。
- Python(2.7)
- npm(3.10.10)
- Node.js(v6以上)
- PostgreSQL(9.3以上)
- Redis(2.8.3以上)
Pythonインストール
virtualenvが推奨されているが、この時は普通に入れた。
- インストール
sudo apt-get install python-dev python-dev
- 確認
$ python -V
Python 2.7.12
$ pip -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
npmインストール
Node.jsインストールのためにnpmを利用するため、先にnpmをインストールする。
Ubuntu 16.04の公式リポジトリにあるnpmではバージョンが足りないため、意図的にバージョンを指定し、インストールする。
- インストール
sudo apt-get install -y build-essential
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
- 確認
$ npm --version
3.10.10
$ node --version
v6.14.4
PostgreSQLインストール
- インストール
sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql
- 確認
$ which psql
/usr/bin/psql
$ ps aux | grep postgres | grep -v grep
postgres 14271 0.1 1.2 310900 26088 ? S 16:42 0:00 /usr/lib/postgresql/11/bin/postgres -D /var/lib/postgresql/11/main -c config_file=/etc/postgresql/11/main/postgresql.conf
postgres 14273 0.0 0.1 310900 3932 ? Ss 16:42 0:00 postgres: 11/main: checkpointer
postgres 14274 0.0 0.1 310900 3932 ? Ss 16:42 0:00 postgres: 11/main: background writer
postgres 14275 0.0 0.4 310900 8952 ? Ss 16:42 0:00 postgres: 11/main: walwriter
postgres 14276 0.0 0.3 311328 6628 ? Ss 16:42 0:00 postgres: 11/main: autovacuum launcher
postgres 14277 0.0 0.1 165816 3424 ? Ss 16:42 0:00 postgres: 11/main: stats collector
postgres 14278 0.0 0.2 311192 4896 ? Ss 16:42 0:00 postgres: 11/main: logical replication launcher
Redisインストール
Ubuntu 16.04の公式リポジトリにあるRedisでは古い(2.3.0.6-1)ので、新たにリポジトリを登録する
- リポジトリ登録
sudo add-apt-repository ppa:chris-lea/redis-server
sudo apt update
- リポジトリ確認
$ sudo apt show redis-server
Package: redis-server
Version: 5:4.0.11-1chl1~xenial1
Priority: optional
Section: database
Source: redis
Maintainer: Chris Lamb <[email protected]>
Installed-Size: 162 kB
Depends: adduser, lsb-base (>= 3.2-14), redis-tools (= 5:4.0.11-1chl1~xenial1), init-system-helpers (>= 1.18~)
Download-Size: 90.9 kB
APT-Sources: http://ppa.launchpad.net/chris-lea/redis-server/ubuntu xenial/main amd64 Packages
Description: Persistent key-value database with network interface
Redis is a key-value database in a similar vein to memcache but the dataset
is non-volatile. Redis additionally provides native support for atomically
manipulating and querying data structures such as lists and sets.
.
The dataset is stored entirely in memory and periodically flushed to disk.
N: There is 1 additional record. Please use the '-a' switch to see it
- インストール
sudo apt install redis-server
- インストール確認
$ redis-cli --version
redis-cli 5.0.0
$ redis-server --version
Redis server v=5.0.0 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=12e155be0a2852d9
- 起動
sudo systemctl start redis-server
- 起動確認
$ ps aux | grep redis
redis 16358 0.1 0.4 53328 8432 ? Ssl 16:48 0:00 /usr/bin/redis-server 127.0.0.1:6379
ubuntu 16363 0.0 0.0 14192 1020 pts/0 S+ 16:48 0:00 grep --color=auto redis
redash構築
インストール資材ダウンロード
最新版ではDocker以外での構築ができないため、1つ古いバージョンの資材をダウンロードする。
cd /usr/local/
sudo git clone -b release/4.0.x https://github.com/getredash/redash.git
- ダウンロード確認
$ cd /usr/local/redash
$ git branch
* release/4.0.x
rdashセットアップ
- セットアップ前の準備
- 今回の手順でダウンロードしたsetupスクリプトではかなり古いバージョンのredashがダウンロードされてしまうため、setupスクリプトを修正し、比較的新しいバージョンのものがダウンロードされるようにする。
- スクリプトの上段にある
REDASH_BRANCH
とREDASH_VERSION
を下記に変更する
REDASH_BRANCH="${REDASH_BRANCH:-release/4.0.x}" # Default branch/version to master if not specified in REDASH_BRANCH env var
REDASH_VERSION=${REDASH_VERSION-4.0.1.b4038} # Install latest version if not specified in REDASH_VERSION env var
- setupスクリプト実行
sudo sh bootstrap.sh
Pythonパッケージインストール
cd /opt/redash/current
sudo pip install -r requirements.txt -r requirements_dev.txt
Node.jsパッケージインストール
cd /opt/redash/current
sudo npm install
ビルド
- ビルドする前に一部コードに手を加える。
sudo vi /opt/redash/redash.4.0.1.b4038/client/app/pages/dashboards/dashboard-list.js
- 以下の行(最上段あたり)を
const TAGS_REGEX = /(^([\w\s]|[^\u0000-\u007F])+):|(#([\w-]|[^\u0000-\u007F])+)/ig;
- 以下のように変更する。
/* eslint-disable no-control-regex */
const TAGS_REGEX = /(^([\w\s]|[^\u0000-\u007F])+):|(#([\w-]|[^\u0000-\u007F])+)/ig;
/* eslint-enable no-control-regex */
- 上記対応後に下記コマンドでビルドする。
sudo npm run build
参考:
no-control-regexについて
https://code.i-harness.com/ja/docs/eslint/rules/no-control-regex
redashのソースの一部に制御文字が含まれており、今回導入したnpmではno-control-regexがデフォルトで有効になってしまっているため、そのままビルドしようとするとエラーが起きてしまう。
本手順では制御文字を利用している部分にのみ一時的に制御文字を許可するようにソースを変更することで対応した。
Postgreの設定
redashでは、ユーザの管理などにPostgreを利用している。今回の手順では、Postgreは別にインストールしているため、redashの設定でインストールしたPostgreを指定する必要がある。
- redashの設定ファイルを編集
sudo vi /opt/redash/.env
- 設定ファイル内に下記の設定値があるので、正しいものに変更する(ユーザ名、ホスト名、ポート番号等)
export REDASH_DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres"
データベースの作成
- データベースにpostgresユーザでログイン
sudo su postgres
psql -U postgres
- DBにログイン後、下記コマンドにてpostgresユーザのパスワードを変更
alter role postgres with password '新規パスワード';
- ログイン確認
psql postgresql://postgres:postgres@localhost:5432/postgres
- データベースの作成を行う
cd /opt/redash/current
bin/run ./manage.py database create_tables
redash webサーバの起動
sudo supervisorctl start all
Web UIの設定
-
http://[ホストIP]
にアクセスする。
- Adminユーザの作成を促されるため、作成する。作成後、通常利用が可能となる。
最後に
sudo supervisorctl start all
-
http://[ホストIP]
にアクセスする。 - Adminユーザの作成を促されるため、作成する。作成後、通常利用が可能となる。
最後に
今回の手順はDockerを利用せずにredashをインストールする手順でしたが、公式ではDockerのインストールを推奨しているため、特別な事情がない限りはDockerを利用した方が良いと思います。
ただし、今回の私のように同じバージョンを入れなくてはならないような場合に本手順が参考になれば幸いです。
Author And Source
この問題について(Dockerを利用せずにredashを構築する(ver 4.0.x)), 我々は、より多くの情報をここで見つけました https://qiita.com/sikezawa/items/891abd77cfc22d76d553著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .