btpanel

👤 aapanel 📦 v1.0.3 ⭐ 4.5 ⬇️ 1.3K 下載
🔒 IT運維與安全 免費 🔑 需 API Key

📖 技能介紹


name: btpanel description: 寶塔面板(BT-Panel)運維監控技能,提供伺服器資源監控、網站狀態檢查、服務狀態檢查、SSH安全審計、計劃任務管理、日誌讀取等功能 user-invocable: true disable-model-invocation: false icon: icon/bt.png metadata: openclaw: requires: bins: - python3 keywords: - 寶塔面板 - BT-Panel - 面板 - 伺服器監控 - 系統資源 - CPU監控 - 記憶體監控 - 磁碟監控 - 網站狀態 - SSL證書 - 服務狀態 - 日誌讀取 - SSH - 計劃任務 - crontab - 備份任務


寶塔面板運維監控

寶塔面板伺服器的全方位運維監控工具,支援多伺服器管理、資源監控、網站狀態檢查、服務狀態檢查、SSH安全審計、計劃任務管理等功能。

寶塔面板

圖示資源

技能包提供以下圖示檔案,可在生成報告時引用:

檔案 格式 用途
icon/bt-logo.svg SVG 向量圖示,適合縮放

使用示例(生成報告時):

# 伺服器巡檢報告

## 概述
...

AI 使用約束

本技能用於查詢和展示伺服器狀態資料,AI應遵循以下原則:

  1. 資料中立:如實展示監控資料,不誇大或縮小問題嚴重性
  2. 客觀分析:基於閾值配置給出告警,避免主觀判斷
  3. 資料驅動:建議和結論應基於實際資料,不得臆測
  4. 隱私保護:不主動洩露伺服器敏感資訊(如IP、Token、域名)
  5. 執行前告知:由於介面資料較多,獲取和分析需要一定時間,AI應先向使用者簡述即將執行的操作步驟,然後再執行命令獲取資料

執行流程示例

AI: 我將為您執行以下操作:
    1. 獲取伺服器系統資源狀態(CPU、記憶體、磁碟)
    2. 檢查網站執行狀態
    3. 檢查服務執行狀態
    正在獲取資料,請稍候...
    [執行命令]
    [展示結果和分析]

寶塔面板相關技能矩陣

當前寶塔面板技能包,共包含 3 個相互關聯的技能:

技能名稱 描述 依賴關係
btpanel 運維監控技能 ✅ 基礎技能,主要用於資源監控、網站狀態檢查、服務狀態檢查等
btpanel-files 檔案管理技能 ✅ 提供遠端伺服器檔案輔助服務,可以讀取檔案列表和內容
btpanel-phpsite PHP 網站管理技能 ✅ 提供遠端伺服器 PHP 網站管理功能,能夠部署和管理php網站

伺服器配置管理

重要: 沒有伺服器資訊時需要新增

使用配置工具管理伺服器:

# 檢視幫助
python3 {baseDir}/scripts/bt-config.py -h

# 新增伺服器
python3 {baseDir}/scripts/bt-config.py add -n prod-01 -H https://panel.example.com:8888 -t YOUR_TOKEN

# 列出伺服器
python3 {baseDir}/scripts/bt-config.py list

# 設定閾值
python3 {baseDir}/scripts/bt-config.py threshold --cpu 75 --memory 80

常用場景

場景一:初次使用配置伺服器

當用戶第一次使用本技能時,需要先配置伺服器連線資訊:

# 新增伺服器(需要面板地址和API Token)
python3 {baseDir}/scripts/bt-config.py add -n prod-01 -H https://panel.example.com:8888 -t YOUR_API_TOKEN

# 檢視已配置的伺服器
python3 {baseDir}/scripts/bt-config.py list

獲取 API Token 的方法: 1. 登入寶塔面板 2. 進入「面板設定」->「API 介面」 3. 點選「獲取 API Token」

重要提示 - SSL 證書驗證配置: 新增伺服器時,AI 應詢問使用者:

"您的寶塔面板是否使用了受信任的 SSL 證書(如 Let's Encrypt、商業 CA 證書)?"

  • (受信任證書)→ 使用預設配置,無需額外引數
  • ⚠️ (自簽名證書)→ 新增 --verify-ssl false 引數

示例

# 自簽名證書場景
python3 {baseDir}/scripts/bt-config.py add -n prod-01 -H https://panel.example.com:8888 -t YOUR_TOKEN --verify-ssl false

