操作控制面板 operations-dashboard

簡介 introduction

AEM 6中的操作儀表板可協助系統操作員快速監視AEM系統健康狀況。 此外,還能提供AEM相關方面自動產生的診斷資訊,並讓您設定和執行完整的維護自動化,大幅減少專案操作和支援案例。 操作控制面板可以透過自訂健康情況檢查和維護任務進行擴展。 此外,您也可透過JMX從外部監視工具存取操作控制面板資料。

操作儀表板:

  • 是一鍵式系統狀態,可協助營運部門提高效率
  • 在單一集中位置提供系統健康概觀
  • 縮短尋找、分析和修正問題的時間
  • 提供獨立的維護自動化,協助大幅降低專案營運成本

您可以從AEM歡迎畫面移至​ 工具 - 作業 ​來存取它。

NOTE
若要存取操作控制面板,登入使用者必須屬於「操作員」使用者群組。 如需詳細資訊,請參閱有關使用者、群組和存取權管理的檔案。

健全狀態報表 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

chlimage_1-116

卡片系統可能會顯示三種狀態: 正常警告 ​和​ 嚴重。 狀態是規則和臨界值的結果,您可以將滑鼠移至卡片上,然後按一下動作列中的齒輪圖示即可設定這些規則和臨界值:

chlimage_1-117

健康情況檢查型別 health-check-types

AEM 6中有兩種健康狀態檢查型別:

  1. 個別健康情況檢查
  2. 複合健康狀態檢查

個人健康情況檢查 ​是與狀態卡相對應的單一健康情況檢查。 個別健康情況檢查可以使用規則或臨界值來設定,而且它們可以提供一或多個提示和連結來解決已識別的健康情況問題。 以「記錄錯誤」檢查為例:如果執行個體記錄中存在ERROR專案,請在健康狀態檢查的詳細資訊頁面中找到。 在頁面頂端,您可以在診斷工具區段中看到「記錄訊息」分析器的連結,讓您更詳細地分析這些錯誤,並重新設定記錄器。

複合健康狀態檢查 ​是彙總來自數個個別檢查的資訊的檢查。

複合健康情況檢查是以​ 篩選標籤 ​的輔助設定的。 本質上,具有相同篩選器標籤的所有單一檢查都會分組為複合健康狀態檢查。 只有當所有要彙總的單一檢查的狀態都為OK時,複合健康狀態檢查的狀態才會為OK。

如何建立健康情況檢查 how-to-create-health-checks

在「操作控制面板」中,您可以顯示個別和複合健康情況檢查的結果。

建立個人健康狀態檢查 creating-an-individual-health-check

建立個別健康情況檢查涉及兩個步驟:實作Sling健康情況檢查和在控制面板的設定節點中新增健康情況檢查專案。

  1. 若要建立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的名稱。
  2. 建立健康狀態檢查之後,必須建立新的設定節點,才能在操作儀表板介面中存取它。 對於此步驟,必須知道健康狀態檢查的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設定。 若要將其顯示在操作儀表板中,必須以簡單檢查相同的方式新增新的配置節點。

  1. 前往OSGI主控台中的Web Configuration Manager。 存取https://serveraddress:port/system/console/configMgr

  2. 搜尋名為​ Apache Sling複合健康狀態檢查 ​的專案。 找到之後,請注意已有兩個組態可供使用:一個用於「系統檢查」,另一個用於「安全性檢查」。

  3. 按組態右側的「+」按鈕來建立組態。 新視窗隨即顯示,如下所示:

    chlimage_1-23

  4. 建立設定並儲存。 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。**
  5. 最後,已建立的複合健康狀態檢查專案必須新增至「操作控制面板」組態節點。 程式與個別健康情況檢查的程式相同:必須在/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

運行狀況檢查名稱
說明
查詢效能

此健康情況檢查已在AEM 6.4中簡化 ,現在會檢查最近重構的Oak QueryStats MBean,更具體而言是SlowQueries 屬性。 如果統計資料包含任何緩慢查詢,則健康狀態檢查會傳回警告。 否則,它會傳回OK狀態。

此健康情況檢查的MBean是org.apache.sling.healthcheck:name=queriesStatus,type=HealthCheck

觀測佇列長度

