译文说明
- 原文链接:docs/dashboard_and_monitor.md
- 原作者:Rob Carver
- 对应版本:master
- 译者:fanrong
- 许可:GPL-3.0(见 GPL-3.0.txt)
注:本文为非官方翻译,可能存在疏漏;请以原文为准。
本文档说明如何在生产环境中监控 pysystemtrade。
在阅读本文之前,你应该已经读过:
目录
- Web Dashboard(网页看板)
- System monitor(系统监控工具)
- Handling of crashed processes(处理崩溃进程)
- Running a remote dashboard or monitor(在远程机器上运行看板或监控)
由 gh-md-toc 生成
Web Dashboard
Dashboard 目前仍在持续开发中——功能还在不断补充。
目前,dashboard 主要提供一些基础的诊断“红绿灯”(traffic lights),用来展示各个系统组件的运行状态,同时还会展示相关报表的内容。
如果你已经安装了 pyproject.toml 文件中列出的所有 Python 依赖,就可以启动 web dashboard:
| |
在浏览器中访问 http://localhost:5000/ 即可查看 dashboard。
如果你想更改访问地址,或者让局域网/外部机器可以访问(这么做有安全风险,请自行权衡!),需要做以下配置:
- Bash 终端(Linux):
sudo ufw allow 5000 - 在你的
private_control_config.yaml中添加如下参数:dashboard_visible_on_lan: True
System monitor
另外,还有一个简单的监控工具,它会生成一个 .html 文件,并只显示哪些进程正在运行。
要使用它,可以在重启时通过 crontab 调用下面两条命令,或者手工运行(例如配合 screen 使用):
| |
机器启动后,你应当可以在任何连接到同一局域网的机器上访问 http://192.168.1.13:8000/(根据实际情况替换 IP 地址),查看系统状态。
Handling of crashed processes
在 monitor 和 dashboard 运行时,它们还会处理任何“崩溃”的进程(即登记在案的 PID 被杀掉,而进程没有被正常关闭的情况);系统会给用户发送邮件、更新 web 日志,并将该进程标记为已关闭,从而可以再次启动。
它不会自动重启这些进程!(你需要手工重启,或者等待第二天由 crontab 自动重新启动。)
Running a remote dashboard or monitor
你可能更希望在另一台机器上运行 monitor 或 dashboard。
假设交易服务器(被监控的那台机器)同时也是托管 MongoDB 实例的机器,IP 地址为 192.168.0.13;远程监控机的 IP 地址为 192.168.0.10:
- 在
/etc/mongod.conf的bind_ip配置中添加一个 IP 地址,使 MongoDB 允许其他机器连接,例如bind_ip=localhost, 192.168.0.10;或者在启动 MongoDB 时修改命令,例如在 Linux 下使用mongod --dbpath /home/rob/data/mongodb --bind_ip_all(警告:除非还有其他安全措施,例如防火墙,否则这样做并不安全)。这是必需的步骤。 - 配置
ssh,使远程监控机可以使用 SSH key(免密码)登录,而不是密码登录(同样,这也有安全隐患,请确保你清楚自己在做什么!)。这是通过ssh做远程进程监控所必需的。 - 在 IB gateway 软件中,把监控机的 IP(192.168.0.10)加入白名单。
- 你可能需要调整交易服务器上的防火墙设置,打开 27017 端口(MongoDB)和 4001 端口(IB,若你使用默认端口);例如在 Linux 下可以使用 UFW(
sudo ufw enable,sudo ufw allow 27017 from 192.168.0.10)或iptables。
然后,在监控机上:
- 同样,你也可能需要在监控机上调整防火墙设置,打开 27017(MongoDB)和 4001(IB,若端口不同请按实际修改)等端口。
- 修改系统配置文件
private_config.yaml,让它连接到远程交易服务器的 IP,例如:mongo_host: 192.168.0.13。 - 同样需要在
private_config.yaml中修改 IB 的连接地址,例如:ib_ipaddress: 192.168.0.13。 - 在
private_config.yaml中添加如下配置,以便进程监控能正常工作:
trading_server_ip: 192.168.0.13trading_server_username: 'rob'trading_server_ssh_port: 22(可选,默认为 22 端口)