Nomos-J

Visibility & Inventory for JDK Deployments

持續盤點 Linux / Windows / Docker images 中的 Java Runtime 部署狀態,協助組織建立清晰、可追蹤、可治理的 Java 使用全貌。

Nomos-J 是一套專注於 JDK 版本盤點與可視化管理 的系統,協助組織持續掌握 Linux、Windows 與 Docker 環境中的 JDK 部署狀態,建立清楚、可追蹤、可治理的 Java Runtime 使用全貌。

為什麼需要 Nomos-J

在多系統、多團隊、多映像檔並行的環境中,JDK 往往隨著專案、套件或映像檔自然擴散,但實際使用狀態卻逐漸失去可見性。

Nomos-J 的目的不是干預系統運作,而是讓組織清楚知道目前實際部署了哪些 JDK、分布在哪裡、版本為何,
為後續的技術治理與決策提供可靠依據。

核心功能
1. 跨平台 JDK 盤點
  • 掃描 Linux 系統中的 JDK 安裝位置與版本
  • 掃描 Windows 系統中的 JDK 部署狀態
  • 分析 Docker images / containers 中包含的 JDK
2. JDK 版本與來源辨識
  • 辨識不同 JDK 發行來源
  • 彙整版本資訊與安裝路徑
  • 建立清晰的 JDK 使用清單
3. 定期掃描與變化追蹤
  • 支援排程掃描(每日/每週/每月)
  • 追蹤 JDK 新增、移除與版本變更
  • 建立歷史紀錄,支援回溯檢視
4. 報告與盤點輸出
  • 全域 JDK 分布總覽
  • 依主機、系統、映像檔分類的詳細清單
  • 可匯出結果供內部管理與審核使用
適用對象
IT / DevOps 團隊
  • 快速掌握跨環境的 JDK 使用現況
  • 降低環境差異帶來的管理不確定性
Platform / Architecture 團隊
  • 作為 JDK 標準化與版本治理的基礎資料來源
  • 支援技術選型與替換規劃
Security / Governance 團隊
  • 建立可盤點、可追蹤的 Java Runtime 使用清冊
  • 支援內部政策與治理流程
運作流程
  1. 定義掃描範圍(主機、系統群組、Docker 映像檔)
  2. 執行 JDK 掃描與版本辨識
  3. 彙整結果並建立可視化清單
  4. 持續追蹤變化,支援治理與決策
  • 作為 JDK 標準化與版本治理的基礎資料來源
  • 支援技術選型與替換規劃

功能詳細規格

1 儀表板(Dashboard)

以時間區間為基礎,呈現整體 JDK 使用與合規風險現況。

  • 區間篩選:可自訂開始/結束日期,並提供「最近七天」快速篩選。
  • 關鍵指標(KPI):
    • 區間內回報資產數
    • 區間內完整掃描主機數
    • 區間內未完成掃描主機數
    • 區間內 JDK 風險資產數
    • 區間內高風險資產數(High / Critical)
    • 區間內待處理命令數
  • JDK 版本分布圖:依各主機最新回報統計 JDK 版本分布。
  • 最新回報主機:列出區間內最新 10 筆回報主機摘要。
2 機器管理(Machine Inventory)

集中管理所有受管主機與其掃描結果。

  • 主機盤點:列出所有回報主機,含掃描狀態、JDK 風險、作業系統等資訊,支援搜尋與篩選。
  • 單機詳情:檢視單一主機的 Java 安裝、已安裝應用程式、掃描狀態與使用關聯。
  • 匯出(XLSX):將主機清單匯出為 Excel。
  • 離線掃描匯入:匯入離線掃描產生的 JSON / ZIP 報告。
    • 支援多層目錄及最多 3 層巢狀 ZIP。
    • 依 report ID 或 canonical content SHA-256 略過重複報告。
    • 完整性校驗不符的報告可於 30 分鐘內整批覆核匯入,並保留稽核註記。
  • 命令派送:對單一主機派送清除命令(dispatch-clear)、重設最後掃描、強制重新掃描。
  • 大量刪除:批次刪除主機紀錄。
  • 已安裝應用程式匯出:匯出主機已安裝軟體清單。
3 JDK 授權管理(JDK Authorization)

管理 Oracle JDK 軟體的授權紀錄,並判定合規狀態。

  • 授權紀錄:保存軟體名稱、精確/前綴比對、授權編號、有效期間與備註。
  • 授權判定(Agent 或離線掃描找到的 Java 路徑使用關聯):
    • 一套 Oracle JDK 的所有已辨識使用者均有有效授權 → 已授權使用。
    • 任一使用者未授權或授權過期 → 待處理。
    • 無可靠使用關聯 → 用途待確認(仍計入待處理)。
  • 立即套用:授權清單異動即時反映既有結果,不需重新掃描。
  • 停用授權:可停用既有授權紀錄。
4 Docker / Harbor

盤點容器環境中的 image 及其潛在 JDK 授權風險(功能開關預設啟用)。

  • Image 摘要:列出掃描到的 Docker/Harbor image 的 repository、image、tag、vendor、version 與 risk。
  • 風險分級:High / Medium / Low / None / Unknown。
  • 篩選與搜尋:依關鍵字與風險等級過濾。
  • 匯出(XLSX):匯出 image 摘要報告。