觀察佇列長度會反複執行所有事件接聽程式和背景觀察程式,將其queueSize 與其maxQueueSize比較,並且:

  • 如果queueSize值超過maxQueueSize值(即將捨棄事件),則傳回「嚴重」狀態
  • 如果queueSize值超過maxQueueSize * WARN_THRESHOLD (預設值為0.75),則傳回警告

每個佇列的長度上限分別來自不同的設定(Oak和AEM),且無法透過此健康狀態檢查設定。 此健康情況檢查的MBean是org.apache.sling.healthcheck:name=ObservationQueueLengthHealthCheck,type=HealthCheck

查詢周遊限制

查詢周遊限制會檢查QueryEngineSettings MBean (更具體地說,LimitInMemoryLimitReads屬性),並傳回下列狀態:

  • 如果其中一個限制等於或大於 Integer.MAX_VALUE
  • 如果其中一個限制低於10000 (Oak的建議設定),則會傳回警告狀態
  • 如果無法擷取QueryEngineSettings或任何限制,則傳回「嚴重」狀態

此健康情況檢查的Mbean是org.apache.sling.healthcheck:name=queryTraversalLimitsBundle,type=HealthCheck

已同步時鐘

此檢查僅與檔案節點存放區叢集有關。 它會傳回以下狀態:

  • 當執行個體時鐘不同步並超過預先定義的低臨界值時,會傳回警告狀態
  • 當執行個體時鐘不同步並超過預先定義的高臨界值時,會傳回「嚴重」狀態

此健康情況檢查的Mbean是org.apache.sling.healthcheck:name=slingDiscoveryOakSynchronizedClocks,type=HealthCheck

非同步處理索引

非同步索引檢查:

  • 如果至少一個索引通道失敗,則傳回「關鍵」狀態

  • 檢查lastIndexedTime是否有所有索引通道,並且:

    • 如果超過2小時前,則傳回「嚴重」狀態
    • 如果2小時到45分鐘前還處於警告狀態,則會傳回警告狀態
    • 如果小於45分鐘前,則傳回「正常」狀態
  • 如果不符合這些條件,則會傳回OK狀態

「嚴重」和「警告」狀態臨界值均可設定。 此健康情況檢查的Mbean是org.apache.sling.healthcheck:name=asyncIndexHealthCheck,type=HealthCheck

注意: 此健康情況檢查可與AEM 6.4搭配使用,而且已反向移植至AEM 6.3.0.1。

大型 Lucene 索引

此檢查使用Lucene Index Statistics MBean公開的資料來識別大型索引並傳回:

  • 如果索引中有超過10億份檔案,則為警告狀態
  • a如果索引中有超過15億份檔案,則為嚴重狀態

臨界值是可設定的,而且健康狀態檢查的MBean是org.apache.sling.healthcheck:name=largeIndexHealthCheck,type=HealthCheck。

注意: 此檢查可與AEM 6.4搭配使用,且已反向移植至AEM 6.3.2.0。

系統維護

「系統維護」是一種複合檢查,如果所有維護工作都按設定執行,則會傳回「確定」。 請記住:

  • 每個維護任務都會隨附相關的健康狀態檢查
  • 如果未將任務新增至維護期間,其健康狀態檢查會傳回「嚴重」
  • 設定「稽核記錄」和「工作流程清除」維護作業,或將其從維護視窗中移除。 如果未進行設定,這些工作會在第一次嘗試執行時失敗,因此「系統維護」檢查會傳回「嚴重」狀態。
  • 使用AEM 6.4 時,也會檢查Lucene二進位檔維護工作
  • 在AEM 6.2和更低版本上,系統維護檢查會在啟動後立即傳回「警告」狀態,因為工作永遠不會執行。 從6.3開始,如果尚未到達第一個維護時段,則會傳回「確定」。

此健康情況檢查的MBean是org.apache.sling.healthcheck:name=systemchecks,type=HealthCheck

復寫佇列

此檢查會反複執行復寫代理程式並檢視其佇列。 對於佇列頂端的專案,檢查會檢視代理程式重試復寫的次數。 如果代理程式重試的復寫超過numberOfRetriesAllowed引數的值,則會傳回警告。 numberOfRetriesAllowed引數是可設定的。

此健康情況檢查的MBean是org.apache.sling.healthcheck:name=replicationQueue,type=HealthCheck

Sling 工作

