从Experience Manager Assets的观点来看,监测应包括对下列过程和技术进行观察和报告:
通常,Experience Manager Assets可以通过两种方式进行监控:实时监控和长期监控。
您应在开发的性能测试阶段或高负载情况下执行实时监视,以了解环境的性能特性。 通常,应使用一套工具执行实时监视。 以下是一些建议:
可视VM:Visual VM使您能够视图详细的Java VM信息,包括CPU使用、Java内存使用。此外,它还允许您对在部署上运行的代码进行采样和评估。
顶部:顶部是打开仪表板的Linux命令,显示使用情况统计信息,包括CPU、内存和IO使用情况。它提供了实例中所发生情况的高级概述。
顶部:Htop是一个交互式流程查看器。除了Top可以提供的功能外,它还提供详细的CPU和内存使用。 Htop可以使用yum install htop
或apt-get install htop
安装在大多数Linux系统上。
Iotop:Iotop是磁盘IO使用情况的详细仪表板。 它显示描述使用磁盘IO的进程及其使用量的栏和表。 Iotop可以安装在使用yum install iotop
或apt-get install iotop
的大多数Linux系统上。
Iftop:Iftop显示有关以太网/网络使用的详细信息。Iftop显示使用以太网的实体的每个通信渠道统计信息以及它们使用的带宽量。 Iftop可以使用yum install iftop
或apt-get install iftop
安装在大多数Linux系统上。
Java Flight Recorder(JFR):来自Oracle的商业工具,您可以在非生产环境中自由使用。 有关详细信息,请参阅如何使用Java飞行记录器诊断CQ运行时问题。
Experience Manager error.log
文件:您可以调查文 Experience Manager error.log
件,了解已记录到系统中的错误的详细信息。使用命令tail -F quickstart/logs/error.log
识别要调查的错误。
工作流控制台:利用工作流控制台监视滞后或卡住的工作流。
通常,您结合使用这些工具来全面了解Experience Manager部署的性能。
这些工具是标准工具,不直接受Adobe支持。 他们不需要额外的许可证。
图:使用Visual VM工具进行实时监视。
对Experience Manager部署的长期监控包括对实时监控的相同部分进行更长时间的监控。 它还包括定义特定于您的环境的警报。
聚合日志有多种可用工具,例如Splunk™和Elastic Search、Logstash和Kabana(ELK)。 要评估Experience Manager部署的正常运行时间,您必须了解特定于系统的日志事件并根据它们创建警报。 了解您的开发和操作实践可以帮助您更好地了解如何调整日志聚合过程以生成关键警报。
环境监控包括监控以下内容:
您需要NewRelic™和AppDynamics™等外部工具来监视每个项目。 使用这些工具,您可以定义特定于您系统的警报,例如高系统利用率、工作流备份、运行状况检查失败或未经身份验证的网站访问。 Adobe不推荐任何特定工具。 找到适合您的工具,并利用它来监视讨论的项目。
内部应用程序监视包括监视构成Experience Manager堆栈的应用程序组件,包括JVM、内容存储库,以及通过平台上构建的自定义应用程序代码进行监视。 通常,它通过JMX Mbeans执行,可由许多流行的监控解决方案直接进行监控,如SolarWinds™,HP OpenView™,Hyperic™,Zabbix™等。 对于不支持直接连接到JMX的系统,您可以编写外壳脚本以提取JMX数据,并以它们本身理解的格式将其呈现给这些系统。
默认情况下,不启用对JMX Mbeans的远程访问。 有关通过JMX进行监视的详细信息,请参见使用JMX技术进行监视和管理。
在许多情况下,需要基线来有效地监视统计。 要创建基线,在预定时间段内观察系统在正常工作条件下,然后识别正常度量。
JVM监视
与任何基于Java的应用程序堆栈一样,Experience Manager取决于通过基础Java虚拟机提供给它的资源。 您可以通过JVM公开的平台MXBean来监视其中许多资源的状态。 有关MXBean的详细信息,请参阅使用平台MBean服务器和平台MXBean。
以下是一些可以监视JVM的基准参数:
内存
MBean: lava.lang:type=Memory
/system/console/jmx/java.lang:type=Memory
此Bean提供的信息以字节表示。
线程
java.lang:type=Threading
/system/console/jmx/java.lang:type=Threading
监视器Experience Manager
Experience Manager 还通过JMX公开一组统计和操作。这些功能有助于评估系统运行状况,并在潜在问题影响用户之前找出它们。 有关详细信息,请参阅Experience Manager JMX MBean上的文档。
以下是可以监视的Experience Manager的一些基线参数:
复制代理
MBean:com.adobe.granite.replication:type=agent,id=”<AGENT_NAME>”
URL:/system/console/jmx/com.adobe.granite.replication:type=agent,id=”<AGENT_NAME>"
实例:一个作者实例和所有发布实例(适用于刷新代理)
警报阈值:当QueueBlocked
的值为true
或QueueNumEntries
的值大于基线的150%时。
警报定义:系统中存在阻止的队列,表明复制目标已关闭或不可到达。 通常,网络或基础架构问题会导致过多条目排队,从而对系统性能产生不利影响。
对于MBean和URL参数,请将<AGENT_NAME>
替换为要监视的复制代理的名称。
会话计数器
org.apache.jackrabbit.oak:id=7,name="OakRepository Statistics",type="RepositoryStats"
运行状况检查
操作仪表板中提供的运行状况检查具有相应的JMX MBean用于监视。 但是,您可以编写自定义运行状况检查来显示其他系统统计信息。
以下是一些现成运行状况检查,它们有助于监控:
系统检查
org.apache.sling.healthcheck:name=systemchecks,type=HealthCheck
/system/console/jmx/org.apache.sling.healthcheck:name=systemchecks,type=HealthCheck
复制队列
org.apache.sling.healthcheck:name=replicationQueue,type=HealthCheck
/system/console/jmx/org.apache.sling.healthcheck:name=replicationQueue,type=HealthCheck
响应性能
org.apache.sling.healthcheck:name=requestsStatus,type=HealthCheck
/system/console/jmx/org.apache.sling.healthcheck:name=requestsStatus,type=HealthCheck
查询性能
org.apache.sling.healthcheck:name=queriesStatus,type=HealthCheck
/system/console/jmx/org.apache.sling.healthcheck:name= queriesStatus,type=HealthCheck
活动包
org.apache.sling.healthcheck:name=inactiveBundles,type=HealthCheck
/system/console/jmx/org.apache.sling.healthcheck:name=inactiveBundles,type=HealthCheck
日志错误
org.apache.sling.healthcheck:name=logErrorHealthCheck,type=HealthCheck
/system/console/jmx/org.apache.sling.healthcheck:name=logErrorHealthCheck,type=HealthCheck
在监视过程中,如果遇到问题,您可以执行以下一些疑难解答任务来解决Experience Manager部署的常见问题:
如果使用TarMK,请经常运行Tar压缩。 有关详细信息,请参阅维护存储库。
检查OutOfMemoryError
日志。 有关详细信息,请参阅分析内存问题。
检查日志中是否有对未索引查询、树遍历或索引遍历的引用。 这表示未编制索引的查询或索引不足的查询。 有关优化查询和索引性能的最佳实践,请参阅查询和索引的最佳实践。
使用工作流控制台验证工作流是否按预期方式执行。 如果可能,将多个工作流浓缩为单个工作流。
重新访问实时监控,并寻找任何特定资源的其他瓶颈或高消费者。
调查客户端网络的出口点和Experience Manager部署网络(包括调度程序)的入口点。 这些往往是瓶颈领域。 有关详细信息,请参阅资产网络注意事项。
调整Experience Manager服务器的大小。 您的Experience Manager部署规模可能不足。 Adobe客户关怀团队可以帮助您确定您的服务器是否规模不足。
检查access.log
和error.log
文件,在出错时间前后是否有条目。 查找可能指示自定义代码异常的模式。 将它们添加到您监视的事件列表。