堡塔插件:堡塔应用管理器 使用说明
本帖最后由 Linxiao 于 2021-11-24 15:43 编辑本文以Python项目作为参考,文末包含Go、Java项目创建示例
Hello,大家好!全新插件【堡塔应用管理器】正式上线。
一、简介:
堡塔应用管理器 定位是为自定义持久化运行应用(服务)提供一个集启动环境参数配置、应用运行状态可视化和进程守护、日志管理为一身的管理工具。简单来说,如果一个应用需要持久化运行,我们希望提供一个全方位的监控运行管理工具。
二、简易使用流程图:
堡塔应用管理器使用流程非常简单,添加一个应用>选择环境>必要的参数配置>然后启动就好了。
三、开发背景:
作为应用服务器的管理者,我们经常需要在服务器上开启或停止某项服务。站在使用者角度这类服务我们把它分为两类:一类是系统级,他们属于现有的成熟产品服务,譬如Linux系统的日志进程syslogd、Web服务器进程httpd、邮件服务器的sendmail以及Mysql数据库服务器进程mysqld等;另一类是我们自己或公司开发的某个需要持久化运行的服务,有可能是Python写的某个管理系统,或者PHP搭建的某个企业站服务等等。两者不同之处是,第一类服务进程会有比较完善的运行监控、日志处理、环境参数配置等工具。而我们自己开发的第二类服务常常需要手动在命令行去敲入长长的命令行、配置不同的参数等等繁琐的操作,动手能力强的用户可能会选择写一个启动脚本的东西,避免下次重复操作。这虽然能解决一些问题,但我们要解决的可不仅仅只是帮你写一个启动脚本而已。
四、优势:
用堡塔应用管理器管理应用,有几点显而易见的优势:
1. 保证应用持续运行。堡塔应用管理器保证应用持续运行分为三个步骤:其一,单独运行后台监听进程对正在运行的应用做监听,发现应用异常退出立刻重新启动(默认限制重复启动10次);其二,应用管理器默认随开机启动,启动后自动将在关机前正常运行的应用重新开启;其三,针对堡塔现有安全插件防护机制做特别处理,保证不会被安全防护意外杀掉。
2. 独立环境运行、集中化配置和管理。堡塔应用管理器为运行主流开发语言(Python、PHP、Java、Go、Ruby、NodeJS等)应用而设计,每一种环境配置的应用都基于进程独立运行。你可以为应用选择相同语言的不同版本配置不同的默认参数和环境变量,实现可视化集中化管理。为了方便用户使用,堡塔应用管理器默认识别服务器内主流开发语言的开发环境(目前支持Python和PHP,后续持续更新),你也可以自定义添加已安装的运行环境。
3. 主动监听应用运行状态。堡塔应用管理器会主动不间断地收集应用的基础信息、负载信息帮你随时掌握应用的运行状态和变化。
4. 分类日志输出管理。堡塔应用管理器为每一个应用单独分配日志输出文件,并详细记录每个应用的启动、停止等操作与时间。
五、使用说明步骤:
为了让说明不显得枯燥和更加有针对性,使用说明结合一个实际的添加Python应用的例子作为参考。在使用的过程中逐一对堡塔应用管理器做详细说明。
0. 准备应用文件。
示例的Python应用文件清单如下(实际当中替换成自己的应用文件):
文件名称
说明(支持python2和3)
fakeserver.py
应用的启动文件,需要持久运行监听6666端口,等待客户端连接。
client.py
客户端程序,用于连接到fakeserver,并与之交互。
如需用文件做测试,请到附件下载。
本示例中把fakeserver.py和client.py用堡塔面板上传到了/www/server/panel/script目录下。
1. 打开堡塔应用管理器主界面。
2. 点击[添加应用]。
将应用命名为fakeserver,选择一个Python执行环境,这里是。
启动文件选择/www/server/panel/script/fakeserver.py,然后点击[添加]保存应用,第一个应用就添加完成了。
3. 启动应用。
默认新添加的应用是已暂停状态,点击后启动应用。
应用启动后,我们能看到fakeserver的进程ID、监听端口号、CPU占用百分比、内存占用大小等信息。
4. 模拟客户端连接。
打开SSH终端,cd到/www/server/panel/script/目录,命令行键入btpython client.py。这个时候命令行会等待你的输入,与fakeserver进行交互(注意:这是示例应用的机制,无需管太多)。
当我们输入hi, fakeserver!之后,fakesever也同样返回了相同的内容。fakeserver作为测试应用,它只是简单把客户端发送过来的内容返回给客户端。当我们看到相同的内容返回代表fakeserver运行正常。你可以再输入多一点内容,方便下一步测试。输入exit或者按Ctrl+C是退出client.py。
5. 查看应用日志。
在[应用列表]页的fakserver行,点击[日志],打开fakeserver的运行日志。
在日志页面,我们可以看到我们输入的"hi,fakeserver!"的输出记录。
6. 应用进程守护测试。
需要长时间运行的应用我们可能会担心要是应用中断后怎么办?人为的守着?写个脚本监听?不不不,现在有了堡塔应用管理器,都是自动监听并重新启动的。
为了模拟应用中断运行,我们手动把fakeserver的进程终止掉。首先从fakeserver的运行信息可以看到运行进程的ID为9028,在命令行中输入 kill -9 9028 终止掉fakeserver进程,然后
运行lsof -i:6666 检查是否还有进程监听着6666端口,没有的话说明fakeserver此时已经被中断了(fakeserver监听的是6666端口)。
fakeserver被我们中断之后,再去查看堡塔应用管理器的[服务日志]。如果没有及时显示,请稍等片刻。然后我们可以看到日志中出现fakeserver被异常中断的提示,并随后提示fakeserver被重新启动,更换了新的进程ID。
新的进程ID为9552,再切换到[应用列表]查看验证。
是9552没错,你也可以再次运行 lsof -i:6666 验证一下。
static/image/hrline/line5.png
到这里堡塔应用管理器的初步使用说明就这样了,你可以参考上面的流程添加自己的应用进行测试。
六、关于复杂应用的配置
涉及到应用参数和环境变量配置的应用请仔细阅读插件的提示,确定你已经明确了每一个参数的配置和预想一致。
这里主要提一点,环境的参数分为环境参数和应用参数,它们的不同之处在于环境参数是只对环境本身运行有效,应用参数会附加到应用启动文件的后面。
以Go语言应用helloworld启动为例:
/usr/bin/go run helloworld.go param1 param2 ....
-------------- ---- ------------------ ---------------------------------------
环境启动文件 环境参数 应用文件 应用参数
堡塔应用管理器配置示例:
当然,应用参数也是可以在应用的配置里面添加的。假设还有一个应用参数为param3,那么helloworld这个应用的最后参数有三个param1 param2 param3。
jar启动包的java项目配置:
环境,请注意-jar参数要加在环境这里:
然后添加你的应用:
堡塔应用管理器-应用持久化运行和管理工具,欢迎下载安装使用。
有任何问题请反馈到这里,Thanks♪(・ω・)ノ:D
建议增加指定用户运行的功能。 这插件不好好维护就下架吧,搞死个人。
先是ubuntu,一重启服务器应用就消失了,换到centos,重启服务器,应用不消失了,但是不会自启动。
放这种满是bug的插件出来搞什么都不知道,老老实实Supervisor管理器,一点问题没有。 ubuntu 重启的话,之前配置的都不在了,有谁遇到过这个问题? 本帖最后由 Linxiao 于 2020-9-22 09:13 编辑
宝塔用户_fvqpiw 发表于 2020-9-17 15:52
请问Supervisor管理器 和 堡塔应用管理器 如何选择呢
和 Supervisor管理器 对比起来,堡塔应用管理器 注重应用管理这个概念而不是进程管理,应用相比进程包括的信息更多、更全面。堡塔应用管理器 在保证应用不中断运行方面做的更加深入一些、运行状态信息呈现更加丰富、利用环境池来简化应用环境配置等等。总体来说 堡塔应用管理器 是堡塔现有用户在需要持久运行应用和管理的需求上专门定制的一个管理工具插件,它的运行机制不借助、不妥协第三方开源组件,应对未来的需求变化也灵活。
如果你服务器上的应用需要一直运行下去,推荐你选择用 堡塔应用管理器 来管理。
明明已经装好了 PHP7.4
就 是监测不到
反复重装也不行
安装不上,提示这个
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='down.rsakura.com', port=443): Max retries exceeded with url: /down/download_plugin (Caused by ConnectTimeoutError(, 'Connection to down.rsakura.com timed out. (connect timeout=30)')) 挺好用的,支持 支持支持! :D不错不错 支持下,很不错的软件{:4_87:} 请问Supervisor管理器 和 堡塔应用管理器 如何选择呢 Linxiao 发表于 2020-9-17 16:47
和 Supervisor管理器 对比起来,堡塔应用管理器 注重应用管理这个概念而不是进程管理,应用相比进程包括 ...
感谢~ 希望这个回答可以置顶 使用时报错:
AttributeError: 'NoneType' object has no attribute 'has_section'
环境为最新测试版 宝塔用户_hsnzpv 发表于 2020-9-28 14:58
使用时报错:
AttributeError: 'NoneType' object has no attribute 'has_section'
环境为最新测试版 ...
你好,首先升级到新版,如果新版仍然有问题尽快QQ联系我帮你处理。 python项目的日志不支持中文,如图:
我自己生成的日志文件是没问题的。 与非 发表于 2020-10-15 17:47
python项目的日志不支持中文,如图:
感谢反馈:handshake 我全局设置了 日志文件大小50KB切分 可是并不生效 怎么回事呢