「Sling工作」會檢查JobManager中佇列的作業數目,並將其與 maxNumQueueJobs臨界值,以及:

  • 如果佇列中超過maxNumQueueJobs個,則傳回「嚴重」
  • 如果長期執行中的作用中工作早於1小時,則傳回「嚴重」
  • 如果有佇列的工作,而且最後完成的工作時間超過1小時,則會傳回「嚴重」

僅可設定佇列作業的最大數量引數,其預設值為1000。

此健康情況檢查的MBean是org.apache.sling.healthcheck:name=slingJobs,type=HealthCheck

要求效能

此檢查會檢視granite.request.metrics.timer Sling量度和:

  • 如果第75個百分位值超過嚴重臨界值(預設值為500毫秒),則傳回「嚴重」
  • 如果第75個百分位值超過警告臨界值(預設值為200毫秒),則傳回警告

此健康情況檢查的MBean是 org.apache.sling.healthcheck:name=requestsStatus,type=HealthCheck

日誌錯誤

如果記錄中有錯誤,此檢查會傳回「警告」狀態。

此健康情況檢查的MBean是org.apache.sling.healthcheck:name=logErrorHealthCheck,type=HealthCheck

磁碟空間

磁碟空間檢查會檢視FileStoreStats MBean,擷取節點存放區的大小以及節點存放區分割區上可用的磁碟空間量,並且:

  • 如果可用磁碟空間與存放庫大小的比率小於警告臨界值(預設值為10),則傳回警告
  • 如果可用磁碟空間與存放庫大小的比率小於嚴重臨界值(預設值為2),則傳回「嚴重」

這兩個臨界值都是可設定的。 此檢查僅適用於具有區段存放區的執行個體。

此健康情況檢查的MBean是org.apache.sling.healthcheck:name=DiskSpaceHealthCheck,type=HealthCheck

排程器健康情況檢查

如果執行個體有執行超過60秒的Quartz工作,此檢查會傳回警告。 可設定可接受的持續時間臨界值。

此健康情況檢查的MBean是org.apache.sling.healthcheck:name=slingCommonsSchedulerHealthCheck,type=HealthCheck.

安全性檢查

安全性檢查是一種複合檢查,可彙總多個安全性相關檢查的結果。 這些個人健康狀態檢查可解決安全性檢查清單檔案頁面所提供的安全性檢查清單中不同的問題。當執行個體啟動時,這項檢查可用來作為安全性煙霧測試。

此健康情況檢查的MBean是org.apache.sling.healthcheck:name=securitychecks,type=HealthCheck

作用中組合

使用中的組合會檢查所有組合的狀態,並且:

  • 如果有任何套件組合未作用中或(從延遲啟動開始),則傳回「警告」狀態
  • 它會忽略忽略清單中的套件組合狀態

忽略清單引數是可設定的。

此健康情況檢查的MBean是org.apache.sling.healthcheck:name=inactiveBundles,type=HealthCheck

程式碼快取檢查

健康情況檢查會驗證可能觸發Java™ 7中出現CodeCache錯誤的多個JVM條件:

  • 如果執行個體在Java™ 7上執行,並啟用程式碼快取排清,則會傳回Warn
  • 如果執行個體在Java™ 7上執行,且保留的程式碼快取大小小於最小臨界值(預設值為90 MB),則會傳回「警告」

minimum.code.cache.size臨界值是可設定的。 如需有關錯誤的詳細資訊,請參閱,然後搜尋錯誤ID 8012547

此健康情況檢查的MBean是org.apache.sling.healthcheck:name=codeCacheHealthCheck,type=HealthCheck

資源搜尋路徑錯誤

檢查路徑/apps/foundation/components/primary中是否有任何資源,並且:

  • 如果下有子節點,則傳回警告 /apps/foundation/components/primary

此健康情況檢查的MBean是org.apache.sling.healthcheck:name=resourceSearchPathErrorHealthCheck,type=HealthCheck

健康狀態檢查設定 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

chlimage_1-120

記錄訊息 log-messages

記錄訊息使用者介面預設會顯示所有ERROR訊息。 如果您想要顯示更多日誌訊息,請以適當的日誌層級設定日誌程式。

記錄訊息使用記憶體中的記錄附加器,因此與記錄檔無關。 另一個後果是變更此UI中的記錄層級不會變更記錄到傳統記錄檔案中的資訊。 在此UI中新增和移除記錄器只會影響記憶體記錄器。 此外,變更記錄器設定會反映在記憶體記錄器的未來。 已記錄且不再相關的專案不會刪除,但日後不會再記錄類似的專案。

