Files
momentry_core_0_1/MOMENTRY_INTEGRATION_GUIDE.md
accusys de14bd6afa Initial commit: Momentry Core v0.1
- Rust-based digital asset management system
- Video analysis: ASR, OCR, YOLO, Face, Pose
- RAG capabilities with Qdrant vector database
- Multi-database support: PostgreSQL, Redis, MongoDB
- Monitoring system with launchd plists
- n8n workflow automation integration
2026-03-16 15:07:33 +08:00

11 KiB
Raw Permalink Blame History

Momentry 系統整合指南 v0.1

一、專案概述

Momentry 是一個數位資產管理系統包含服務遷移、監控系統、Storage 架構和用戶管理。

設計目標

  • 自動化優先:人類只需處理通知和判斷
  • 分層監控:七層監控架構
  • 數據納管:檔案由資料庫統一管理

二、系統架構

硬體

  • 本地 NVMe:熱數據 (/Users/accusys/momentry/)
  • 外部 RAID:溫數據 (/Volumes/RAID System/)
  • Object Storage:冷數據歸檔

網路

  • DDNSmomentry.ddns.net
  • VPNShadowsocks (port 8388)
  • 反向代理Caddy

軟體服務 (15 個)

服務 Port 用途 狀態
PostgreSQL 5432 主資料庫 運行
Redis 6379 快取/會話 運行
n8n Main 5678 工作流 運行
n8n Worker 5690 工作流 運行
Caddy 443/2019 反向代理 運行
Gitea 3000 Git 服務 運行
SFTPGo 2222 SFTP 運行
Ollama 11434 LLM 運行
Qdrant 6333 向量資料庫 運行
MariaDB 3306 WordPress 運行
PHP-FPM - Web 後端 運行
RustDesk hbbs 21116 遠程桌面 運行
RustDesk hbbr 21117 遠程桌面 運行
MongoDB 27017 文檔資料庫 運行
Agent - 代理服務 運行

三、監控系統 (七層架構)

Layer 1: External 監控          - DDNS、網關、互聯網
Layer 2: Service 監控           - 15 個服務健康檢查
Layer 3: Workflow 監控           - n8n Workflow 狀態/閒置分析
Layer 4: Portal 監控             - WordPress 頁面/帳號
Layer 5: Database 監控           - PostgreSQL/Redis/Qdrant/MariaDB
Layer 6: 使用者監控              - 連線/本機/異常檢測
Layer 7: Storage 架構            - 冷溫熱/歸檔/檔案註冊

3.1 Layer 1: External 監控

監控項目

  • DDNS 域名解析 (momentry.ddns.net)
  • 網關連通性 (192.168.110.1)
  • 互聯網連接 (8.8.8.8)

腳本monitor/service/external_monitor.sh

3.2 Layer 2: Service 監控

監控項目

  • 進程狀態
  • 端口響應
  • HTTP 狀態碼

腳本monitor/service/health_check.sh

3.3 Layer 3: n8n Workflow 監控

監控項目

  • Workflow 數量與啟用狀態
  • 執行次數與結果
  • 閒置識別

閒置定義

閒置 = 無排程 AND 無 API 觸發 AND 超過 30 天未執行

改善建議

  • 建議停用:閒置 > 30 天
  • 建議刪除:閒置 > 90 天

腳本monitor/workflow/n8n_workflow_monitor.sh

3.4 Layer 4: WordPress Portal 監控

變動監控

  • 版本變更 (Core/Theme/Plugin)
  • 文件變更 (wp-content)
  • 配置變更 (wp-config.php)
  • 內容變更 (文章/頁面)
  • 代碼變更
  • 帳號創建/刪除/修改

使用監控

  • 帳號登入/失敗
  • 內容操作 (發布/編輯/刪除)
  • 權限變更
  • 評論/媒體操作

腳本monitor/portal/page_monitor.sh

3.5 Layer 5: Database 監控

PostgreSQL

  • 表數量/行數/大小
  • 死元組
  • 慢查詢

Redis

  • 連線數
  • 內存使用
  • 命中率
  • 客戶端列表

Qdrant

  • Collection 列表
  • Points 數
  • 向量維度
  • 磁盤使用

MariaDB

  • 連線數
  • WordPress 表

腳本

  • monitor/database/postgres_monitor.sh
  • monitor/database/redis_monitor.sh
  • monitor/database/qdrant_monitor.sh

3.6 Layer 6: 使用者監控

連線使用者

  • SSH 登入與命令
  • Web 服務 (n8n/Gitea/WP)
  • 資料庫連線
  • SFTP 傳輸

本機使用者

  • 系統登入
  • sudo 使用
  • 服務帳戶
  • 異常檢測

異常檢測

  • 暴力破解 (> 5次/分鐘)
  • 權限提升
  • 異常時間登入

腳本monitor/users/session_tracker.sh

3.7 Layer 7: Storage 架構

目錄結構

/Users/accusys/momentry/
├── var/           # 服務數據 (熱)
├── etc/           # 配置 (溫)
├── log/           # 日誌 (溫)
├── data/          # 用戶數據
│   ├── family/    # 家庭集群
│   ├── work/      # 工作集群
│   ├── wordpress/ # WP 隔離
│   └── shared/    # 共享
├── backup/        # 備份
│   ├── daily/
│   ├── weekly/
│   ├── monthly/
│   └── archive/
└── tmp/           # 臨時

分層標準

等級 條件 存放
7天內訪問 > 10次 NVMe
30天內訪問 > 1次 RAID
90天未訪問 Object

歸檔策略

  • 手動歸檔
  • 自動歸檔 (90天)
  • 深度歸檔 (1年)

腳本monitor/storage/storage_manager.sh


四、數據表設計

監控相關

