# Momentry 服務故障排除 Skill ## 概述 此 Skill 提供常見服務問題的快速診斷參考,包含問題類型、檢查命令、日誌位置和常見解決方案。 --- ## 快速檢查清單 ### 1. 服務狀態檢查 ```bash # 查看所有 momentry 服務狀態 launchctl list | grep com.momentry # 或執行健康檢查 /Users/accusys/momentry_core_0.1/monitor/service/health_check.sh ``` ### 2. 端口佔用檢查 ```bash # 檢查特定端口 lsof -i : # 常用端口對照 # PostgreSQL: 5432 # Redis: 6379 # MariaDB: 3306 # n8n: 8085 (內部), 5678 (舊配置) # Caddy Admin: 2019 # Ollama: 11434 # Qdrant: 6333 # SFTPGo: 8080 (HTTP), 2022 (SFTP) # Gitea: 3000 # PHP-FPM: 9000 # RustDesk: 21115-21119 # MongoDB: 27017 ``` --- ## 服務詳細診斷 ### PostgreSQL **配置文件**: `/Users/accusys/momentry/etc/postgresql/` **數據目錄**: `/Users/accusys/momentry/var/postgresql/` **日誌**: `/Users/accusys/momentry/log/postgresql.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | 連線失敗 | `pg_isready -h localhost -p 5432 -U accusys` | 檢查 plist 是否載入 | | 認證錯誤 | `psql -U accusys -h localhost -d momentry -c "SELECT 1"` | 檢查 pg_hba.conf | | 效能問題 | `psql -U accusys -h localhost -d momentry -c "SELECT * FROM pg_stat_activity"` | 檢查連線數 | | 資料庫不存在 | `psql -U accusys -h localhost -l` | 創建數據庫 | ```bash # 創建數據庫 createdb -U accusys momentry ``` --- ### Redis **配置文件**: `/opt/homebrew/etc/redis.conf` **數據目錄**: `/Users/accusys/momentry/var/redis/` **日誌**: `/Users/accusys/momentry/log/redis.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | 連線失敗 | `redis-cli -a accusys ping` | 檢查密碼是否正確 | | 認證錯誤 | `redis-cli -a accusys AUTH accusys` | 檢查密碼配置 | | 記憶體過高 | `redis-cli -a accusys INFO memory` | 檢查 keys 數量 | | 持久化失敗 | `redis-cli -a accusys LASTSAVE` | 檢查 RDB 配置 | ```bash # 常用操作 redis-cli -a accusys SAVE # 觸發保存 redis-cli -a accusys FLUSHALL # 清空所有 keys redis-cli -a accusys KEYS '*' # 查看所有 keys ``` --- ### MariaDB **配置文件**: `/Users/accusys/momentry/etc/mariadb/` **數據目錄**: `/Users/accusys/momentry/var/mariadb/` **日誌**: `/Users/accusys/momentry/log/mariadb.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | 連線失敗 | `mysql -u accusys -e "SELECT 1"` | 檢查用戶權限 | | 拒絕訪問 | `mysql -u root -e "SELECT user FROM mysql.user"` | 檢查用戶配置 | | 效能問題 | `mysql -u accusys -e "SHOW PROCESSLIST"` | 檢查慢查詢 | ```bash # 常用操作 mysql -u accusys -e "SHOW DATABASES" mysql -u accusys -e "SHOW TABLES" momentry ``` --- ### n8n **配置文件**: `/Users/accusys/momentry/etc/n8n/` **數據目錄**: `/Users/accusys/momentry/var/n8n/` **日誌**: `/Users/accusys/momentry/log/n8n-main.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | 網頁無法訪問 | `curl -s http://localhost:8085/` | 檢查端口是否正確 | | API 錯誤 | `curl -s http://localhost:8085/healthz` | 檢查服務狀態 | | Workflow 不執行 | 檢查 n8n log | 檢查 queue (Redis) 連線 | | 資料庫連線失敗 | `psql -U n8n -h localhost -d n8n -c "SELECT 1"` | 檢查 PostgreSQL | **重要**: n8n 使用 PostgreSQL (非 SQLite),端口為 8085 ```bash # 數據庫連線 psql -U n8n -h localhost -d n8n # 查看 users psql -U n8n -h localhost -d n8n -c "SELECT id, email, \"firstName\", \"roleSlug\" FROM \"user\";" # 查看 workflows psql -U n8n -h localhost -d n8n -c "SELECT id, name, active FROM workflow_entity;" ``` --- ### Ollama **配置文件**: `/Users/accusys/momentry/etc/ollama/` **模型目錄**: `/Users/accusys/momentry/var/ollama/` **日誌**: `/Users/accusys/momentry/log/ollama.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | API 無回應 | `curl -s http://localhost:11434/api/tags` | 檢查服務是否啟動 | | 模型下載失敗 | `ollama list` | 重新下載模型 | | 記憶體不足 | `ollama list` | 檢查已加載模型 | ```bash # 常用操作 ollama list # 列出模型 ollama pull # 下載模型 ollama run # 運行模型 ``` --- ### Qdrant **配置文件**: `/Users/accusys/momentry/etc/qdrant/` **數據目錄**: `/Users/accusys/momentry/var/qdrant/` **日誌**: `/Users/accusys/momentry/log/qdrant.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | API 無回應 | `curl -s http://localhost:6333/collections` | 需要 API Key | | 認證失敗 | `curl -s -H "api-key: Test3200Test3200" http://localhost:6333/collections` | 檢查 API Key | | 效能問題 | `curl -s http://localhost:6333/cluster` | 檢查叢集狀態 | ```bash # 需要認證的指令 curl -s -H "api-key: Test3200Test3200" http://localhost:6333/collections curl -s -H "api-key: Test3200Test3200" http://localhost:6333/points/count ``` --- ### Caddy **配置文件**: `/Users/accusys/momentry/etc/caddy/` **數據目錄**: `/Users/accusys/momentry/var/caddy/` **日誌**: `/Users/accusys/momentry/log/caddy.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | Admin API 無回應 | `curl -s http://localhost:2019/config/` | 檢查 Caddy 進程 | | 網站無法訪問 | `curl -s -I https://localhost:443/` | 檢查證書配置 | | 代理失敗 | `curl -s http://localhost:2019/config/` | 檢查反向代理配置 | ```bash # 重新載入配置 sudo launchctl unload /Library/LaunchDaemons/com.momentry.caddy.plist sudo launchctl load /Library/LaunchDaemons/com.momentry.caddy.plist ``` --- ### Gitea **配置文件**: `/Users/accusys/momentry/etc/gitea/app.ini` **數據目錄**: `/Users/accusys/momentry/var/gitea/` **日誌**: `/Users/accusys/momentry/log/gitea.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | 網頁無法訪問 | `curl -s http://localhost:3000/` | 檢查服務狀態 | | Git 推送失敗 | `ssh git@localhost -p 22` | 檢查 SSH 配置 | | 資料庫連線 | `mysql -u gitea -p gitea_db -e "SELECT 1"` | 檢查 PostgreSQL | --- ### SFTPGo **配置文件**: `/Users/accusys/momentry/etc/sftpgo/sftpgo.json` **數據目錄**: `/Users/accusys/momentry/var/sftpgo/` **日誌**: `/Users/accusys/momentry/log/sftpgo.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | Web UI 無法訪問 | `curl -s http://localhost:8080/` | 檢查 HTTP 端口 | | SFTP 連線失敗 | `sftp -P 2022 user@localhost` | 檢查 SSH 密鑰 | | 認證失敗 | `curl -s http://localhost:8080/api/v2/info` | 檢查用戶配置 | --- ### PHP-FPM **配置文件**: `/Users/accusys/momentry/etc/php/` **日誌**: `/Users/accusys/momentry/log/php.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | PHP 無法執行 | `php -v` | 檢查 PHP 版本 | | FPM 無回應 | `curl -s http://localhost:9000/` | 檢查 FPM 端口 | | 500 錯誤 | `tail -100 /Users/accusys/momentry/log/php.error.log` | 檢查錯誤日誌 | --- ### RustDesk **配置文件**: `/Users/accusys/momentry/etc/rustdesk/` **日誌**: `/Users/accusys/momentry/log/rustdesk.*.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | 連線失敗 | `nc -z localhost 21116 && nc -z localhost 21117` | 檢查端口 | | ID 伺服器錯誤 | `pgrep -a hbbs` | 檢查 hbbs 進程 | | 中繼伺服器錯誤 | `pgrep -a hbbr` | 檢查 hbbr 進程 | --- ### MongoDB **配置文件**: `/Users/accusys/momentry/etc/mongodb/` **數據目錄**: `/Users/accusys/momentry/var/mongodb/` **日誌**: `/Users/accusys/momentry/log/mongodb.log` | 問題 | 檢查命令 | 解決方案 | |------|----------|----------| | 連線失敗 | `mongosh --quiet --eval "db.adminCommand('ping')"` | 需要認證 | | 認證錯誤 | `mongosh -u accusys -p Test3200Test3200 --authenticationDatabase admin` | 檢查用戶 | | 效能問題 | `mongosh -u accusys -p Test3200Test3200 --eval "db.serverStatus()"` | 檢查狀態 | --- ## 服務管理命令 ### 啟動服務 ```bash sudo launchctl load /Library/LaunchDaemons/com.momentry..plist ``` ### 停止服務 ```bash sudo launchctl unload /Library/LaunchDaemons/com.momentry..plist ``` ### 重啟服務 ```bash sudo launchctl unload /Library/LaunchDaemons/com.momentry..plist sudo launchctl load /Library/LaunchDaemons/com.momentry..plist ``` ### 查看服務日誌 ```bash tail -f /Users/accusys/momentry/log/.log tail -f /Users/accusys/momentry/log/.error.log ``` --- ## 服務端口對照表 | 服務 | 內部端口 | 外部端口 | Caddy 域名 | |------|---------|---------|------------| | PostgreSQL | 5432 | 5432 | - | | Redis | 6379 | 6379 | - | | MariaDB | 3306 | 3306 | - | | n8n | 8085 | 443 | n8n.momentry.ddns.net | | Ollama | 11434 | 11434 | - | | Qdrant | 6333 | 443 | qdrant.momentry.ddns.net | | Caddy Admin | 2019 | 2019 | - | | Gitea | 3000 | 443 | gitea.momentry.ddns.net | | SFTPGo | 8080/2022 | 443 | sftpgo.momentry.ddns.net | | PHP-FPM | 9000 | - | - | | MongoDB | 27017 | 27017 | - | | RustDesk | 21115-21119 | 21115-21119 | - | --- ## 常見問題快速修復 ### 1. 服務無法啟動 ```bash # 1. 檢查進程 pgrep -a # 2. 檢查端口 lsof -i : # 3. 檢查日誌 tail -100 /Users/accusys/momentry/log/.error.log # 4. 重新載入 sudo launchctl unload /Library/LaunchDaemons/com.momentry..plist sudo launchctl load /Library/LaunchDaemons/com.momentry..plist ``` ### 2. 認證失敗 ```bash # 檢查用戶是否存在 psql -U -h localhost -d -c "SELECT 1" # 檢查密碼 # 參考各服務的 INSTALL_*.md 文檔 ``` ### 3. 效能問題 ```bash # 檢查系統資源 top -o cpu top -o mem # 檢查磁盤空間 df -h # 檢查網絡連線 netstat -an | grep ESTABLISHED ``` --- ## 監控腳本位置 - 健康檢查: `/Users/accusys/momentry_core_0.1/monitor/service/health_check.sh` - PostgreSQL: `/Users/accusys/momentry_core_0.1/monitor/database/postgres_monitor.sh` - Redis: `/Users/accusys/momentry_core_0.1/monitor/database/redis_monitor.sh` - Qdrant: `/Users/accusys/momentry_core_0.1/monitor/database/qdrant_monitor.sh` - MongoDB: `/Users/accusys/momentry_core_0.1/monitor/database/mongodb_monitor.sh` - n8n Workflow: `/Users/accusys/momentry_core_0.1/monitor/workflow/n8n_workflow_monitor.sh` --- ## 密碼參考 (請修改為真實密碼) | 服務 | 用戶 | 密碼 | |------|------|------| | PostgreSQL | accusys | (无密码) | | PostgreSQL | n8n | accusys | | Redis | - | accusys | | MariaDB | accusys | - | | n8n | - | (Web UI 配置) | | Qdrant | - | Test3200Test3200 | | MongoDB | accusys | Test3200Test3200 | --- ## 文檔位置 - 安裝文檔: `/Users/accusys/momentry_core_0.1/docs/INSTALL_*.md` - 服務管理: `/Users/accusys/momentry_core_0.1/docs/SERVICE_ADDITION_GUIDE.md` - Plist 模板: `/Users/accusys/momentry_core_0.1/momentry_runtime/plist/`