您可以從UI的左上角齒輪按鈕提供記錄器設定,以設定要記錄的內容。 在那裡,您可以新增、移除或更新記錄器設定。 記錄器設定是由​ 記錄層級 (WARN / INFO / DEBUG)和​ 篩選器名稱 ​所組成。 篩選器名稱 ​具有篩選記錄日誌訊息來源的角色。 或者,如果記錄器應該擷取指定層級的所有記錄訊息,則篩選器名稱應該是"root"。 設定記錄器的層級,會觸發擷取層級等於或高於指定層級的所有訊息。

範例:

  • 如果您計畫擷取所有​ ERROR ​訊息 — 不需要設定。 預設會擷取所有ERROR訊息。

  • 如果您計畫擷取所有​ ERRORWARN ​和​ INFO ​訊息 — 記錄器名稱應設為: "root",記錄器層級應設為: INFO

  • 如果您打算擷取來自特定套件(例如com.adobe.granite)的所有訊息,記錄器名稱應設為: "com.adobe.granite"。 而且,記錄器層級設定為: DEBUG (如此會擷取所有​ ERRORWARNINFO ​和​ DEBUG ​訊息),如下圖所示。

chlimage_1-121

NOTE
您不能設定記錄器名稱,以透過指定的篩選器僅擷取錯誤訊息。 依預設,會擷取所有ERROR訊息。
NOTE
記錄訊息使用者介面未反映實際的錯誤記錄。 除非您在UI中設定其他型別的記錄訊息,否則您只會看到錯誤訊息。 如需如何顯示特定記錄訊息,請參閱上述指示。
NOTE
診斷頁面中的設定不會影響記錄到記錄檔的內容,反之亦然。 因此,雖然錯誤記錄可能會擷取INFO訊息,但您可能會在記錄訊息UI中看不到。 此外,透過UI也可以從特定套件擷取DEBUG訊息,而不會影響錯誤記錄。 如需如何設定記錄檔的詳細資訊,請參閱記錄
NOTE
使用AEM 6.4 ​時,維護工作會以INFO層級的詳細資訊豐富格式從開箱即用。 此工作流程可讓您更清楚地瞭解維護任務的狀態。
如果您使用協力廠商工具(例如Splunk)來監控和回應維護任務活動,您可以使用以下記錄陳述式:
Log level: INFO
DATE+TIME [MaintanceLogger] Name=<MT_NAME>, Status=<MT_STATUS>, Time=<MT_TIME>, Error=<MT_ERROR>, Details=<MT_DETAILS>

要求效能 request-performance

「要求效能」頁面可讓您分析處理的最慢的頁面要求。 此頁面上只會註冊內容要求。 更具體來說,會擷取下列請求:

  1. 要求存取/content下的資源
  2. 要求存取/etc/design下的資源
  3. 具有".html"副檔名的請求

chlimage_1-122

頁面隨即顯示:

  • 提出要求的時間
  • URL和要求方法
  • 持續時間(毫秒)

依預設,會擷取最慢的20個頁面請求,但可以在Configuration Manager中修改限制。

查詢效能 query-performance

「查詢效能」頁面可讓您分析系統執行的最慢查詢。 此資訊由JMX Mbean中的存放庫提供。 在Jackrabbit中,com.adobe.granite.QueryStat JMX Mbean會提供此資訊,而在Oak存放庫中,org.apache.jackrabbit.oak.QueryStats.會提供此資訊

頁面隨即顯示:

  • 進行查詢的時間
  • 查詢的語言
  • 查詢的發出次數
  • 查詢的陳述式
  • 持續時間(毫秒)

chlimage_1-123

說明查詢 explain-query

對於任何指定的查詢,Oak會嘗試根據​ oak:index ​節點下儲存庫中定義的Oak索引,找出最佳執行方式。 Oak可能會根據查詢選擇不同的索引。 瞭解Oak如何執行查詢是最佳化查詢的第一步。

「說明查詢」工具可說明Oak如何執行查詢。 您可以從AEM歡迎畫面前往​ 工具 — 作業 — 診斷 ​來存取它。 然後,按一下​ 查詢效能 ​並切換到​ 說明查詢 ​索引標籤。