# 受信任證書場景(預設)
python3 {baseDir}/scripts/bt-config.py add -n prod-01 -H https://panel.example.com:8888 -t YOUR_TOKEN

使用者意圖識別: - "幫我配置寶塔伺服器" → 引導使用者新增伺服器配置,先詢問 SSL 證書情況 - "新增一臺伺服器" → 執行 bt-config.py add,根據證書型別決定是否加 --verify-ssl 引數 - "檢視有哪些伺服器" → 執行 bt-config.py list

場景二:多伺服器資源彙總

當用戶需要了解所有伺服器的整體執行狀態時:

# 檢視所有伺服器的資源使用情況
python3 {baseDir}/scripts/monitor.py --format table

# 檢視所有伺服器的網站狀態彙總
python3 {baseDir}/scripts/sites.py

# 檢視所有伺服器的服務狀態
python3 {baseDir}/scripts/services.py

使用者意圖識別: - "伺服器整體情況怎麼樣" → 執行 monitor.py - "所有伺服器健康狀態" → 執行 monitor.py + sites.py - "多伺服器資源使用情況" → 執行 monitor.py --format table

場景三:單臺伺服器日常巡檢

當用戶需要對單臺伺服器進行全面檢查時:

# 指定伺服器名稱進行各項檢查
python3 {baseDir}/scripts/monitor.py --server prod-01 --format table
python3 {baseDir}/scripts/sites.py --server prod-01
python3 {baseDir}/scripts/services.py --server prod-01
python3 {baseDir}/scripts/ssh.py --status --server prod-01
python3 {baseDir}/scripts/crontab.py --backup-only --server prod-01

使用者意圖識別: - "檢查 prod-01 這臺伺服器" → 執行上述檢查命令 - "幫我日常巡檢" → 執行系統監控、網站狀態、服務狀態檢查 - "這臺伺服器有問題嗎" → 執行全面檢查並彙總告警

場景四:網站SSL證書檢查

當用戶關心SSL證書是否即將過期時:

# 檢視SSL即將過期的網站
python3 {baseDir}/scripts/sites.py --filter ssl-warning

# 檢視SSL已過期的網站
python3 {baseDir}/scripts/sites.py --filter ssl-expired

使用者意圖識別: - "SSL證書快過期了嗎" → 執行 sites.py --filter ssl-warning - "有哪些網站證書過期了" → 執行 sites.py --filter ssl-expired

場景五:安全審計

當用戶需要進行安全檢查時:

# 檢視SSH登入失敗記錄
python3 {baseDir}/scripts/ssh.py --logs --filter failed

# 搜尋特定IP的登入記錄
python3 {baseDir}/scripts/ssh.py --logs --search 192.168.1.100

# 檢視SSH服務狀態
python3 {baseDir}/scripts/ssh.py --status

使用者意圖識別: - "有沒有異常登入" → 執行 ssh.py --logs --filter failed - "查一下這個IP的登入記錄" → 執行 ssh.py --logs --search IP - "SSH安全檢查" → 執行 ssh.py --status 和 ssh.py --logs

場景六:服務故障排查

當某個服務出現問題時:

# 檢視服務狀態
python3 {baseDir}/scripts/services.py --server prod-01

# 檢視服務錯誤日誌
python3 {baseDir}/scripts/logs.py --server prod-01 --service nginx --lines 200
python3 {baseDir}/scripts/logs.py --server prod-01 --service redis

使用者意圖識別: - "Nginx/Apache/Redis出問題了" → 檢視服務狀態 + 檢視錯誤日誌 - "服務報錯了,幫我看看日誌" → 執行 logs.py 檢視對應服務日誌

場景七:備份任務檢查

當用戶關心備份是否正常時:

# 檢視所有備份任務
python3 {baseDir}/scripts/crontab.py --backup-only

# 檢視特定備份任務的執行日誌
python3 {baseDir}/scripts/crontab.py --logs --task-id 11

使用者意圖識別: - "備份任務正常嗎" → 執行 crontab.py --backup-only - "檢視備份日誌" → 執行 crontab.py --logs --task-id ID

版本要求

  • 寶塔面板: >= 9.0.0
  • Python: >= 3.10

用法

系統資源監控

# 檢視幫助
python3 {baseDir}/scripts/monitor.py -h

