feat(menu): 日志查询/日志分析拆为独立菜单 + 部署菜单改名「组件部署」
按使用反馈调整信息架构:
=== 1. 日志查询、日志分析保持独立菜单(不折叠)===
上一版把两者并进「日志」分组,实际使用中不方便:
- 日志查询是最高频入口,不该多点一次 tab 才到
- 日志分析是管理员专用的聚合视图,与查询的心智模型不同
改为两个独立菜单项,/logs 的菜单名保持「日志查询」不变(用户明确要求),
/analysis 保留 adminOnly(仅管理员可见)。
=== 2. /deployments 菜单改名:部署 Loki → 组件部署 ===
命名评估(三个候选):
组件部署 ✅ 选中:部署对象是基础设施组件(Loki 实例),
与本环境大量 cex-* 业务服务明确区分。
运维在侧栏看到「服务部署」第一反应会是"发布业务服务",容易误点。
服务部署 ✗ 与业务服务语义冲突
部署 Loki ✗ 以后支持多组件(Fluent Bit / Grafana)就名不副实
文案改动:菜单 menu.deployments、页面标题、组内 tab 全部统一为「组件部署」,
en 同步为 Component Deploy / Component Deploy 页面标题。
=== 3. 顺带修:启动日志每次都打印「首次部署」===
旧实现无条件打印
log.Printf("首次部署请查看启动日志或 %s/initial-admin-password.txt ...")
于是每次重启日志里都有「首次部署」,排查时极易被误导成
"平台重新初始化了、数据是不是丢了"(本次就因此自查了一轮)。
改为仅当密码文件存在时才提示(admin 改密后该文件会被删除)。
=== 当前菜单结构(8 项)===
仪表盘 / 部署向导 / 资源接入(集群·主机·存储) / 日志服务(组件部署·日志采集)
/ 日志查询 / 日志分析(admin) / 日志告警 / 系统管理(用户·审计·设置)
=== 实测 ===
bundle 文案:组件部署1 日志查询2 日志分析2 资源接入1 日志服务1 系统管理1
启动日志「首次部署」出现次数:0
CLI self-check:overall=ok(数据库 54.7 KB,CLI 模式读取)
CLI backup:记录数 88(修复前为 0)、密钥指纹 d714ebda23908331
镜像:lghost/lokistack:latest + v0.1 = aa6313fee5bb
This commit is contained in:
1 parent
b2c82da377
commit
1a4c75e28c
6 files changed
+25
-20
No files matched your search
+13
-2
@@ -26,6 +26,12 @@ import (
|
||||
// version 由构建注入(-ldflags "-X main.version=..."),未注入时为 dev
|
||||
var version = "2.0.0"
|
||||
|
||||
// fileExists 判断文件是否存在(用于"是否首次部署"这类轻量判断)。
|
||||
func fileExists(path string) bool {
|
||||
_, err := os.Stat(path)
|
||||
return err == nil
|
||||
}
|
||||
|
||||
// runCLI 提供不依赖 Web 的运维命令(备份 CronJob、恢复、自检都走它)。
|
||||
//
|
||||
// lokistack backup --output /app/data/backups/xxx.tar.gz
|
||||
@@ -154,8 +160,13 @@ func main() {
|
||||
go func() {
|
||||
log.Printf("lokistack starting on port %s", cfg.ServerPort)
|
||||
log.Printf("API: http://localhost:%s/api/v1", cfg.ServerPort)
|
||||
// 初始密码:首次启动日志中的「已生成管理员账号」,或数据卷 initial-admin-password.txt
|
||||
log.Printf("首次部署请查看启动日志或 %s/initial-admin-password.txt 获取 admin 初始密码", cfg.DataDir)
|
||||
// 初始密码只在**真正首次部署**时提示:
|
||||
// 旧实现无条件打印这句话,于是每次重启日志里都出现"首次部署",
|
||||
// 排查问题时极易被误导成"平台重新初始化了、数据是不是丢了"。
|
||||
// 判据用密码文件是否存在(admin 改密后该文件会被删除)。
|
||||
if pwdFile := filepath.Join(cfg.DataDir, "initial-admin-password.txt"); fileExists(pwdFile) {
|
||||
log.Printf("首次部署:admin 初始密码见 %s(改密后该文件会自动删除)", pwdFile)
|
||||
}
|
||||
if err := srv.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
|
||||
log.Fatalf("Server failed: %v", err)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user