功能

  • 支援Xpath、JCR-SQL和JCR-SQL2查詢語言
  • 報告所提供查詢的實際執行時間
  • 偵測緩慢的查詢,並就可能緩慢的查詢發出警告
  • 報告用於執行查詢的Oak索引
  • 顯示實際的Oak查詢引擎說明
  • 提供慢速和熱門查詢的點按載入清單

進入Explain查詢UI之後,輸入查詢,然後按​ Explain ​按鈕:

chlimage_1-124

「查詢說明」區段中的第一個專案是實際說明。 說明會顯示用來執行查詢的索引型別。

第二個專案是執行計畫。

在執行查詢前勾選​ 包含執行時間 ​方塊,也會顯示查詢的執行時間。 包含節點計數 ​選項會報告節點計數。 該報告會提供詳細資訊,可用於為您的應用程式或部署最佳化索引。

chlimage_1-125

索引管理員 the-index-manager

Index Manager的目的是方便索引管理,例如維護索引或檢視其狀態。

您可以從[歡迎畫面]前往​ 工具 — 作業 — 診斷,然後按一下​ 索引管理員 ​按鈕來存取它。

也可以直接在此URL存取: https://serveraddress:port/libs/granite/operations/content/diagnosistools/indexManager.html

index_manager

UI可用來篩選表格中的索引,方法是在畫面左上角的搜尋方塊中輸入篩選條件。

下載狀態ZIP download-status-zip

這個動作會觸發下載壓縮檔,其中包含有關系統狀態和設定的實用資訊。 封存包含執行個體設定、套件組合清單、OSGI、Sling量度和統計資料,可能會產生大型檔案。 您可以使用​ 下載狀態ZIP ​視窗來減少大型狀態檔案的影響。 視窗可從下列位置存取: AEM >工具>作業>診斷>下載狀態ZIP。

在此視窗中,您可以選取要匯出的專案(記錄檔和/或對話串傾印),以及相對於目前日期包含在下載中的記錄天數。

download_status_zip

下載執行緒傾印 download-thread-dump

此動作會觸發下載zip ,其中包含系統中存在的對話串的相關資訊。 會提供每個執行緒的相關資訊,例如其狀態、類別載入器以及棧疊追蹤。

下載棧積傾印 download-heap-dump

您可以下載棧積的快照以便稍後分析。 此動作會觸發下載大型(數百MB)檔案。

自動維護任務 automated-maintenance-tasks

「自動維護任務」頁面可供您檢視及追蹤排定定期執行的建議維護任務。 這些工作已與「健康情況檢查」系統整合。 任務也可以從介面手動執行。

若要進入操作控制面板中的維護頁面,請從AEM歡迎畫面前往​ 工具 — 操作 — 控制面板 — 維護,或直接關注此連結:

https://serveraddress:port/libs/granite/operations/content/maintenance.html

「操作儀表板」中有以下工作:

  1. 修訂清理 ​工作,位於​ 每日維護視窗 ​功能表下方。
  2. Lucene二進位清理 ​工作,位於​ 每日維護期間 ​功能表下方。
  3. 工作流程清除 ​工作,位於​ 每週維護期間 ​功能表下方。
  4. 資料存放區記憶體回收 ​工作,位於​ 每週維護期間 ​功能表下方。
  5. 稽核記錄維護 ​工作,位於​ 每週維護期間 ​功能表下方。
  6. 版本清除維護 ​工作,位於​ 每週維護期間 ​功能表下方。

每日維護期間的預設時間為凌晨2:00至下午5:00。設定在每週維護期間執行的工作,會在星期六上午1:00到凌晨2:00之間執行。

您也可以按兩個維護卡片上的齒輪圖示來設定計時:

chlimage_1-126

NOTE
自AEM 6.1起,現有的維護時段也可設定為每月執行。

修訂清理 revision-clean-up

如需有關執行修訂清除的詳細資訊,請參閱此專屬文章

Lucene 二進位清理 lucene-binaries-cleanup

使用Lucene二進位檔案清理工作,您可以清除Lucene二進位檔案並降低執行中的資料存放區大小要求。 Lucene的二進位流失率會每天回收,而非先前相依於成功的資料存放區記憶體回收執行。

雖然開發維護任務是為了減少與Lucene相關的修訂垃圾,但在執行任務時普遍提高了效率:

  • 每週執行資料存放區記憶體回收工作可以更快完成。
  • 它也可能稍微改善整體AEM效能。

