跳转到主要内容

集中式监控UI(Web & CLI)

项目描述

Multivisor

multivisor web on chrome desktop app

Multivisor Python Versions Pypi status License Build Status

集中式监控UI(Web & CLI)

  • 进程状态始终是最新的
  • 异步操作的反应性
  • 状态变化时通知
  • 移动感知,单页应用(SPA)网页
  • 强大的过滤器
  • 交互式CLI
  • supervisorsupervisor-win 上运行

Multivisor由3个组件组成

  1. web服务器:从所有监控器收集信息,并为整个系统提供一个类似仪表板的UI
  2. multivisor RPC:用于在每个supervisord和multivisor web服务器之间通信的supervisor的RPC扩展
  3. CLI:一个可选的CLI,与multivisor web服务器通信

安装和配置

安装和配置步骤在Linux和Windows上完全相同。

感谢 ESRF 的赞助,multivisor能够很好地与 supervisor-win 一起工作。

RPC

多视窗RPC必须安装在与您的supervisord实例相同的环境(们)中。它可以在2.7到3.x的Python环境中安装。

在您的supervisord进程相同的Python环境中,输入

pip install multivisor[rpc]

配置多视窗RPC有两种选择:1)作为额外的rpcinterface配置到supervisord或2)由supervisord管理的eventlistener进程。

第一种方法的优势是不需要额外的进程,但其实现依赖于supervisord的内部细节。因此,多视窗作者建议使用第二种方法。

选项1:rpcinterface

通过将以下行添加到您的supervisord.conf文件来配置多视窗RPC接口

[rpcinterface:multivisor]
supervisor.rpcinterface_factory = multivisor.rpc:make_rpc_interface
bind=*:9002

如果没有提供bind,它默认为*:9002

为每台正在运行的supervisor重复上述步骤。

选项2:eventlistener

通过将以下行添加到您的supervisord.conf文件来配置多视窗RPC接口

[eventlistener:multivisor-rpc]
command=multivisor-rpc --bind 0:9002
events=PROCESS_STATE,SUPERVISOR_STATE_CHANGE

如果没有提供bind,它默认为*:9002

您可以选择事件监听器的名称。作为一种惯例,我们建议使用multivisor-rpc

注意:确保multivisor-rpc命令可访问或提供完整的PATH。

为每台正在运行的supervisor重复上述步骤。

Web服务器

多视窗Web服务器需要一个Python 3.x环境。它必须安装在一个可以访问不同supervisors的机器上。这是通过以下方式实现的

pip install multivisor[web]

Web服务器使用类似于INI的配置文件(类似于supervisor本身)进行配置,该文件作为命令行参数传递。它通常命名为multivisor.conf,但可以是您想要的任何文件名。

该文件包含一个global部分,其中您可以提供可选的名称给您的多视窗实例(默认是multivisor。此名称将出现在多视窗网页的左上角)。

要添加新的supervisor到列表中,只需添加一个[supervisor:<name>]部分。它接受一个可选的格式为[<host>][:<port>]url。默认为<name>:9002

以下是一个示例

[global]
name=ACME

[supervisor:roadrunner]
# since no url is given it will be roadrunner:9002

[supervisor:coyote]
# no host is given: defaults to coyote
url=:9011

[supervisor:bugsbunny]
# no port is given: defaults to 9002
url=bugsbunny.acme.org

[supervisor:daffyduck]
url=daffyduck.acme.org:9007

multivisor web on mobile

安装和配置完成后,可以从命令行启动Web服务器

multivisor -c ./multivisor.conf

启动一个指向localhost:22000的浏览器。在移动设备上,它应该看起来像右边的图。

当然,多视窗Web服务器本身也可以作为普通程序在supervisor中进行配置。

认证

为了保护多视窗免受未授权访问,您可以启用认证。

在配置文件的global部分指定usernamepassword参数,例如

[global]
username=test
password=test

您也可以将password指定为SHA-1散列的十六进制值,以{SHA}前缀开头:例如{SHA}a94a8fe5ccb19ba61c4c0873d391e987982fbbd3(示例散列是SHA-1中的test)。

为了使用认证,您还需要设置环境变量MULTIVISOR_SECRET_KEY,因为flask会话模块需要一些秘密值来创建安全的会话。您可以使用python轻松生成一些随机散列:python -c 'import os; import binascii; print(binascii.hexlify(os.urandom(32)))'

CLI

多视窗CLI是一个可选组件,可以通过以下方式安装

pip install multivisor[cli]

CLI直接通过HTTP REST API连接到Web服务器。它不需要任何配置。

它可以通过以下方式启动

multivisor-cli --url localhost:22000

CLI in action

从头开始运行示例

# Fetch the project:
git clone https://github.com/tiagocoutinho/multivisor
cd multivisor


# Install frontend dependencies
npm install
# Build for production with minification
npm run build

# feel free to use your favorite python virtual environment
# here. Otherwise you will need administrative privileges
pip install .[all]

# Launch a few supervisors
mkdir examples/full_example/log
supervisord -c examples/full_example/supervisord_lid001.conf
supervisord -c examples/full_example/supervisord_lid002.conf
supervisord -c examples/full_example/supervisord_baslid001.conf

# Finally, launch multivisor:
multivisor -c examples/full_example/multivisor.conf

就这样!

启动一个指向localhost:22000的浏览器。在移动设备上,它应该看起来像这样

multivisor on mobile

技术

multivisor diagram

multivisor后端运行一个flask Web服务器。

multivisor-cli运行一个基于prompt-toolkit的控制台。

前端基于vue + vuex + vuetify

开发

构建和安装

# install frontend
npm install

# build for production with minification
npm run build

# install backend
pip install -e .

运行

# serve at localhost:22000
multivisor -c multivisor.conf

启动浏览器指向 localhost:22000

开发模式

您可以使用 webpack 开发服务器来运行后端,以方便您的开发周期

首先,启动多视器(默认监听 22000 端口)

python -m multivisor.server.web -c multivisor.conf

现在,在另一个控制台中运行 webpack 开发服务器(它将在浏览器和多视器之间转发请求)

npm run dev

就是这样。例如,如果您修改了 App.vue,您应该在浏览器上直接看到更改。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

multivisor-6.0.1.tar.gz (739.0 kB 查看哈希值)

上传时间

由以下支持