从 Python 守护程序动态更新 Web 界面

Dynamically updating a web interface from a Python daemon

我将简要解释一下我要实现的目标:我们在 ipvsadm VIP(LVS 负载平衡)后面有很多服务器,我们会定期手动移动 in/out 个 VIP 服务器。为了降低风险(初级操作员会犯错误......)我想将其抽象为一个网络界面。

我有一个 Python 守护程序,它重复运行 "ipvsadm -l" 以获取服务器列表和统计信息,然后根据此输出创建 JSON。我现在想做的是服务器这个 JSON,并有一个可以传递命令的 Web 界面。例如,在 Web UI 中选择一个服务器并按下删除会触发 ipvsadm -d <server>... 命令。我还希望网络 UI 每 10 秒左右更新一次来自 list 命令的统计信息。

我当前的 Python 守护进程只是输出到一个文件。我是否应该以某种方式让这个守护进程也成为一个网络服务器并提供它的文件并使用命令 identifiers/arguments 接受 POST 请求?或者网络的第二个守护进程 UI?我唯一的前端经验是基本的 Bootstrap 和 jQuery 通常由 Laravel 支持,所以我不确定是否有更好的方法来使用套接字和一些花哨的 JS modern-主义。

如果这个post有更合适的地方,请尽可能移动它或者让我知道在哪里重新post。

您不需要花哨的 js 应用程序。为了走阻力最小的道路,我会创建一些额外的应用程序 - 如果你喜欢 python,我建议 flask for this job. If you prefer php, then how about slim?

在您的 Web 应用程序中,如果您想让它变得又快又简单,您甚至可以实现 ajax mechanism fetching results based on interval 每 10 秒刷新一次服务器数据。您将从 json 由独立的、已经存在的守护进程提供的服务中获取它。

运行 Web 上单击的命令 UI 可以由您的 Web 应用程序完成。

您的 Web 应用程序是额外的东西,我发现与获取有关服务器的数据并将其保存为 json 的守护程序 分开 很好。您可以随时关闭该页面,但所有统计信息仍将以 json 格式获取并可供控制台用户使用。