您可以從​ AEM >工具>作業>維護>每日維護視窗> Lucene二進位檔案清理 ​存取Lucene二進位檔案清理任務。

資料存放庫廢棄項目收集 data-store-garbage-collection

如需資料存放區記憶體回收的詳細資訊,請參閱專屬的檔案頁面

工作流程清除 workflow-purge

您也可以從維護控制面板中清除工作流程。 若要執行「工作流程永久刪除」作業,請執行下列步驟:

  1. 按一下​ 每週維護期間 ​頁面。
  2. 在下列頁面中,按一下​ 工作流程清除 ​卡片中的​ 播放
NOTE
如需工作流程維護的詳細資訊,請參閱此頁面

稽核記錄維護 audit-log-maintenance

如需稽核記錄維護,請參閱個別檔案頁面。

版本清除 version-purge

您可以排定「版本永久刪除」維護作業,以自動刪除舊版本。 此動作將手動使用版本清除工具的需求降到最低。 您可以存取​ 工具>作業>維護>每週維護視窗 ​並依照下列步驟來排程及設定「版本清除」工作:

  1. 按一下​ 新增

  2. 從下拉式功能表中選擇​ 版本清除

    version_purge_maintenancetask

  3. 若要設定「版本清除」工作,請按一下新建立之「版本清除」維護卡上的​ 齒輪 ​圖示。

    version_purge_taskconfiguration

使用AEM 6.4 ​時,您可以依照以下步驟停止「版本清除」維護工作:

  • 自動 — 如果排程的維護視窗在任務完成之前關閉,任務會自動停止。 當下一個維護視窗開啟時,它會繼續。
  • 手動 — 若要手動停止工作,請在[版本清除]維護卡上,按一下[停止] ​圖示。 在下次執行時,工作將會安全地繼續。
NOTE
停止維護工作表示暫停其執行而不會失去已進行中工作的追蹤。
CAUTION
最佳化您應經常執行版本清除工作的存放庫大小。 當流量有限時,應該將任務排程在營業時間以外。

自訂維護任務 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)。 此外,它必須宣告數個服務註冊屬性以偵測為維護任務,如下所示:

服務屬性名稱
說明
範例
類型
granite.maintenance.isStoppable
定義使用者是否可以停止工作的布林值屬性。 如果任務宣告它可停止,它必須在執行期間檢查它是否停止,然後相應地採取行動。 預設值為false。
true
選用
granite.maintenance.mandatory
定義工作是否為必要且必須定期執行的布林值屬性。 如果任務為必要任務,但目前不在任何使用中的排程視窗中,則健康狀態檢查會報告此錯誤。 預設值為false。
true
選用
granite.maintenance.name
任務的唯一名稱 — 該名稱用於引用任務,只是簡單名稱。
MyMaintenanceTask
必填
granite.maintenance.title
為此任務顯示的標題
我的特殊維護任務
必填
job.topics
維護任務的唯一主題。
Apache Sling工作處理會啟動一個與此主題完全相同的工作來執行維護工作,當工作針對此主題註冊時,就會開始執行。
主題必須以 com/adobe/granite/maintenance/job/ 開頭
com/adobe/granite/maintenance/job/MyMaintenanceTask
必填

除了上述服務屬性之外,JobConsumer介面的process()方法必須藉由新增應該針對維護工作執行的程式碼來實作。 提供的JobExecutionContext可用於輸出狀態資訊、檢查工作是否由使用者停止並建立結果(成功或失敗)。

如果維護工作不應該在所有安裝上執行(例如,只會在發佈執行個體上執行),您可以新增@Component(policy=ConfigurationPolicy.REQUIRE),讓服務需要設定為使用中。 然後,您可以根據設定將設定標籤為從屬於存放庫中的執行模式。 如需詳細資訊,請參閱設定OSGi

以下是自訂維護任務的範例,該任務會從過去24小時內修改過的可設定暫存目錄中刪除檔案:

src/main/java/com/adobe/granite/samples/maintenance/impl/DeleteTempFilesTask.java

/*

* #%L

* sample-maintenance-task

* %%

* Copyright (C) 2014 Adobe

* %%

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* https://www.apache.org/licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

* #L%

*/

``

package com.adobe.granite.samples.maintenance.impl;

``

import java.io.File;

import java.util.Calendar;

import java.util.Collection;

import java.util.Map;

``