# 監控所有伺服器
python3 {baseDir}/scripts/monitor.py

# 監控指定伺服器
python3 {baseDir}/scripts/monitor.py --server prod-01

# JSON格式輸出
python3 {baseDir}/scripts/monitor.py --format json

# 表格格式輸出
python3 {baseDir}/scripts/monitor.py --format table

# 輸出到檔案
python3 {baseDir}/scripts/monitor.py --output report.json

網站狀態檢查

# 檢視幫助
python3 {baseDir}/scripts/sites.py -h

# 檢查所有伺服器的網站狀態
python3 {baseDir}/scripts/sites.py

# 檢查指定伺服器
python3 {baseDir}/scripts/sites.py --server prod-01

# 只顯示停止的網站
python3 {baseDir}/scripts/sites.py --filter stopped

# 只顯示SSL即將過期的網站(30天內)
python3 {baseDir}/scripts/sites.py --filter ssl-warning

# 只顯示SSL已過期的網站
python3 {baseDir}/scripts/sites.py --filter ssl-expired

# JSON格式輸出
python3 {baseDir}/scripts/sites.py --format json

# 輸出到檔案
python3 {baseDir}/scripts/sites.py --output sites.json

服務狀態檢查

# 檢視幫助
python3 {baseDir}/scripts/services.py -h

# 檢查所有伺服器的服務狀態
python3 {baseDir}/scripts/services.py

# 檢查指定伺服器
python3 {baseDir}/scripts/services.py --server prod-01

# 只檢查特定服務
python3 {baseDir}/scripts/services.py --service nginx --service redis

# JSON格式輸出
python3 {baseDir}/scripts/services.py --format json

# 輸出到檔案
python3 {baseDir}/scripts/services.py --output services.json

日誌讀取

# 檢視幫助
python3 {baseDir}/scripts/logs.py -h

# 檢視Nginx錯誤日誌
python3 {baseDir}/scripts/logs.py --service nginx

# 檢視Redis日誌
python3 {baseDir}/scripts/logs.py --service redis

# 檢視Apache錯誤日誌
python3 {baseDir}/scripts/logs.py --service apache

# 檢視MySQL錯誤日誌
python3 {baseDir}/scripts/logs.py --service mysql

# 檢視MySQL慢查詢日誌
python3 {baseDir}/scripts/logs.py --service mysql --log-type slow

# 檢視PostgreSQL日誌(需要外掛)
python3 {baseDir}/scripts/logs.py --service pgsql

# 檢視PostgreSQL慢日誌
python3 {baseDir}/scripts/logs.py --service pgsql --log-type slow

# 指定伺服器和行數
python3 {baseDir}/scripts/logs.py --server prod-01 --service nginx --lines 200

# JSON格式輸出
python3 {baseDir}/scripts/logs.py --service nginx --format json

SSH狀態和日誌檢查

# 檢視幫助
python3 {baseDir}/scripts/ssh.py -h

# 檢視SSH服務狀態
python3 {baseDir}/scripts/ssh.py --status

# 檢視SSH登入日誌
python3 {baseDir}/scripts/ssh.py --logs

# 只查看失敗的登入日誌
python3 {baseDir}/scripts/ssh.py --logs --filter failed

# 只查看成功的登入日誌
python3 {baseDir}/scripts/ssh.py --logs --filter success

# 搜尋特定IP的登入記錄
python3 {baseDir}/scripts/ssh.py --logs --search 192.168.1.1

# 指定伺服器
python3 {baseDir}/scripts/ssh.py --status --server prod-01

# JSON格式輸出
python3 {baseDir}/scripts/ssh.py --logs --format json

計劃任務檢查

# 檢視幫助
python3 {baseDir}/scripts/crontab.py -h

# 檢視所有計劃任務
python3 {baseDir}/scripts/crontab.py

# 只查看備份任務
python3 {baseDir}/scripts/crontab.py --backup-only

# 檢視指定伺服器
python3 {baseDir}/scripts/crontab.py --server prod-01

# 檢視備份任務日誌
python3 {baseDir}/scripts/crontab.py --logs --task-id 11

# JSON格式輸出
python3 {baseDir}/scripts/crontab.py --format json

引數說明

monitor.py 引數

引數 說明 預設值
--server, -s 指定伺服器名稱 所有伺服器
--format, -f 輸出格式 (json/table) json
--output, -o 輸出檔案路徑 標準輸出
--config, -c 配置檔案路徑 自動查詢

