ubuntu 安装redash

2016/12/20 posted in  python
  • release

安装临时插件

apt-get update
apt-get install git 
git clone https://github.com/yourwilliam/redash

$ sudo apt-get install python-pip python-dev build-essential 
$ sudo pip install --upgrade pip 
$ sudo pip install --upgrade virtualenv 

换源

1.临时换源

临时换源只在某一条命令中生效,只要在命令中加上”-i“,指定使用的源即可

pip install scrapy -i

2.永久换源

要是想彻底将pip的源换掉,只要在pip的配置文件(~_.pip_pip.conf)中增加

[global]
index-url=http://pypi.douban.com/simple

3.一些国内的pip源

http://pypi.douban.com/simple  #豆瓣
http://pypi.hustunique.com/simple  #华中理工大学
http://pypi.sdutlinux.org/simple  #山东理工大学
http://pypi.mirrors.ustc.edu.cn/simple  #中国科学技术大学

pip 测试可用的换源方式,一定要使用这一个,而且一定要用https

pip install wagtail -i https://pypi.douban.com/simple

初步安装

root@ubuntu:/opt/redash# virtualenv redashenv

root@ubuntu:/opt/redash# source redashenv/bin/activate

(redashenv) root@ubuntu:/opt/redash# sudo apt-get install libpq-dev

(redashenv) root@ubuntu:/opt/redash/setup/ubuntu# cd /opt/
(redashenv) root@ubuntu:/opt# chmod 777 redash/

(redashenv) root@ubuntu:/opt/redash/setup/ubuntu# sh bootstrap.shd

会报一个这个错

Creating redash postgres user & database.
Traceback (most recent call last):
File "_opt_redash_redash.0.11.1.b2095_manage.py", line 7, in
from flask_script import Manager
ImportError: No module named flask_script

修改

vi /opt/redash/redash.0.11.1.b2095/manage.py 
#!/opt/redash/redashenv/bin/python

再次执行安装

还会报一个错:

peewee.ProgrammingError: relation "organizations" does not exist
LINE 1: ...", "t1"."name", "t1"."slug", "t1"."settings" FROM "organizat…

要重新配置数据库

(redashenv) root@ubuntu:/opt/redash/setup/ubuntu# su - postgres
psql

ostgres=# drop database redash;
DROP DATABASE
postgres=# drop user redash;
DROP ROLE

退出 继续安装

在起一次就能成功了,显示

2016-11-20 14:47:08 (68.7 MB_s) - ‘_etc_nginx_sites-available/redash’ saved [453/453]

* Restarting nginx nginx                                                                     [ OK ]

就OK了。

修改数据库权限

创建root 用户,给予权限

(redashenv) root@ubuntu:/opt/redash/setup/ubuntu# su - postgres
postgres@ubuntu:~$ psql

postgres=# create user root;
postgres=# ALTER ROLE root SUPERUSER;
ALTER ROLE

启动redash_server

还是会报错:

(redashenv) root@ubuntu:/opt/redash/redashenv/bin# mkdir /opt/redash/logs
(redashenv) root@ubuntu:/opt/redash/redashenv/bin# supervisord -c /opt/redash/setup/ubuntu/files/supervisord.conf

(redashenv) root@ubuntu:/opt/redash/redashenv/bin# mkdir /opt/redash/logs
(redashenv) root@ubuntu:/opt/redash/redashenv/bin# supervisord -c /opt/redash/setup/ubuntu/files/supervisord.conf
(redashenv) root@ubuntu:/opt/redash/redashenv/bin# supervisorctl restart redash_server
redash_server: stopped
redash_server: started

维护redash参考 http://docs.redash.io/en/latest/usage/maintenance.html

这还没完

仔细研究了一下,从脚本可以看到 ,是用的redash的账号来启动的。 这里我的安装是改成了使用root来控制。
后面在来研究怎么样用redash账号搞定。

在执行restart all的时候可以看到实际上可以看到redash_celery 是没有起起来的,这样可以看到的结果是感觉redash可以登陆,可以添加使用,但是数据是查不出来的,随便执行一个QUERY就可以看到。这是要控制celery的话需要再配置

从报错可以看到

Running a worker with superuser privileges when the
worker accepts messages serialized with pickle is a very bad idea!

If you really want to continue then you have to set the C_FORCE_ROOT
environment variable (but please think about this before you do).

User information: uid=0 euid=0 gid=0 egid=0

就是celery不推荐使用root来执行,需要修改

网上有几种办法,一种是使用 export C_FORCE_ROOT=‘true’ 这种是不管用的

另外一种是添加

platforms.C_FORCE_ROOT = True #添加这一行

这个是可以的,需要把这个添加的work中

vi _opt_redash_redash.0.11.1.b2095_redash/worker.py

http://redn.net/content/解决celery在root用户下启动问题cforceroot-environment

然后再执行:

(redashenv) root@ubuntu:/opt/redash/redashenv/bin# supervisorctl restart all
redash_server: stopped
redash_celery: started
redash_server: started
redash_celery_scheduled: started

测试后方可。

至此ubuntu版本的全部安装完毕

邮件配置:

在.env环境中配置 _opt_redash/.env 中

export REDASH_STATIC_ASSETS_PATH="../rd_ui/dist/"
export REDASH_LOG_LEVEL="INFO"
export REDASH_REDIS_URL=redis://localhost:6379/0
export REDASH_DATABASE_URL="postgresql://redash"
export REDASH_COOKIE_SECRET=veryverysecret
export REDASH_MAIL_SERVER="smtp.hansap.com"
export REDASH_MAIL_PORT="25"
export REDASH_MAIL_USE_TLS="false"
export REDASH_MAIL_USE_SSL="false"
export REDASH_MAIL_USERNAME="hansap@hansap.com"
export REDASH_MAIL_PASSWORD="Fire@123"
export REDASH_MAIL_DEFAULT_SENDER="hansap@hansap.com"
export ERDASH_HOST="http://bi.hansap.com"

配置完成后可以测试

(redashenv) root@ubuntu:/opt/redash/current# bin/run ./manage.py send_test_mail

注意一定要在current下测试,而且一定要按照这个目录来执行。

执行完成后重启

(redashenv) root@ubuntu:/opt/redash/redashenv/bin# supervisorctl restart all

配置完成

新版本

需要在全局路径(非virtualENV环境下装上redis依赖包才可以 'pip install redis')