import org.apache.commons.io.FileUtils;

import org.apache.commons.io.filefilter.IOFileFilter;

import org.apache.commons.io.filefilter.TrueFileFilter;

import org.apache.felix.scr.annotations.Activate;

import org.apache.felix.scr.annotations.Component;

import org.apache.felix.scr.annotations.Properties;

import org.apache.felix.scr.annotations.Property;

import org.apache.felix.scr.annotations.Service;

import org.apache.sling.commons.osgi.PropertiesUtil;

import org.apache.sling.event.jobs.Job;

import org.apache.sling.event.jobs.consumer.JobConsumer;

import org.apache.sling.event.jobs.consumer.JobExecutionContext;

import org.apache.sling.event.jobs.consumer.JobExecutionResult;

import org.apache.sling.event.jobs.consumer.JobExecutor;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

``

import com.adobe.granite.maintenance.MaintenanceConstants;

``

@Component(metatype = true,

label = "Delete Temp Files Maintenance Task",

description = "Maintatence Task which deletes files from a configurable temporary directory which have been modified in the last 24 hours.")

@Service

@Properties({

@Property(name = MaintenanceConstants.PROPERTY_TASK_NAME, value = "DeleteTempFilesTask", propertyPrivate = true),

@Property(name = MaintenanceConstants.PROPERTY_TASK_TITLE, value = "Delete Temp Files", propertyPrivate = true),

@Property(name = JobConsumer.PROPERTY_TOPICS, value = MaintenanceConstants.TASK_TOPIC_PREFIX

+ "DeleteTempFilesTask", propertyPrivate = true) })

public class DeleteTempFilesTask implements JobExecutor {

``

private static final Logger log = LoggerFactory.getLogger(DeleteTempFilesTask.class);

``

@Property(label = "Temporary Directory", description="Temporary Directory. Defaults to the java.io.tmpdir system property.")

private static final String PROP_TEMP_DIR = "temp.dir";

``

private File tempDir;

``

@Activate

private void activate(Map<string, object=""> properties) {

this.tempDir = new File(PropertiesUtil.toString(properties.get(PROP_TEMP_DIR),

System.getProperty("java.io.tmpdir")));

}

``

@Override

public JobExecutionResult process(Job job, JobExecutionContext context) {

log.info("Deleting old temp files from {}.", tempDir.getAbsolutePath());

Collection<file> files = FileUtils.listFiles(tempDir, new LastModifiedBeforeYesterdayFilter(),

TrueFileFilter.INSTANCE);

int counter = 0;

for (File file : files) {

log.debug("Deleting file {}.", file.getAbsolutePath());

counter++;

file.delete();

// TODO - capture the output of delete() and do something useful with it

}

return context.result().message(String.format("Deleted %s files.", counter)).succeeded();

}

``

/**

* IOFileFilter which filters out files which have been modified in the last 24 hours.

*

*/

private static class LastModifiedBeforeYesterdayFilter implements IOFileFilter {

``

private final long minTime;

``

private LastModifiedBeforeYesterdayFilter() {

Calendar cal = Calendar.getInstance();

cal.add(Calendar.DATE, -1);

this.minTime = cal.getTimeInMillis();

}

``

@Override

public boolean accept(File dir, String name) {

// this method is never actually called.

return false;

}

``

@Override

public boolean accept(File file) {

return file.lastModified() <= this.minTime;

}

}

``

}

<file></string,>

experiencemanager-java-maintenancetask-sample- src/main/java/com/adobe/granite/samples/maintenance/impl/DeleteTempFilesTask.java

部署服務後,它會公開至操作控制面板UI。 您可以將其新增到其中一個可用的維護排程:

chlimage_1-127

此動作會在/apps/granite/operations/config/maintenance/schedule/taskname新增對應的資源。 如果工作依執行模式而定,必須使用該維護工作必須啟動的執行模式值在該節點上設定屬性granite.operations.conditions.runmode。

系統綜覽 system-overview

系統總覽儀表板 ​會顯示AEM執行個體的組態、硬體及健康狀態的高階總覽。 系統健康狀態是透明的,所有資訊都會彙總在單一儀表板中。

NOTE
您也可以觀看此影片,瞭解系統總覽儀表板的簡介。

如何存取 how-to-access

若要存取系統總覽儀表板,請瀏覽至​ 工具>作業>系統總覽

system_overview_dashboard

