配置
配置文件
要配置应用,需要创建superset_config.py文件并添加进PYTHONPATH中。在配置文件中可以定义的部分参数:
vim /data/superset/superset_config.py
# Superset specific config ROW_LIMIT = 5000 SUPERSET_WEBSERVER_PORT = 8088 # Flask App Builder configuration # Your App secret key SECRET_KEY = '\2\1thisismyscretkey\1\2\e\y\y\h' # The SQLAlchemy connection string to your database backend # This connection defines the path to the database that stores your # superset metadata (slices, connections, tables, dashboards, ...). # Note that the connection information to connect to the datasources # you want to explore are managed directly in the web UI SQLALCHEMY_DATABASE_URI = 'sqlite:////root/.superset/superset.db' # Flask-WTF flag for CSRF WTF_CSRF_ENABLED = True # Add endpoints that need to be exempt from CSRF protection WTF_CSRF_EXEMPT_LIST = [] # A CSRF token that expires in 1 year WTF_CSRF_TIME_LIMIT = 60 * 60 * 24 * 365 # Set this API key to enable Mapbox visualizations MAPBOX_API_KEY = '' # Setup default language BABEL_DEFAULT_LOCALE = "zh"
全部的参数和默认值可见https://github.com/apache/superset/blob/master/superset/config.py ,也就是supersest安装的本地 superset/lib/python3.9/site-packages/superset/config.py 文件,它们都可以在superset_config.py文件中设置。
运行WSGI HTTP
虽然可以在NGINX 或 Apache 上运行 Superset,但官方建议在异步模式下使用 Gunicorn。请参考您首选技术的文档,以在您的环境中运行良好的方式设置此 Flask WSGI 应用程序。 这是已知在生产中运行良好的异步设置:
pip install gevent
gunicorn -w 10 \
-k gevent \
--timeout 120 \
-b 0.0.0.0:8888 \
--limit-request-line 0 \
--limit-request-field_size 0 \
--statsd-host localhost:8125 \
"superset.app:create_app()"
有关更多信息,请参阅 Gunicorn 文档。 请注意,开发 Web 服务器(superset run或flask run)不适用于生产用途。
如果您不使用 Gunicorn,您可能会在 superset_config.py 中设置COMPRESS_REGISTER = False 来禁用flask-compress。
设置为服务:
vim start-superset.sh
#!/bin/bash
# Author:Chris __On 2021/09/29
# =====================Description=====================
# [Features]: This is for start superset in gunicorn.
# [Usage]: Upload into /data/superset and Exec it:
# =====================================================
# <----------------------------Configure Start--------------------------->
Base=$(cd `dirname ${BASH_SOURCE}` ; pwd)
Config=${Base}/superset_config.py
# <----------------------------Configure End---------------------------->
cd ${Base}
. bin/activate
[ -f "${Config}" ] && export PYTHONPATH=${Config}
exec gunicorn -w 10 -k gevent --timeout 120 -b 0.0.0.0:8888 --limit-request-line 0 --limit-request-field_size 0 "superset.app:create_app()"
chmod +x start-superset.sh vim /usr/lib/systemd/system/superset.service
# systemd service file for Superset. [Unit] Description=Apache Superset After=syslog.target After=network.target After=nss-lookup.target [Install] WantedBy=multi-user.target [Service] ExecStart=/data/superset/start-superset.sh
systemctl enable superset.service systemctl start superset.service systemctl status superset
配置Nginx
我使用的是Nginx来进行反向代理:
vim bi-tools.conf
# Nginx Second Configure File.
upstream superset {
server {your-ss-ip}:{ss-port};
}
server {
listen 80;
listen 443 ssl;
server_name superset.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
access_log logs/superset_access.log;
error_log logs/superset_error.log;
location / {
client_max_body_size 200m;
proxy_pass http://superset;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
systemctl reload nginx
修改添加superset设置:
vim /data/superset/superset_config.py
... # Use all X-Forwarded headers when ENABLE_PROXY_FIX is True. ENABLE_PROXY_FIX = True
systemctl restart superset
连接数据库
默认superset只安装了一个自带的sqllite驱动。其它驱动还需要手动集成安装。
数据库驱动
安装所有其它驱动可参见官方文档。这里以常用的MySQL为示例进行安装:
需先编译安装mysql或install mysql-devel包。
cd /data/superset/ . bin/activate pip install mysqlclient pymysql
重新打开添加数据库页面即可看到MySQL类型:
设置数据URI进行连接测试:
mysql+pymysql://zabbix:[email protected]:3306/zabbix?charset=utf8


