Redash中文版生產環境配置supervisor

Redash中文版發表於2020-12-15

1 Supervisor介紹

Supervisor是用Python開發的一套通用的程式管理程式,能將一個普通的命令列程式變為後臺daemon,並監控程式狀態,異常退出時能自動重啟。它是通過fork/exec的方式把這些被管理的程式當作supervisor的子程式來啟動,這樣只要在supervisor的配置檔案中,把要管理的程式的可執行檔案的路徑寫進去即可。也實現當子程式掛掉的時候,父程式可以準確獲取子程式掛掉的資訊的,可以選擇是否自己啟動和報警。

2 supervisor安裝

1) 、配置好yum源後,可以直接安裝,Centos系統:

sudo pip3 install supervisor 

2) 、Debian/Ubuntu可通過apt安裝:

apt-get install supervisor

3 Supervisor生成預設配置檔案

1) 、進入安裝目錄:

cd ~/redash
echo_supervisord_conf>supervisord.conf

然後增加對Redash的啟動配置:

2) 、方法一:在supervisord.conf增加include節

[include]
files = conf.d/*.conf

建立conf.d目錄,其下建立配置檔案redash.conf,增加三個program節

[program:redash]
command = uwsgi uwsgi.ini
[program:worker]
directory=/root/dazdata/
command=venv/bin/python3 ./manage.py rq worker
[program:scheduler]
directory=/root/dazdata/
command=venv/bin/python3 ./manage.py rq scheduler

3) 、方法二:在supervisord.conf最後直接增加以上三個program節

4 Supervisor啟動停止和檢視狀態

1) 、啟動:

supervisord -c supervisord.conf

2) 、檢視:

supervisorctlstatus

3) 、停止:

supervisorctl stop all

4) 、檢視開機自啟:

systemctl is-enabled supervisord

5) 、停用開機自啟:

systemctldisable supervisord

5 Supervisor管理後臺

若需要web檢視程式,則去掉[inet_http_server]的註釋

[inet_http_server]
port=127.0.0.1:9001   //IP按需配置
username=user              
password=123

這個監控埠容易造成CPU和記憶體佔用率特別高,導致機器卡死,生產環境慎用。

6 supervisor開機自動啟動

1) 、在目錄/usr/lib/systemd/system/ 新建檔案supervisord.service,並新增配置內容:

[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.servicenss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /usr/supervisor/supervisord.conf 

2) 、開機啟動時執行

ExecStop=/usr/bin/supervisord shutdown
ExecReload=/usr/bin/supervisord reload
killMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target

相關文章