說明系統總覽儀表板 system-overview-dashboard-explained

下表說明「系統總覽儀表板」中顯示的所有資訊。 當沒有可顯示的相關資訊(例如,備份未進行中,沒有重要的健康情況檢查)時,個別區段會顯示「沒有專案」訊息。

您也可以按一下儀表板右上角的​ 下載 ​按鈕,下載摘要儀表板資訊的JSON檔案。 JSON端點是/libs/granite/operations/content/systemoverview/export.json,可以在curl指令碼中使用以進行外部監視。

區段
顯示哪些資訊
何時重要
連結至
健康狀態檢查
  • 處於嚴重狀態的檢查清單
  • 處於警告狀態的檢查清單

以視覺顯示:

  • 嚴重檢查的紅色標籤
  • 用於警告檢查的橙色標籤
  • 健康狀態報表頁面
維護任務
  • 失敗的任務清單
  • 目前正在執行的工作清單
  • 上次執行成功的作業清單
  • 從未執行過的作業清單
  • 未排程的工作清單

以視覺顯示:

  • 失敗任務的紅色標籤
  • 用於執行任務的橘色標籤(因為這些可能會影響效能)
  • 每個其他狀態的灰色標籤
  • 維護作業頁面
系統
  • 作業系統和作業系統版本(例如macOS X)
  • 系統平均負載,擷取自OperatingSystemMXBeanusable
  • 磁碟空間(位於主目錄所在的分割區)
  • 最大棧積,由MemoryMXBean傳回
N/A
N/A
執行個體
  • AEM版本
  • 執行模式清單
  • 執行個體開始的日期
N/A
N/A
存放庫
  • Oak版本

  • 節點存放區型別(區段Tar或檔案)

    • 如果型別是document,則會顯示檔案存放區的型別(RDB或Mongo)
  • 如果有自訂資料存放區:

    • 若為檔案資料存放區,則會顯示路徑
    • 若為S3資料存放區,會顯示S3儲存貯體的名稱
    • 如果是共用的S3資料存放區,則會顯示S3儲存貯體的名稱
    • 對於Azure資料存放區,會顯示容器
  • 如果沒有自訂外部資料存放區,則會顯示一則訊息,指出此事實

N/A
N/A
發佈代理程式
  • 具有封鎖佇列的代理程式清單
  • 設定錯誤的代理程式清單(「設定錯誤」)
  • 佇列處理暫停的代理程式清單
  • 閒置代理程式清單
  • 執行中代理程式(目前正在處理專案)的清單

以視覺顯示:

  • 封鎖的代理程式或設定錯誤的紅色標籤
  • 暫停代理的橘色標籤
  • 已暫停、閒置或執行中代理程式的灰色標籤
發佈頁面
複寫代理程式
  • 具有封鎖佇列的代理程式清單
  • 閒置代理程式清單
  • 執行中代理程式(目前正在處理專案)的清單

以視覺顯示:

  • 已封鎖代理程式的紅色標籤
  • 暫停代理程式的灰色標籤
復寫頁面
工作流程
  • 工作流程工作:

    • 失敗的工作流程工作數目(如果有的話)
    • 已取消的工作流程工作數目(如果有的話)
  • 工作流程計數 — 指定狀態的工作流程數量(如果有的話):

    • 執行中
    • 失敗
    • 已暫停
    • 已中止

會針對上方呈現的每個狀態執行查詢,限製為400毫秒。 在400毫秒時,會顯示截至該時間所取得的專案數。

未解譯:

  • 當有工作流程和工作處於非預期狀態時,使用者應進行調查。
工作流程失敗頁面
Sling 工作

Sling工作計數 — 指定狀態的工作數(如果有的話):

  • 失敗
  • 已排入佇列
  • 已取消
  • 作用中

未解譯:

  • 當有工作處於非預期狀態或具有高計數時,使用者應進行調查。
不適用
預估節點計數

預估數量:

  • 頁面
  • 資產
  • 標記
  • 可授權專案
  • 節點總數

節點總數是從nodeCounterMBean取得,其餘的統計資料是從IndexInfoService取得。

N/A
N/A
備份
顯示「線上備份進行中」(如果有的話)。
N/A
N/A
建立索引

顯示:

  • 「正在編制索引」
  • "正在進行查詢"

如果索引或查詢對話串存在於對話串傾印中。

N/A
N/A
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2