{"repo":"a-lang/f2b-dashboard","free":true,"listed":false,"github":"https://github.com/a-lang/f2b-dashboard","clone":"git clone https://github.com/a-lang/f2b-dashboard.git","description":"Fail2ban Live Dashboard","language":"JavaScript","stars":18,"topics":["dashboard","fail2ban","security"],"license":null,"category":"dashboards-admin","readme_excerpt":"🌐 English 繁體中文 Fail2Ban 即時儀表板 輕量級、零後端的 Fail2Ban 攻擊情報儀表板。以 Bash 腳本、Cron 排程及靜態 HTML/JavaScript 前端建構。將本機 fail2ban.log 日誌解析為聚合 JSON 資料，並以互動式圖表即時視覺化呈現。 🏗️ 概覽 Fail2Ban 即時儀表板將原始 Fail2Ban 日誌轉化為可操作的洞察資訊，無需後端伺服器、Node.js 執行環境或資料庫。架構設計刻意保持簡單： - Bash 腳本 負責解析與聚合日誌資料 - Cron 排程定期更新資料集 - 靜態 HTML/JS 在任意現代瀏覽器中渲染儀表板 - ECharts 驅動所有視覺化圖表（從 CDN 載入） 這使得儀表板可在任何 Linux 發行版上輕鬆部署，且依賴極少。 ✨ 功能特色 儀表板區塊 1. 統計卡片 — 一目了然的關鍵指標：總攻擊次數、活躍封禁數、不重複 IP 數、活躍 Jail 數 2. 攻擊時間軸 — 平滑面積圖呈現攻擊頻率隨時間變化，支援依 Jail 別分類 3. 攻擊趨勢 — 堆疊長條圖搭配 7 日移動平均線 4. 世界地圖 — 分級設色地圖 + IP 層級攻擊弧線，視覺化 Top 20 攻擊 IP 飛向本機伺服器的流向 5. 攻擊 IP 排行 — 排名表格，含地理位置、Jail 歸屬及封禁狀態 6. Jail 統計 — 圓餅圖呈現各 Jail 攻擊佔比 7. 攻擊熱力圖 — 小時 × 星期矩陣，揭示攻擊時間模式 8. 近期日誌 — 最近 100 筆日誌，支援基本文字篩選 9. 各 Jail 報告 — 每個 Jail 的詳細分析，可摺疊展開 其他能力 - 雙語介面 — 英文與繁體中文，涵蓋所有標籤、提示及訊息 - 深色/淺色主題 — 一鍵切換，狀態持久保存於 localStorage - 可設定自動刷新 — 提供 1 分鐘、5 分鐘、10 分鐘或關閉等選項 - 時間範圍選擇器 — 篩選攻擊時間線與攻擊趨勢：最近 24 小時、最近 7 天、或全部時間 - 行動裝置響應式設計 — 手機單欄佈局，平板與桌面多欄格線佈局 - 穩健錯誤處理 — 當資料缺失、損毀或仍在載入時，提供從容的退回狀態 畫面截圖 📋 系統需求 - Bash 4+ - curl - awk （gawk 或 mawk） - jq - 網頁伺服器以提供靜態檔案（nginx、apache2、Caddy 或 python3 -m http.server ） 支援的發行版：Debian/Ubuntu、CentOS/RHEL、Alpine、Arch。 🚀 安裝 初始設定 安裝完成後，以任意網頁伺服器提供 /opt/f2b-dashboard/dashboard/ 目錄，並在瀏覽器中開啟儀表板。 🔄 更新 若需更新 cron 排程，重新執行安裝步驟中的 cron 安裝命令即可。更新後在瀏覽器中以 Ctrl+F5 （或 Shift+Reload ）強制重新整理以清除快取，即可看到新功能。 📖 使用方式 解析日誌 參數 說明 預設值 ------ ------ -------- LOG PATH fail2ban.log 路徑 /var/log/fail2ban.log OUTPUT DIR dashboard.json 輸出目錄 dashboard/data 選項 說明 ------ ------ -h , --help 顯示求助訊息 讀取 Fail2Ban 日誌檔（含輪替日誌 .1 、 .2 等）並輸出 dashboard.","default_branch":null,"files":null,"tree":[],"storefront":"/r/a-lang","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/a-lang/f2b-dashboard/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}