monitor_services          -- 服務健康狀態
monitor_workflows        -- n8n Workflow
monitor_databases        -- 資料庫指標
monitor_portal_pages     -- WP 頁面
monitor_portal_users     -- WP 用戶
monitor_sessions         -- 使用者會話
monitor_logins          -- 登入歷史
monitor_sudo_history    -- sudo 記錄
monitor_resource_usage  -- 資源使用
monitor_anomalies       -- 異常檢測
monitor_external        -- 外部監控

Storage 相關

file_registry           -- 檔案註冊
storage_usage_stats    -- 存儲統計
storage_access_logs    -- 訪問日誌
file_lifecycle         -- 生命週期

八、實現文件結構

momentry_core_0.1/
├── MOMENTRY_INTEGRATION_GUIDE.md  # 本文件
├── monitor/
│   ├── MONITORING.md              # 監控詳細文檔
│   ├── config/
│   │   └── monitor_config.yaml    # 配置文件
│   ├── control/
│   │   └── monitor_control.sh    # 控制腳本
│   ├── service/
│   │   ├── health_check.sh       # 服務健康
│   │   └── external_monitor.sh   # 外部監控
│   ├── workflow/
│   │   └── n8n_workflow_monitor.sh
│   ├── portal/
│   │   └── page_monitor.sh
│   ├── database/
│   │   ├── schema.sql
│   │   ├── postgres_monitor.sh
│   │   ├── redis_monitor.sh
│   │   └── qdrant_monitor.sh
│   ├── users/
│   │   └── session_tracker.sh
│   └── storage/
│       └── storage_manager.sh
├── momentry_runtime/
│   └── plist/
│       ├── template.service.plist  # 用戶級模板
│       ├── template.root.plist    # 系統級模板
│       └── *.plist                # 服務配置文件
└── docs/
    ├── SERVICES.md                 # 服務安裝
    └── SERVICE_ADDITION_GUIDE.md  # 服務添加規範

六、快速使用

初始化

# 初始化監控資料庫
psql -U accusys -h localhost -d momentry -f monitor/database/schema.sql

# 初始化 Storage 目錄
./monitor/storage/storage_manager.sh init

監控命令

cd /Users/accusys/momentry_core_0.1/monitor

# 查看狀態
./control/monitor_control.sh status

# 執行檢查
./control/monitor_control.sh check all           # 全部
./control/monitor_control.sh check service      # 服務
./control/monitor_control.sh check workflow      # Workflow
./control/monitor_control.sh check database      # 資料庫
./control/monitor_control.sh check users         # 使用者
./control/monitor_control.sh check storage       # Storage

# 持續監控
./control/monitor_control.sh monitor

七、優先級

優先級 項目
P0 Service 基礎監控
P0 Database 監控
P1 使用者監控
P1 n8n Workflow 監控
P2 WordPress Portal 監控
P2 External 監控
P3 Storage 架構

九、服務添加規範

9.1 概述

添加新服務到 Momentry 系統的標準流程。

重要原則

  • 使用 launchctl 管理服務,勿使用 brew services
  • 所有服務使用 com.momentry.* 作為 plist Label
  • 數據存放於 /Users/accusys/momentry/ 目錄
  • 每個服務需提供監控腳本

9.2 命名規範

Plist 文件命名

com.momentry.{service_name}.plist

目錄結構

/Users/accusys/momentry/
├── var/{service_name}/     # 服務數據
├── etc/{service_name}/    # 服務配置
└── log/{service_name}.log # 服務日誌

9.3 Plist 模板

用戶級服務模板 (plist/template.service.plist)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.momentry.{service_name}</string>
    <key>UserName</key>
    <string>accusys</string>
    <key>WorkingDirectory</key>
    <string>/Users/accusys/momentry/var/{service_name}</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/homebrew/bin/executable</string>
    </array>
    <key>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
    </dict>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/Users/accusys/momentry/log/{service_name}.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/accusys/momentry/log/{service_name}.error.log</string>
</dict>
</plist>

9.4 添加步驟

步驟 1創建目錄

mkdir -p /Users/accusys/momentry/var/{service_name}
mkdir -p /Users/accusys/momentry/etc/{service_name}

步驟 2創建 Plist 文件

cp plist/template.service.plist plist/com.momentry.{service_name}.plist
# 編輯 plist 文件

步驟 3複製到系統

# 系統級服務
sudo cp plist/com.momentry.{service}.plist /Library/LaunchDaemons/

# 用戶級服務
cp plist/com.momentry.{service}.plist ~/Library/LaunchAgents/

步驟 4載入服務

sudo launchctl load /Library/LaunchDaemons/com.momentry.{service}.plist

步驟 5添加監控monitor/config/monitor_config.yaml 中添加服務配置。

9.5 服務管理命令

# 啟動
sudo launchctl load /Library/LaunchDaemons/com.momentry.{service}.plist

# 停止
sudo launchctl unload /Library/LaunchDaemons/com.momentry.{service}.plist

# 查看狀態
launchctl list | grep momentry

# 查看日誌
tail -f /Users/accusys/momentry/log/{service}.log

9.6 服務分類

類型 Plist 位置 示例
系統級 /Library/LaunchDaemons/ PostgreSQL, Caddy
用戶級 ~/Library/LaunchAgents/ Redis, n8n, Ollama

9.7 模板文件

文件 說明
plist/template.service.plist 用戶級服務模板
plist/template.root.plist 系統級服務模板
docs/SERVICE_ADDITION_GUIDE.md 完整規範文檔

十、版本歷史

版本 日期 內容
0.1 2026-03-15 初始版本七層監控架構、15 個服務、Storage 設計
0.2 2026-03-15 新增服務添加規範 (第九章)、模板文件