操作控制面板 operations-dashboard
簡介 introduction
AEM 6中的操作儀表板可協助系統操作員快速監視AEM系統健康狀況。 此外,還能提供AEM相關方面自動產生的診斷資訊,並讓您設定和執行完整的維護自動化,大幅減少專案操作和支援案例。 操作控制面板可以透過自訂健康情況檢查和維護任務進行擴展。 此外,您也可透過JMX從外部監視工具存取操作控制面板資料。
操作儀表板:
- 是一鍵式系統狀態,可協助營運部門提高效率
- 在單一集中位置提供系統健康概觀
- 縮短尋找、分析和修正問題的時間
- 提供獨立的維護自動化,協助大幅降低專案營運成本
您可以從AEM歡迎畫面移至 工具 - 作業 來存取它。
健全狀態報表 health-reports
健康狀態報告系統透過Sling健康狀態檢查提供AEM執行個體的健康狀態資訊。 您可以透過OSGI、JMX、HTTP請求(透過JSON)或透過Touch UI完成此操作。 它提供某些可設定計數器的測量值和臨界值,有時也提供如何解決問題的資訊。
它有幾項功能,如下所述。
健康狀態檢查 health-checks
健康情況報告 是指示特定產品區域健康情況良好或不良的卡片系統。 這些卡片是Sling健康情況檢查的視覺效果,其會彙總來自JMX和其他來源的資料,並再次以MBean公開處理的資訊。 也可以在 org.apache.sling.healthcheck 網域下的JMX Web主控台中檢查這些MBean。
您可以透過AEM歡迎畫面上的 工具 - 作業 - 健康狀態報告 功能表,或直接透過下列URL存取健康狀態報告介面:
https://<serveraddress>:port/libs/granite/operations/content/healthreports/healthreportlist.html
卡片系統可能會顯示三種狀態: 正常、警告 和 嚴重。 狀態是規則和臨界值的結果,您可以將滑鼠移至卡片上,然後按一下動作列中的齒輪圖示即可設定這些規則和臨界值:
健康情況檢查型別 health-check-types
AEM 6中有兩種健康狀態檢查型別:
- 個別健康情況檢查
- 複合健康狀態檢查
個人健康情況檢查 是與狀態卡相對應的單一健康情況檢查。 個別健康情況檢查可以使用規則或臨界值來設定,而且它們可以提供一或多個提示和連結來解決已識別的健康情況問題。 以「記錄錯誤」檢查為例:如果執行個體記錄中存在ERROR專案,請在健康狀態檢查的詳細資訊頁面中找到。 在頁面頂端,您可以在診斷工具區段中看到「記錄訊息」分析器的連結,讓您更詳細地分析這些錯誤,並重新設定記錄器。
複合健康狀態檢查 是彙總來自數個個別檢查的資訊的檢查。
複合健康情況檢查是以 篩選標籤 的輔助設定的。 本質上,具有相同篩選器標籤的所有單一檢查都會分組為複合健康狀態檢查。 只有當所有要彙總的單一檢查的狀態都為OK時,複合健康狀態檢查的狀態才會為OK。
如何建立健康情況檢查 how-to-create-health-checks
在「操作控制面板」中,您可以顯示個別和複合健康情況檢查的結果。
建立個人健康狀態檢查 creating-an-individual-health-check
建立個別健康情況檢查涉及兩個步驟:實作Sling健康情況檢查和在控制面板的設定節點中新增健康情況檢查專案。
-
若要建立Sling健康情況檢查,請建立實作Sling健康情況檢查介面的OSGI元件。 將此元件新增至套件組合中。 元件的屬性可完整識別健康狀態檢查。 安裝元件後,系統會自動建立JMX MBean以進行健康狀態檢查。 如需詳細資訊,請參閱Sling健康情況檢查檔案。
使用OSGI服務元件附註編寫的Sling健康情況檢查元件範例:
code language-java @Component(service = HealthCheck.class, property = { HealthCheck.NAME + "=Example Check", HealthCheck.TAGS + "=example", HealthCheck.TAGS + "=test", HealthCheck.MBEAN_NAME + "=exampleHealthCheckMBean" }) public class ExampleHealthCheck implements HealthCheck { @Override public Result execute() { // health check code } }
note note NOTE MBEAN_NAME
屬性定義為此健康狀態檢查產生的mbean的名稱。 -
建立健康狀態檢查之後,必須建立新的設定節點,才能在操作儀表板介面中存取它。 對於此步驟,必須知道健康狀態檢查的JMX Mbean名稱(
MBEAN_NAME
屬性)。 若要建立健康狀態檢查的設定,請開啟CRXDE並在以下路徑下新增節點(型別為 nt:unstructured):/apps/settings/granite/operations/hc
應在新節點上設定下列屬性:
-
名稱:
sling:resourceType
- 型別:
String
- 值:
granite/operations/components/mbean
- 型別:
-
名稱:
resource
- 型別:
String
- 值:
/system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/exampleHealthCheck
- 型別:
note note NOTE 以上資源路徑的建立方式如下:如果健康狀態檢查的mbean名稱為「test」,請將「test」新增至路徑 /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck
的結尾所以最終路徑如下: /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/test
note note NOTE 請確定 /apps/settings/granite/operations/hc
路徑具有下列設定為true的屬性:sling:configCollectionInherit
sling:configPropertyInherit
此程式會告知設定管理員將新設定與來自 /libs
的現有設定合併。 -
建立複合健康狀態檢查 creating-a-composite-health-check
複合健康狀態檢查的作用是彙總共用一組通用功能的數個個別健康狀態檢查。 例如,「安全性複合健康情況檢查」會將執行安全性相關驗證的所有個別健康情況檢查分組。 建立複合檢查的第一步是新增OSGI設定。 若要將其顯示在操作儀表板中,必須以簡單檢查相同的方式新增新的配置節點。
-
前往OSGI主控台中的Web Configuration Manager。 存取
https://serveraddress:port/system/console/configMgr
-
搜尋名為 Apache Sling複合健康狀態檢查 的專案。 找到之後,請注意已有兩個組態可供使用:一個用於「系統檢查」,另一個用於「安全性檢查」。
-
按組態右側的「+」按鈕來建立組態。 新視窗隨即顯示,如下所示:
-
建立設定並儲存。 Mbean會以新組態建立。
每個設定屬性的用途如下:
- 名稱(hc.name): 複合健康狀態檢查的名稱。 建議使用有意義的名稱。
- 標籤(hc.tags): 此健康狀態檢查的標籤。 如果此複合健康狀態檢查要成為另一個複合健康狀態檢查(例如在健康狀態檢查的階層中)的一部分,請新增此複合相關的標籤。
- MBean名稱(hc.mbean.name): 為此複合健康狀態檢查的JMX MBean指定的Mbean名稱。
- 篩選標籤(filter.tags): 複合健康狀態檢查特有的屬性。 這些標籤會由複合專案彙總。 複合健康狀態檢查會在其群組下彙總所有具有符合此複合之任何篩選標籤的健康狀態檢查。 例如,包含篩選器標籤 test 和 check 的複合健康狀態檢查,會彙總其標籤屬性(
hc.tags
)中具有任何 test 和 check 標籤的所有個別和複合健康狀態檢查。
note note NOTE 系統會為Apache Sling複合健康狀態檢查的每個新設定建立新的JMX Mbean。** -
最後,已建立的複合健康狀態檢查專案必須新增至「操作控制面板」組態節點。 程式與個別健康情況檢查的程式相同:必須在
/apps/settings/granite/operations/hc
下建立型別 nt:unstructured 的節點。 節點的資源屬性是由OSGI組態中的 hc.mean.name 值所定義。例如,如果您建立了組態並將 hc.mbean.name 值設為 diskusage,組態節點會如下所示:
-
名稱:
Composite Health Check
- 型別:
nt:unstructured
- 型別:
具有以下屬性:
-
名稱:
sling:resourceType
- 型別:
String
- 值:
granite/operations/components/mbean
- 型別:
-
名稱:
resource
- 型別:
String
- 值:
/system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/diskusage
- 型別:
note note NOTE 如果您建立邏輯上屬於複合檢查的個別健康情況檢查(預設情況下已存在於儀表板中),則會自動擷取這些檢查,並將其分組在個別複合檢查下。 因此,不需要為這些檢查建立設定節點。 例如,如果您建立個別安全性健康情況檢查,請為其指派"安全性"標籤,然後安裝該標籤。 它會自動顯示在「操作圖示板」的「安全性檢查」複合檢查下。 -
AEM提供的健康情況檢查 health-checks-provided-with-aem
健康狀態檢查設定 health-check-configuration
根據預設,對於現成可用的AEM執行個體,健康情況檢查每60秒執行一次。
您可以使用OSGi組態 查詢健康狀態檢查組態 (com.adobe.granite.queries.impl.hc.QueryHealthCheckMetrics)來設定 期間。
使用外部服務進行監視 monitoring-with-external-services
可與外部技術或廠商整合。 如需相關詳細資訊,請參閱其檔案。
診斷工具 diagnosis-tools
「操作控制面板」也提供診斷工具的存取權,這些工具可協助尋找和疑難排解健康情況檢查控制面板所產生警告的根本原因,並提供系統操作員的重要除錯資訊。
其最重要的功能包括:
- 記錄訊息分析器
- 存取棧積和執行緒傾印的功能
- 請求和查詢效能分析器
您可以從AEM歡迎畫面前往 工具 — 作業 — 診斷,來存取診斷工具畫面。 您也可以直接存取下列URL來存取熒幕: https://serveraddress:port/libs/granite/operations/content/diagnosis.html
記錄訊息 log-messages
記錄訊息使用者介面預設會顯示所有ERROR訊息。 如果您想要顯示更多日誌訊息,請以適當的日誌層級設定日誌程式。
記錄訊息使用記憶體中的記錄附加器,因此與記錄檔無關。 另一個後果是變更此UI中的記錄層級不會變更記錄到傳統記錄檔案中的資訊。 在此UI中新增和移除記錄器只會影響記憶體記錄器。 此外,變更記錄器設定會反映在記憶體記錄器的未來。 已記錄且不再相關的專案不會刪除,但日後不會再記錄類似的專案。
您可以從UI的左上角齒輪按鈕提供記錄器設定,以設定要記錄的內容。 在那裡,您可以新增、移除或更新記錄器設定。 記錄器設定是由 記錄層級 (WARN / INFO / DEBUG)和 篩選器名稱 所組成。 篩選器名稱 具有篩選記錄日誌訊息來源的角色。 或者,如果記錄器應該擷取指定層級的所有記錄訊息,則篩選器名稱應該是"root"。 設定記錄器的層級,會觸發擷取層級等於或高於指定層級的所有訊息。
範例:
-
如果您計畫擷取所有 ERROR 訊息 — 不需要設定。 預設會擷取所有ERROR訊息。
-
如果您計畫擷取所有 ERROR、WARN 和 INFO 訊息 — 記錄器名稱應設為: "root",記錄器層級應設為: INFO。
-
如果您打算擷取來自特定套件(例如com.adobe.granite)的所有訊息,記錄器名稱應設為: "com.adobe.granite"。 而且,記錄器層級設定為: DEBUG (如此會擷取所有 ERROR、WARN、INFO 和 DEBUG 訊息),如下圖所示。
Log level: INFO
DATE+TIME [MaintanceLogger] Name=<MT_NAME>, Status=<MT_STATUS>, Time=<MT_TIME>, Error=<MT_ERROR>, Details=<MT_DETAILS>
要求效能 request-performance
「要求效能」頁面可讓您分析處理的最慢的頁面要求。 此頁面上只會註冊內容要求。 更具體來說,會擷取下列請求:
- 要求存取
/content
下的資源 - 要求存取
/etc/design
下的資源 - 具有
".html"
副檔名的請求
頁面隨即顯示:
- 提出要求的時間
- URL和要求方法
- 持續時間(毫秒)
依預設,會擷取最慢的20個頁面請求,但可以在Configuration Manager中修改限制。
查詢效能 query-performance
「查詢效能」頁面可讓您分析系統執行的最慢查詢。 此資訊由JMX Mbean中的存放庫提供。 在Jackrabbit中,com.adobe.granite.QueryStat
JMX Mbean會提供此資訊,而在Oak存放庫中,org.apache.jackrabbit.oak.QueryStats.
會提供此資訊
頁面隨即顯示:
- 進行查詢的時間
- 查詢的語言
- 查詢的發出次數
- 查詢的陳述式
- 持續時間(毫秒)
說明查詢 explain-query
對於任何指定的查詢,Oak會嘗試根據 oak:index 節點下儲存庫中定義的Oak索引,找出最佳執行方式。 Oak可能會根據查詢選擇不同的索引。 瞭解Oak如何執行查詢是最佳化查詢的第一步。
「說明查詢」工具可說明Oak如何執行查詢。 您可以從AEM歡迎畫面前往 工具 — 作業 — 診斷 來存取它。 然後,按一下 查詢效能 並切換到 說明查詢 索引標籤。
功能
- 支援Xpath、JCR-SQL和JCR-SQL2查詢語言
- 報告所提供查詢的實際執行時間
- 偵測緩慢的查詢,並就可能緩慢的查詢發出警告
- 報告用於執行查詢的Oak索引
- 顯示實際的Oak查詢引擎說明
- 提供慢速和熱門查詢的點按載入清單
進入Explain查詢UI之後,輸入查詢,然後按 Explain 按鈕:
「查詢說明」區段中的第一個專案是實際說明。 說明會顯示用來執行查詢的索引型別。
第二個專案是執行計畫。
在執行查詢前勾選 包含執行時間 方塊,也會顯示查詢的執行時間。 包含節點計數 選項會報告節點計數。 該報告會提供詳細資訊,可用於為您的應用程式或部署最佳化索引。
索引管理員 the-index-manager
Index Manager的目的是方便索引管理,例如維護索引或檢視其狀態。
您可以從[歡迎畫面]前往 工具 — 作業 — 診斷,然後按一下 索引管理員 按鈕來存取它。
也可以直接在此URL存取: https://serveraddress:port/libs/granite/operations/content/diagnosistools/indexManager.html
UI可用來篩選表格中的索引,方法是在畫面左上角的搜尋方塊中輸入篩選條件。
下載狀態ZIP download-status-zip
這個動作會觸發下載壓縮檔,其中包含有關系統狀態和設定的實用資訊。 封存包含執行個體設定、套件組合清單、OSGI、Sling量度和統計資料,可能會產生大型檔案。 您可以使用 下載狀態ZIP 視窗來減少大型狀態檔案的影響。 視窗可從下列位置存取: AEM >工具>作業>診斷>下載狀態ZIP。
在此視窗中,您可以選取要匯出的專案(記錄檔和/或對話串傾印),以及相對於目前日期包含在下載中的記錄天數。
下載執行緒傾印 download-thread-dump
此動作會觸發下載zip ,其中包含系統中存在的對話串的相關資訊。 會提供每個執行緒的相關資訊,例如其狀態、類別載入器以及棧疊追蹤。
下載棧積傾印 download-heap-dump
您可以下載棧積的快照以便稍後分析。 此動作會觸發下載大型(數百MB)檔案。
自動維護任務 automated-maintenance-tasks
「自動維護任務」頁面可供您檢視及追蹤排定定期執行的建議維護任務。 這些工作已與「健康情況檢查」系統整合。 任務也可以從介面手動執行。
若要進入操作控制面板中的維護頁面,請從AEM歡迎畫面前往 工具 — 操作 — 控制面板 — 維護,或直接關注此連結:
https://serveraddress:port/libs/granite/operations/content/maintenance.html
「操作儀表板」中有以下工作:
- 修訂清理 工作,位於 每日維護視窗 功能表下方。
- Lucene二進位清理 工作,位於 每日維護期間 功能表下方。
- 工作流程清除 工作,位於 每週維護期間 功能表下方。
- 資料存放區記憶體回收 工作,位於 每週維護期間 功能表下方。
- 稽核記錄維護 工作,位於 每週維護期間 功能表下方。
- 版本清除維護 工作,位於 每週維護期間 功能表下方。
- 專案清除 維護任務,位於 每週維護期間 功能表下;使用 新增 選項。
- 清除臨機任務 維護任務,位於 每週維護期間 功能表下;使用 新增 選項。
每日維護期間的預設時間為凌晨2:00至下午5:00。設定在每週維護期間執行的工作,會在星期六上午1:00到凌晨2:00之間執行。
您也可以按兩個維護卡片上的齒輪圖示來設定計時:
修訂清理 revision-clean-up
如需詳細資訊,請參閱修訂清除。
Lucene 二進位清理 lucene-binaries-cleanup
使用Lucene二進位檔案清理工作,您可以清除Lucene二進位檔案並降低執行中的資料存放區大小要求。 Lucene的二進位流失率會每天回收,而非先前相依於成功的資料存放區記憶體回收執行。
雖然開發維護任務是為了減少與Lucene相關的修訂垃圾,但在執行任務時普遍提高了效率:
- 每週執行資料存放區記憶體回收工作可以更快完成。
- 它也可能稍微改善整體AEM效能。
您可以從 AEM >工具>作業>維護>每日維護視窗> Lucene二進位檔案清理 存取Lucene二進位檔案清理任務。
資料存放庫廢棄項目收集 data-store-garbage-collection
如需資料存放區記憶體回收的詳細資訊,請參閱專用的資料存放區記憶體回收檔案頁面。
工作流程清除 workflow-purge
您也可以從維護控制面板中清除工作流程。 若要執行「工作流程永久刪除」作業,請執行下列步驟:
- 按一下 每週維護期間 頁面。
- 在下列頁面中,按一下 工作流程清除 卡片中的 播放。
稽核記錄維護 audit-log-maintenance
如需稽核記錄維護,請參閱個別檔案頁面。
版本清除 version-purge
您可以排定「版本永久刪除」維護作業,以自動刪除舊版本。 此動作將手動使用版本清除工具的需求降到最低。 您可以存取 工具>作業>維護>每週維護視窗 並依照下列步驟來排程及設定「版本清除」工作:
-
按一下 新增。
-
從下拉式功能表中選擇 版本清除。
-
若要設定「版本清除」工作,請按一下新建立之「版本清除」維護卡上的 齒輪 圖示。
使用AEM 6.4 時,您可以依照以下步驟停止「版本清除」維護工作:
- 自動 — 如果排程的維護視窗在任務完成之前關閉,任務會自動停止。 當下一個維護視窗開啟時,它會繼續。
- 手動 — 若要手動停止工作,請在[版本清除]維護卡上,按一下[停止] 圖示。 在下次執行時,工作將會安全地繼續。
專案清除 project-purge
在 Adobe專案清除設定 (com.adobe.cq.projects.purge.Scheduler)下設定OSGI屬性。
清除臨機任務 purge-of-ad-hoc-tasks
設定 臨機工作清除 (com.adobe.granite.taskmanagement.impl.purge.TaskPurgeMaintenanceTask
)下的OSGI屬性。
自訂維護任務 custom-maintenance-tasks
自訂維護任務可以實作為OSGi服務。 由於維護任務基礎結構以Apache Sling的工作處理為基礎,因此維護任務必須實作Java™介面 [org.apache.sling.event.jobs.consumer.JobExecutor](https://sling.apache.org/apidocs/sling7/org/apache/sling/event/jobs/consumer/JobExecutor.html)
。 此外,它必須宣告數個服務註冊屬性以偵測為維護任務,如下所示:
除了上述服務屬性之外,JobConsumer
介面的process()
方法必須藉由新增應該針對維護工作執行的程式碼來實作。 提供的JobExecutionContext
可用於輸出狀態資訊、檢查工作是否由使用者停止並建立結果(成功或失敗)。
如果維護工作不應該在所有安裝上執行(例如,只會在發佈執行個體上執行),您可以新增@Component(policy=ConfigurationPolicy.REQUIRE)
,讓服務需要設定為使用中。 然後,您可以根據設定將設定標籤為從屬於存放庫中的執行模式。 如需詳細資訊,請參閱設定OSGi。
以下是自訂維護任務的範例,該任務會從過去24小時內修改過的可設定暫存目錄中刪除檔案:
src/main/java/com/adobe/granite/samples/maintenance/impl/DeleteTempFilesTask.java
experiencemanager-java-maintenancetask-sample- src/main/java/com/adobe/granite/samples/maintenance/impl/DeleteTempFilesTask.java
部署服務後,它會公開至操作控制面板UI。 您可以將其新增到其中一個可用的維護排程:
此動作會在/apps/granite/operations/config/maintenance/schedule
/taskname
新增對應的資源。 如果工作依執行模式而定,必須使用該維護工作必須啟動的執行模式值在該節點上設定屬性granite.operations.conditions.runmode。
系統綜覽 system-overview
系統總覽儀表板 會顯示AEM執行個體的組態、硬體及健康狀態的高階總覽。 系統健康狀態是透明的,所有資訊都會彙總在單一儀表板中。
如何存取 how-to-access
若要存取系統總覽儀表板,請瀏覽至 工具>作業>系統總覽。
說明系統總覽儀表板 system-overview-dashboard-explained
下表說明「系統總覽儀表板」中顯示的所有資訊。 當沒有可顯示的相關資訊(例如,備份未進行中,沒有重要的健康情況檢查)時,個別區段會顯示「沒有專案」訊息。
您也可以按一下儀表板右上角的 下載 按鈕,下載摘要儀表板資訊的JSON
檔案。 JSON
端點是/libs/granite/operations/content/systemoverview/export.json
,可以在curl
指令碼中使用以進行外部監視。