sites.py 引數

引數 說明 預設值
--server, -s 指定伺服器名稱 所有伺服器
--format, -f 輸出格式 (json/table) table
--output, -o 輸出檔案路徑 標準輸出
--filter 過濾條件 (stopped/ssl-warning/ssl-expired)
--config, -c 配置檔案路徑 自動查詢

services.py 引數

引數 說明 預設值
--server, -s 指定伺服器名稱 所有伺服器
--format, -f 輸出格式 (json/table) table
--output, -o 輸出檔案路徑 標準輸出
--service 指定要檢查的服務(可多次指定) 預設服務列表
--config, -c 配置檔案路徑 自動查詢

logs.py 引數

引數 說明 預設值
--server, -s 指定伺服器名稱 所有伺服器
--service 服務名稱 (nginx/apache/redis/mysql/pgsql) 必填
--log-type 日誌型別 (error/slow) error
--lines, -n 返回最後N行日誌 100
--format, -f 輸出格式 (json/table) table
--output, -o 輸出檔案路徑 標準輸出
--config, -c 配置檔案路徑 自動查詢

注意:只有已安裝的服務才能獲取日誌,嘗試獲取未安裝服務的日誌會返回錯誤。

ssh.py 引數

引數 說明 預設值
--server, -s 指定伺服器名稱 所有伺服器
--status 檢視SSH服務狀態
--logs 檢視SSH登入日誌
--filter 日誌過濾 (ALL/success/failed) ALL
--search 搜尋關鍵字(IP或使用者名稱)
--limit, -n 返回日誌條數 50
--format, -f 輸出格式 (json/table) table
--output, -o 輸出檔案路徑 標準輸出
--config, -c 配置檔案路徑 自動查詢

crontab.py 引數

引數 說明 預設值
--server, -s 指定伺服器名稱 所有伺服器
--backup-only 只顯示備份任務
--logs 檢視任務日誌
--task-id 任務ID(配合--logs使用)
--days 日誌查詢天數 7
--format, -f 輸出格式 (json/table) table
--output, -o 輸出檔案路徑 標準輸出
--config, -c 配置檔案路徑 自動查詢

監控指標

系統資源監控 (monitor.py)

通過單一API介面獲取完整的系統監控資料:

7w4.net小蔥技能站收錄全網優質技能,值得收藏。

  • CPU: 使用率、核心數、型號、使用者/系統佔用
  • 記憶體: 總量、使用量、可用量、快取、使用率
  • 磁碟: 多分割槽詳情、總量、使用量、使用率
  • 網路: 即時速度、總流量、各網絡卡統計
  • 負載: 1/5/15分鐘負載
  • 系統: 主機名、作業系統、執行時間、面板版本
  • 資源: 網站、資料庫、FTP賬戶數量

網站狀態檢查 (sites.py)

支援多種專案型別:

型別 程序資訊 執行狀態判斷
PHP status==1 && stop為空
Java pid_info pid > 0
Node load_info run==true
Go load_info run==true
Python pids run==true
.NET load_info run==true
Proxy(反代) status==1
HTML(靜態) status==1
Other(其他) load_info run==true

檢查專案: - 執行狀態: 執行中/已停止/啟動中 - SSL證書: 有效/即將過期/已過期 - 程序資訊: PID、記憶體、CPU、執行緒數(適用於Java/Node/Go/Python/.NET/Other) - 反代健康: 反代專案的後端健康狀態 - 基礎資訊: 路徑、域名、PHP版本、埠、代理地址

服務狀態檢查 (services.py)

支援檢查的服務:

服務 狀態檢查 日誌支援
Nginx ✓ 錯誤日誌
Apache ✓ 錯誤日誌
MySQL ✓ 錯誤日誌/慢日誌
Redis ✓ 日誌檔案
Memcached
Pure-FTPD
PHP (多版本)
PostgreSQL ✓ 錯誤日誌/慢日誌

服務狀態欄位說明

欄位 說明
installed (setup) 服務是否已安裝
status 服務是否正在執行
version 已安裝的版本號
pid 主程序ID(執行中時)

重要區別: - installed=false:服務未安裝,無法獲取日誌 - installed=true, status=false:服務已安裝但未執行 - installed=true, status=true:服務已安裝且正在執行