5 命令下發(Command Dispatch)

對受管主機下發命令,並提供 Agent 及離線工具的取得方式。

  • Agent 下載區:
    • Windows .exe
    • Linux x64 .tar.gz
    • macOS Intel .tar.gz
  • 內嵌設定:下載檔內嵌 Backend API URL、Shared Agent Token、HMAC secret、TLS mode、server name、state path。
  • 離線掃描 script 下載:Windows PowerShell/Linux shell/macOS shell 三種明碼 scanner。
  • 安裝腳本:提供 Linux .sh 安裝腳本下載。
  • 強制重建:觸發 go-builder 重新產出 Agent 下載檔(含 manifest.json)。
6 離線掃描(Offline Scan)

適用於無法連回後台的受掃主機。

  • 明碼 script(一次性 Java 稽核,預設不連線、不安裝 service):
    • Windows PowerShell:nomos-offline-java-scan-windows.ps1
    • Linux shell:nomos-offline-java-scan-linux.sh
    • macOS shell:nomos-offline-java-scan-macos.sh
  • 輸出格式:預設產出 nomos-offline-java-<hostname>-<UTC>.zip,內含完整 JSON。
  • UNC 設定檔產生器(Windows,純前端):產生 nomos-offline-unc.conf,報告經暫時性 SMB PSDrive 發布至共享目錄。
  • 匯入限制:外層合計最大 50 MB、全部 ZIP 層級最多 500 entries、最多 500 份 JSON(合計 250 MB)、單份 JSON 最大 5 MB。
  • Schema:nomos-j.offline-java-scan/v2(相容 v1),另含程序、服務、排程、啟動設定與 Java 路徑使用關聯。
7 回報紀錄(Agent Logs)
  • 查詢 Agent 掃描回報紀錄。
  • 匯出(XLSX)。
8 系統日誌(System Logs)
  • 檢視系統層級日誌(操作、稽核等)。
  • 匯出(XLSX)。
9 帳號管理(Users)
  • 新增使用者帳號。
  • 刪除使用者帳號。
10 系統設定(Settings)

系統設定包含四個子頁面:

  • 組態設定:
    • Database 連線設定
    • Mail 設定
    • Agent 下載與報到設定(heartbeat 週期、完整掃描週期、掃描進度回報間隔)
  • 規則設定(patterns.json):Oracle JDK 判定關鍵字、排除廠牌、Windows Registry 掃描路徑、檔案系統與安裝檔判定規則、Linux RPM/DPKG/APK Java 套件清單、Docker vendor 規則、Dashboard vendor/version 規則等。
  • 功能設定:全域功能開關(如 filesystem scan-index cache 的啟用與 TTL 1–30 天)。
11 備份與還原(Backup / Restore)
  • 資料庫備份與還原管理。
  • 記錄還原請求與狀態。


常見問題

1. JDK 移除/卸載狀態如何確認?

Nomos-J 提供 定期性的 JDK 版本盤點機制,透過掃描系統與映像檔中的實際檔案與執行環境,協助組織確認目前環境中 是否仍存在 JDK 安裝實例。

系統會保留每次掃描結果作為歷史紀錄,以利後續進行狀態比對與管理確認。

在完成盤點並釐清現況後,組織可依自身技術政策與既有流程,採用適當的方式進行 JDK 移除、替換或版本更新作業。

Nomos-J 可配合既有的系統管理機制,並支援與 第三方平台與發行版本生態系 的治理規劃。

例如透過 Red Hat Ansible Automation Platform 相關方案進行後續的 Java Runtime 管理與部署,協助組織在清楚掌握現況的前提下,推動一致化與標準化的技術策略。

2. 如何評估「未發現 JDK 安裝實例」的判斷依據?

在判定環境中未發現 JDK 安裝實例之前,Nomos-J 會執行 全面性的環境盤點流程,包含:

  • 作業系統層級的檔案與路徑掃描
  • 已知 JDK 安裝位置與常見部署模式辨識
  • Docker image 與容器層級的內容分析

此流程旨在提供 完整的可見性基礎,而非僅依賴單一設定來源或系統清單。

3. 盤點評估何時完成?是否可追溯?

Nomos-J 的掃描結果皆具備 時間戳記與歷史記錄,可清楚顯示每一次盤點執行的時間與結果狀態。

組織可依需求設定定期盤點週期,並回溯特定時間點的 JDK 使用狀況作為內部管理依據。

4. 是否僅依賴系統註冊資訊進行搜尋?

否。Nomos-J 的盤點方式 不限於 Windows 註冊表或 Linux 套件管理器。

系統會同時針對:

  • 檔案系統(資料夾/目錄)
  • 映像檔層級內容
  • 常見 JDK 佈署結構

進行掃描與辨識,以提升盤點結果的完整性與可信度。

5. Nomos-J 會修改系統設定嗎?

不會。Nomos-J 以盤點與識別為主,不會對系統進行任何修改。

6. 是否支援內網或離線環境?

可以。Nomos-J 可部署於企業內部環境,掃描與資料皆可於內部運行。同時也支援離線環境,可以下載 Script 後再把檔案匯入回系統即可。

7. 是否只支援 JDK?

目前核心功能專注於 JDK 版本盤點,架構設計可延伸至其他 Runtime 或套件。