应用管理
应用管理
功能简介
应用管理用于在 SamWaf 中托管并守护本地业务进程(如 jar 包、可执行程序等)。SamWaf 可以启动、停止、重启被托管应用,按策略在异常退出时自动拉起,并提供日志查看、初始文件上传、升级/回滚以及网络监听信息查看等能力。
启用应用管理
应用管理默认关闭。进入页面后,SamWaf 会先检测当前运行实例的启用状态;检测期间显示加载状态,启用后显示应用列表。
如果页面显示未启用引导,请按以下步骤操作:
打开 SamWaf 安装目录下的
conf/config.yml,将已有的application_manage配置项设为true。若配置项不存在,可在 YAML 顶层添加:application_manage: true保存后重启 SamWaf。以服务方式运行时重启对应服务;以容器方式运行时修改该容器实际使用的持久化配置文件,再重启容器。
首次启用且尚未配置操作密码时,SamWaf 会自动生成应用操作密码并写入同一配置文件的
application_op_password字段。请在文件中查看并妥善保管,后续应用操作会用到。返回应用管理页面,点击 重新检测。检测到已启用后,页面进入原有应用列表。
页面仅展示启用方法,启用状态由配置文件和重启后的运行配置决定,页面不提供在线开关或显示操作密码。配置文件里已改为 true,但尚未重启时,重新检测仍会显示当前实例未启用。
检测失败时页面会显示失败提示,可在网络和服务恢复后重试。失败提示不表示功能已关闭;重启期间服务暂不可达时,请待服务启动完成后再检测。
启用后,页面顶部会提示:可信路径(允许托管的应用目录)在 conf/config.yml 的 application_allow_dirs 字段中配置,修改后需重启 SamWaf 生效。
大部分敏感操作(新建、编辑、删除、启动、重启、升级)都需要先输入 应用操作密码,详见下文「应用操作密码」一节。
操作步骤
1. 新建应用
点击左上角 新建应用(若尚未输入应用操作密码,会先弹出操作密码确认框)。
在表单中按区块填写配置:
基本配置
- 应用名称(必填)
- 启动命令(必填,如
java -jar app.jar或./myapp) - 工作目录:留空则使用服务端默认目录;表单下方会实时显示服务端解析后的实际路径、允许目录范围和相对路径基准,保存或启动失败时会直接显示具体原因。
- 环境变量:格式
KEY=VALUE,KEY2=VALUE2(逗号分隔) - 启用状态:开 / 关
- 自动启动:是 / 否
停止配置
- 停止方式:信号(SIGTERM/taskkill)或自定义命令
- 停止命令:仅当停止方式为自定义命令时显示
- 停止等待:等待停止的秒数(1–300)
重启策略
- 重启策略:不自动重启 / 异常退出时重启 / 总是重启
- 重启等待:策略非「不自动重启」时显示,单位秒
- 最大重启次数:策略非「不自动重启」时显示,0 表示不限
日志配置
内存日志行数(100–10000)
备注:可选
初始文件(可选,仅新建时)
- 选择文件:可上传应用的初始文件到工作目录
- SHA256 校验值:选择文件后自动计算,也可手工填写
点击 提交 完成创建,点击 取消 放弃。若初始文件上传失败,应用记录仍会保留,可在同一窗口修改配置后重新提交,系统会更新该记录并重试上传,不会重复创建应用。
2. 启动 / 停止 / 重启
在列表对应应用行的操作列:
- 启动:当应用未在运行时显示,发送启动指令。
- 停止:当应用运行中时显示,发送停止指令。
- 重启:发送重启指令。
指令发送后会显示「处理中...」,系统会轮询状态直至到达目标状态后刷新列表。
3. 查看日志
- 点击 查看日志 打开日志窗口,查看应用的内存日志,并可清空日志。
4. 升级 / 回滚
- 点击 升级/回滚 打开升级窗口,可上传新版本文件并选择操作类型(仅上传 / 上传并升级,升级流程为:停止 → 备份 → 替换 → 重启),也可从备份列表中选择历史版本进行回滚。
Linux 首次上传的新文件会在系统初始权限上增加所有者执行位,读写权限仍受系统 umask 限制。例如通常的 0644 会变为 0744,umask 077 下的 0600 会变为 0700。覆盖上传或升级已有文件时,会沿用原文件的普通读写执行权限;新备份保留源文件权限,回滚按备份权限恢复。
如果 Linux 应用已出现 Permission denied,请在服务器上进入应用工作目录,核对 ls -l ./server-linux-amd64。若文件所有者就是应用运行账号且缺少执行位,可执行 chmod u+x ./server-linux-amd64 后再从页面启动;其它账号运行时,按实际账号与用户组设置权限。历史备份不会自动补回已经丢失的执行位。权限正确仍无法启动时,再检查父目录访问权限、文件系统的 noexec 挂载选项与系统访问策略。
5. 查看网络
- 点击 网络 查看该应用的监听端口与连接 IP 等网络信息(最多显示 1000 条连接记录)。
6. 变更记录
- 点击 变更记录 打开抽屉,查看该应用的变更历史。按钮上的徽章用于提示未读的变更条数。
- 在 安全审计 页面将分类选为 应用管理,可查看新增、编辑、删除、启停、文件上传、升级、回滚、清空日志以及操作密码校验拒绝的记录。记录包括操作者、来源 IP、结果,详情展示应用编号、名称、相关文件与处理阶段。应用操作统一在安全审计查看,不再写入系统日志。
- 异步指令显示成功仅表示已提交,实际运行情况请查看应用状态与日志。升级或回滚后若即时启动失败,会提示文件已替换或恢复、启动失败,审计结果为失败。应用的启动状态为停用时,升级或回滚只替换或恢复文件,不会启动应用,提示「应用已停用,未启动」,审计结果为成功。
- 新增及编辑的变更记录保留工作目录的实际路径,对命令、环境变量等仅保留设置或变更摘要;审计不记录操作密码、环境变量值或完整命令。
7. 编辑 / 删除
- 编辑:修改应用配置(同新建表单字段,密码确认通过后打开)。
- 删除:在确认弹窗中确认后删除该应用。
字段说明
| 字段 | 说明 |
|---|---|
| 应用名称 | 应用的显示名称,必填。 |
| 运行状态 | 运行中 / 已停止 / 已崩溃。 |
| PID | 当前进程 ID。 |
| 重启次数 | 已发生的重启次数。 |
| 启用状态 | 开 / 关。 |
| 自动启动 | 是 / 否,SamWaf 启动时是否自动拉起该应用。 |
| 重启策略 | 不自动重启 / 异常退出时重启 / 总是重启。 |
| 启动命令 | 启动应用的命令,必填。 |
| 工作目录 | 应用运行目录,留空默认为 data/applications/{code}/。 |
| 环境变量 | 形如 KEY=VALUE,KEY2=VALUE2 的环境变量,逗号分隔。 |
| 停止方式 | 信号(SIGTERM/taskkill)或自定义命令。 |
| 停止命令 | 自定义停止方式时使用的命令。 |
| 停止等待 | 等待应用停止的秒数(1–300)。 |
| 重启等待 | 重启前等待的秒数。 |
| 最大重启次数 | 自动重启的上限,0 表示不限。 |
| 内存日志行数 | 内存中保留的日志行数(100–10000)。 |
| SHA256 校验值 | 上传文件的校验值,选择文件后自动计算。 |
| 备注 | 应用说明信息,可选。 |
应用操作密码
新建、编辑、删除、启动、重启、升级等操作需要验证 应用操作密码。
- 该密码与登录密码不同。启用应用管理时,若尚未配置操作密码,SamWaf 会自动生成并写入安装目录下
conf/config.yml的application_op_password字段,请在该文件中查看。 - 在操作密码确认框中输入密码,可勾选 本次会话内记住密码,记住后一段时间内无需重复输入。
- 密码错误会提示「操作密码错误,请重新输入」。
常见问题
- 工作目录填写后不生效 / 路径不可用? 可托管的目录受
conf/config.yml的application_allow_dirs(可信路径)限制,修改该字段后需重启 SamWaf 生效。页面会显示服务端解析后的目录与允许范围;若保存或启动失败,请先核对提示中的路径是否位于允许范围内。 - 不知道应用操作密码? 在 SamWaf 安装目录下
conf/config.yml的application_op_password字段中查看。首次启用后若该字段仍为空,请确认已重启正确的服务或容器,且其配置文件可写。 - 改了配置仍显示未启用? 确认修改的是当前实例使用的配置文件,保存后重启该实例,再点击 重新检测。
更新记录
| 适用版本 | 更新内容 |
|---|---|
| >v1.3.25-beta.9(未发布) | Linux 首次上传增加所有者执行位,覆盖与升级保留已有普通权限,备份与回滚保留源权限;应用操作纳入安全审计的应用管理分类,记录结果与处理阶段;补充执行权限恢复说明。 |
| >v1.3.25-beta.9(未发布) | 工作目录下方实时显示服务端解析路径、允许范围与相对基准;保存或启动失败直接提示具体原因;初始文件上传失败后可在同一窗口重试上传而不重复创建应用。 |
| v1.3.25-beta.9 | 增加应用管理启用引导、状态检测及重试说明,补充配置文件中的操作密码查看方法。 |