PHP多版本共存說明: - PHP是支援多版本共存的服務,一臺伺服器可能同時安裝多個PHP版本 - PHP服務名稱格式:php-X.X(如 php-8.2php-7.4) - 系統會自動掃描已安裝的PHP版本並分別顯示狀態 - 常見PHP版本:8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.4, 7.3, 7.2, 7.1, 7.0, 5.4, 5.3, 5.2

檢查專案: - 執行狀態: 執行中/已停止 - 版本資訊: 已安裝版本號 - 程序PID: 主程序ID

日誌讀取 (logs.py)

支援的日誌型別:

日誌型別 服務 獲取方式
錯誤日誌 nginx 檔案: /www/server/nginx/logs/error.log
錯誤日誌 apache 檔案: /www/wwwlogs/error_log
日誌檔案 redis 檔案: /www/server/redis/redis.log
錯誤日誌 mysql 介面: /database?action=GetErrorLog
慢日誌 mysql 介面: /database?action=GetSlowLogs
錯誤日誌 pgsql 外掛介面: pgsql_manager
慢日誌 pgsql 外掛介面: pgsql_manager

注意事項: - 只有已安裝(installed=true)的服務才能獲取日誌 - 嘗試獲取未安裝服務的日誌會返回錯誤 - Memcached 和 Pure-FTPD 不支援日誌獲取

SSH狀態和日誌檢查 (ssh.py)

檢查專案: - SSH服務狀態: 執行中/已停止 - : SSH監聽埠 - Ping設定: 是否允許ping - 防火牆狀態: 是否啟用 - Fail2ban: 是否安裝和執行

登入日誌欄位: - 時間: 登入時間 - 型別: 成功/失敗 - 使用者: 登入使用者名稱 - IP地址: 來源IP - 地區: IP歸屬地 - 登入方式: password/key

計劃任務檢查 (crontab.py)

任務型別: - 備份網站: 自動備份網站檔案和資料庫 - 備份資料庫: 單獨備份資料庫 - 備份目錄: 備份指定目錄 - Shell指令碼: 自定義Shell命令 - 同步時間: NTP時間同步 - 切割日誌: 日誌分割任務 - 訪問URL: 定時HTTP請求

檢查專案: - 任務狀態: 啟用/停用 - 執行週期: 每天/每小時/每週/每月/間隔分鐘 - 備份目標: 網站名稱/資料庫名稱 - 保留數量: 備份保留份數 - 執行結果: 最後一次執行狀態

告警配置

SSL證書告警

剩餘天數 告警級別
已過期 critical
≤ 7 天 critical
≤ 30 天 warning

伺服器資源告警閾值

可在配置檔案中設定告警閾值:

global:
  thresholds:
    cpu: 80      # CPU使用率告警閾值(%)
    memory: 85   # 記憶體使用率告警閾值(%)
    disk: 90     # 磁碟使用率告警閾值(%)

🤖 AI 評測

這個技能質量不錯,文件寫得很詳細,功能覆蓋了伺服器監控、網站狀態、SSL證書檢查等常用運維場景。配置管理清晰,支援多伺服器管理。不足之處是部分文件引用了不存在的圖示檔案,README太簡單缺少完整的使用說明。如果你需要管理寶塔面板伺服器,這個工具值得一試,但建議先仔細閱讀SKILL.md文件瞭解詳細用法。

📊 多維度評分

適應性4
規範性4.3
有效性4.6
可靠性4.5
可信度5

📁 包含檔案 (20 個)

📄 README.md 717 B
📄 SKILL.md 18.8 KB
📄 _meta.json 126 B
📄 bt_common/__init__.py 2.9 KB
📄 bt_common/api_endpoints.py 6.8 KB
📄 bt_common/bt_client.py 20.1 KB
📄 bt_common/config.py 13.7 KB
📄 bt_common/files_client.py 10.8 KB
📄 bt_common/scripts/bt-config.py 12.8 KB
📄 bt_common/scripts/check_env.py 12.9 KB
📄 bt_common/utils.py 33.1 KB
📄 icon/bt-logo.svg 2.9 KB
📄 scripts/bt-config.py 12.8 KB
📄 scripts/check_env.py 12.9 KB
📄 scripts/crontab.py 19.3 KB
📄 scripts/logs.py 12.8 KB
📄 scripts/monitor.py 11.5 KB
📄 scripts/services.py 12.9 KB
📄 scripts/sites.py 13.2 KB
📄 scripts/ssh.py 21.2 KB