操作仪表板 operations-dashboard
简介 introduction
AEM 6中的“操作功能板”可帮助系统操作员一目了然地监控AEM系统运行状况。 它还提供有关AEM相关方面的自动生成的诊断信息,并允许配置和运行自包含的维护自动化,以显着减少项目操作和支持案例。 操作功能板可通过自定义运行状况检查和维护任务进行扩展。 此外,操作功能板数据可通过JMX从外部监控工具访问。
操作功能板:
- 是一键式系统状态,可帮助运营部门提高效率
- 在一个集中的位置提供系统运行状况概述
- 减少查找、分析和修复问题的时间
- 提供自带维护自动化功能,有助于显着降低项目运营成本
可通过转到 工具 - 操作 从AEM欢迎屏幕中。
健康报表 health-reports
运行状况报告系统通过Sling运行状况检查提供有关AEM实例运行状况的信息。 这可以通过OSGI、JMX、HTTP请求(通过JSON)或通过触屏UI来完成。 它提供某些可配置计数器的测量值和阈值,在某些情况下,将提供有关如何解决该问题的信息。
它具有以下几项功能:
运行状况检查 health-checks
的 运行状况报告 是指在特定产品领域表明健康或健康不良的卡系统。 这些卡片是Sling运行状况检查的可视化图表,用于聚合来自JMX和其他源的数据,并再次将处理的信息显示为MBean。 这些MBean还可以在 JMX Web控制台,在 org.apache.sling.healthcheck 域。
可以通过 工具 - 操作 - 运行状况报告 菜单,或直接通过以下URL:
https://<serveraddress>:port/libs/granite/operations/content/healthreports/healthreportlist.html
卡系统会公开三种可能的状态: 确定, 警告 和 关键. 状态是规则和阈值的结果,可通过将鼠标悬停在卡上,然后单击操作栏中的齿轮图标来配置它们:
运行状况检查类型 health-check-types
AEM 6中有两种类型的运行状况检查:
- 单个运行状况检查
- 复合运行状况检查
安 单个运行状况检查 是与状态卡对应的单个运行状况检查。 单个运行状况检查可以配置规则或阈值,并且它们可以提供一个或多个提示和链接以解决已识别的运行状况问题。 让我们以“日志错误”检查为例:如果实例日志中存在ERROR条目,您将在运行状况检查的详细信息页面上找到它们。 在页面顶部,您将在诊断工具部分看到指向“日志消息”分析器的链接,该链接将使您能够更详细地分析这些错误并重新配置日志记录器。
A 复合运行状况检查 是用于聚合多个单独检查中的信息的检查。
复合运行状况检查配置了 过滤标记. 实质上,具有相同过滤器标记的所有单个检查都将分组为复合运行状况检查。 仅当聚合的所有单个检查也具有“OK”状态时,复合运行状况检查才具有“OK”状态。
如何创建运行状况检查 how-to-create-health-checks
在“操作功能板”中,您可以显示单个和复合运行状况检查的结果。
创建单个运行状况检查 creating-an-individual-health-check
创建单个运行状况检查涉及两个步骤:实施Sling运行状况检查并在功能板的配置节点中为运行状况检查添加一个条目。
-
要创建Sling运行状况检查,您需要创建一个实施Sling HealthCheck界面的OSGI组件。 将此组件添加到包中。 组件的属性将完全识别运行状况检查。 安装组件后,将自动为运行状况检查创建JMX MBean。 请参阅 Sling运行状况检查文档 以了解更多信息。
Sling运行状况检查组件示例,该组件使用OSGI服务组件注释编写:
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:非结构化):/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配置管理器。 您可以通过访问
https://serveraddress:port/system/console/configMgr
-
搜索名为的条目 Apache Sling复合运行状况检查. 在找到该配置后,请注意已有两种配置可用:一个用于系统检查,另一个用于安全检查。
-
通过按配置右侧的“+”按钮创建新配置。 将显示一个新窗口,如下所示:
-
创建配置并保存。 将使用新配置创建Mbean。
每个配置属性的用途如下:
- 名称(hc.name): 复合运行状况检查的名称。 建议使用有意义的名称。
- 标记(hc.tags): 此运行状况检查的标记。 如果此复合运行状况检查旨在成为另一个复合运行状况检查的一部分(例如,在运行状况检查层次结构中),请添加此复合所关联的标记。
- MBean名称(hc.mbean.name): 将给此复合运行状况检查的JMX MBean的Mbean的名称。
- 过滤标记(filter.tags): 这是特定于复合运行状况检查的属性。 这些是复合应聚合的标记。 复合运行状况检查将聚合到其组下所有具有与此复合的任何过滤器标记相匹配的任何标记的运行状况检查。 例如,具有过滤器标签的复合运行状况检查 测试 和 check 将聚合所有具有 测试 和 check 标记属性(
hc.tags
)。
note note NOTE 将为Apache Sling复合运行状况检查的每个新配置创建新的JMX Mbean。** -
最后,需要在操作仪表板配置节点中添加刚刚创建的复合运行状况检查的条目。 此过程与单独运行状况检查的过程相同:类型的节点 nt:非结构化 需要在下创建
/apps/settings/granite/operations/hc
. 节点的资源属性将由 hc.mean.name 在OSGI配置中。例如,如果您创建了配置,并将 hc.mbean.name 值 磁盘使用情况,则配置节点将如下所示:
-
名称:
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
使用Nagios进行监控 monitoring-with-nagios
运行状况检查功能板可以通过Granite JMX Mbeans与Nagios集成。 以下示例说明如何添加检查,以显示运行AEM的服务器上已用内存。
-
在监控服务器上设置并安装Nagios。
-
接下来,安装Nagios远程插件执行器(NRPE)。
note note NOTE 有关如何在系统上安装Nagios和NRPE的详细信息,请参阅 Nagios文档. -
为AEM服务器添加主机定义。 这可以通过Nagios XI Web界面使用配置管理器来完成:
- 打开浏览器并指向Nagios服务器。
- 按 配置 按钮。
- 在左窗格中,按 核心配置管理器 在 高级配置.
- 按 主机 链接 监控 中。
- 添加主机定义:
以下是主机配置文件示例(如果您使用的是Nagios Core):
code language-xml define host { address 192.168.0.5 max_check_attempts 3 check_period 24x7 check-command check-host-alive contacts admin notification_interval 60 notification_period 24x7 }
-
在AEM服务器上安装Nagios和NRPE。
-
安装 check_http_json 插件。
-
在两台服务器上定义通用JSON check命令:
code language-xml define command{ command_name check_http_json-int command_line /usr/lib/nagios/plugins/check_http_json --user "$ARG1$" --pass "$ARG2$" -u 'https://$HOSTNAME$:$ARG3$/$ARG4$' -e '$ARG5$' -w '$ARG6$' -c '$ARG7$' }
-
为AEM服务器上的已用内存添加服务:
code language-xml define service { use generic-service host_name my.remote.host service_description AEM Author Used Memory check_command check_http_json-int!<cq-user>!<cq-password>!<cq-port>!system/sling/monitoring/mbeans/java/lang/Memory.infinity.json!{noname}.mbean:attributes.HeapMemoryUsage.mbean:attributes.used.mbean:value!<warn-threshold-in-bytes>!<critical-threshold-in-bytes> }
-
检查Nagios功能板以了解新创建的服务:
诊断工具 diagnosis-tools
“操作功能板”还提供对诊断工具的访问,这些工具有助于查找和排除来自“运行状况检查功能板”的警告的根本原因,并为系统操作员提供重要的调试信息。
其最重要的功能包括:
- 日志消息分析器
- 访问堆和线程转储的功能
- 请求和查询性能分析程序
您可以通过转到 工具 — 操作 — 诊断 从AEM欢迎屏幕中。 您还可以通过直接访问以下URL来访问屏幕: https://serveraddress:port/libs/granite/operations/content/diagnosis.html
日志消息 log-messages
默认情况下,“用户界面”将显示所有“错误”消息。 如果要显示更多日志消息,您需要配置具有相应日志级别的日志记录器。
日志消息使用内存日志附加器中的,因此与日志文件无关。 另一个结果是,更改此UI中的日志级别不会更改传统日志文件中记录的信息。 在此UI中添加和删除日志记录器将仅影响内存日志记录器中的。 另外,请注意,更改日志记录器配置将反映在内存日志记录器的将来 — 已记录且不再相关的条目不会删除,但类似条目将来不会记录。
您可以通过在UI的左上角齿轮按钮中提供日志记录器配置来配置日志记录内容。 在此,您可以添加、删除或更新日志记录器配置。 记录器配置由 日志级别 (警告/信息/调试)和 过滤器名称. 的 过滤器名称 具有过滤日志消息源的角色。 或者,如果日志记录器应捕获指定级别的所有日志消息,则筛选器名称应为“根" 设置日志记录器的级别将触发所有消息的捕获,其级别等于或大于指定的级别。
示例:
-
如果您计划捕获 错误 消息 — 无需配置。 默认情况下会捕获所有错误消息。
-
如果您计划捕获 错误, 警告 和 信息 messages — 日志记录器名称应设置为:"根“”,日志记录器级别为: 信息.
-
如果您计划捕获来自特定包(例如com.adobe.granite)的所有消息,则应将日志记录器名称设置为:"com.adobe.granite",并且日志记录器级别为: 调试 (这将捕获所有 错误, 警告, 信息 和 调试 消息),如下图所示。
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个页面请求,但可以在配置管理器中修改此限制。
查询性能 query-performance
“查询性能”页允许分析系统执行的最慢查询。 此信息由JMX Mbean中的存储库提供。 在Jackrabbit中, com.adobe.granite.QueryStat
JMX Mbean会提供此信息,而在Oak存储库中,则会提供此信息 org.apache.jackrabbit.oak.QueryStats.
此时将显示页面:
- 进行查询的时间
- 查询的语言
- 发出查询的次数
- 查询语句
- 持续时间(以毫秒为单位)
说明查询 explain-query
对于任何给定的查询,Oak都会尝试根据存储库中在 oak:index 节点。 根据查询,Oak可能会选择不同的索引。 了解Oak如何执行查询是优化查询的第一步。
Explain Query是一个工具,用于说明Oak如何执行查询。 可通过转到 工具 — 操作 — 诊断 从AEM欢迎屏幕中,单击 查询性能 然后切换到 解释查询 选项卡。
功能
- 支持Xpath、JCR-SQL和JCR-SQL2查询语言
- 报告提供查询的实际执行时间
- 检测慢速查询并警告可能慢速的查询
- 报告用于执行查询的Oak索引
- 显示Oak查询引擎的实际说明
- 提供慢速和热门查询的点进加载列表
进入Explain Query UI后,使用它所需执行的所有操作就是输入查询并按 解释 按钮:
“查询说明”部分的第一个条目是实际说明。 说明将显示用于执行查询的索引类型。
第二项是执行计划。
在 包含执行时间 框中,将显示在中执行查询的时间,以便提供可用于优化应用程序或部署索引的更多信息。
索引管理器 the-index-manager
索引管理器的目的是促进索引管理,如维护索引或查看其状态。
可以从欢迎屏幕中转到 工具 — 操作 — 诊断,然后单击 索引管理器 按钮。
也可以通过以下URL直接访问该域: https://serveraddress:port/libs/granite/operations/content/diagnosistools/indexManager.html
UI可用于筛选表格中的索引,方法是在屏幕左上角的搜索框中键入筛选条件。
下载状态ZIP download-status-zip
这将触发下载包含系统状态和配置有用信息的zip文件。 存档包含实例配置、包列表、OSGi、Sling量度和统计信息,这可能会生成大文件。 您可以使用 下载状态ZIP 窗口来减少大型状态文件的影响。 窗口可从以下位置访问: AEM >工具>操作>诊断>下载状态ZIP。
在此窗口中,您可以选择要导出的内容(日志文件和线程转储)以及下载中包含的相对于当前日期的日志天数。
下载线程转储 download-thread-dump
这将触发下载包含系统中存在线程信息的zip文件。 提供了每个线程的信息,如其状态、类加载器和堆栈跟踪。
下载堆转储 download-heap-dump
您还能够下载堆的快照,以便在以后分析它。 请注意,这将触发大文件的下载(以百兆字节为单位)。
自动维护任务 automated-maintenance-tasks
在“自动维护任务”页面中,您可以查看和跟踪计划定期执行的推荐维护任务。 任务与运行状况检查系统集成。 任务也可以从界面手动执行。
要转到“操作功能板”中的“维护”页面,您需要转到 工具 — 操作 — 功能板 — 维护 从AEM欢迎屏幕中,或直接访问以下链接:
https://serveraddress:port/libs/granite/operations/content/maintenance.html
操作功能板中提供以下任务:
-
位于 ** 每日维护窗口 菜单。
-
Lucene二进制文件清理 任务位于 每日维护窗口 菜单。
-
工作流清除 任务,位于 每周维护窗口 菜单。
-
的 数据存储垃圾收集 任务,位于 每周维护窗口 菜单。
-
的 审核日志维护 任务,位于 每周维护窗口 菜单。
-
的 版本清除维护 任务,位于 每周维护窗口 菜单。
每日维护时段的默认时间为凌晨2点到5点。 在每周维护时段内配置的任务将在星期六凌晨1点到2点之间执行。
您还可以通过按下两个维护卡中任意一个上的齿轮图标来配置计时:
修订清理 revision-clean-up
有关为AEM 6.4执行修订清理的详细信息,请 请参阅此专述文章.
Lucene 二进制文件清理 lucene-binaries-cleanup
通过使用Lucene二进制文件清理任务,可以清除lucene二进制文件并减少正在运行的数据存储大小要求。 这是因为Lucene的二进制流失率将每天重新声明,而不是先前对成功的依赖 数据存储垃圾收集 运行。
虽然开发维护任务是为了减少与Lucene相关的修订垃圾,但运行该任务时总体效率上有所提高:
- 每周执行数据存储垃圾收集任务将更快地完成
- 它还可能会略微提高整体AEM性能
您可以从以下位置访问Lucene二进制文件清理任务: AEM >工具>操作>维护>每日维护窗口> Lucene二进制文件清理.
数据存储垃圾收集 data-store-garbage-collection
有关数据存储垃圾收集的详细信息,请参阅 文档页面.
工作流清除 workflow-purge
也可以从维护功能板中清除工作流。 要运行“工作流清除”任务,您需要:
- 单击 每周维护窗口 页面。
- 在下一页,单击 播放 按钮 工作流清除 卡。
审核日志维护 audit-log-maintenance
有关审核日志维护,请参阅 单独的文档页面。
版本清除 version-purge
您可以计划“版本清除”维护任务以自动删除旧版本。 因此,这可以最大限度地减少手动使用 版本清除工具. 您可以通过访问 “工具”>“操作”>“维护”>“每周维护”窗口 并按以下步骤操作:
-
单击 添加 按钮。
-
选择 版本清除 下拉菜单中。
-
要配置“版本清除”任务,请单击 齿轮 图标。
使用AEM 6.4,您可以按如下方式停止版本清除维护任务:
- 自动 — 如果计划维护窗口在任务完成之前关闭,则任务会自动停止。 在下一个维护窗口打开时,系统将恢复运行。
- 手动 — 要手动停止任务,请在版本清除维护卡上单击 停止 图标。 下次执行时,任务将安全地恢复。
自定义维护任务 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)
. 此外,它必须声明若要作为维护任务检测的多个服务注册属性,如下所示:
除上述服务物业外, process()
方法 JobConsumer
需要通过添加应为维护任务执行的代码来实现接口。 提供的 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
用于外部监控的脚本。