教程:为 SAP NetWeaver 设置监控
本教程演示了如何配置 Amazon CloudWatch Application Insights,以便为 SAP NetWeaver 设置监控。您可以使用 CloudWatch Application Insights 自动控制面板可视化问题详细信息、加快故障排除并缩短 SAP NetWeaver 应用程序服务器的平均解决时间(MTTR)。
CloudWatch Application Insights for SAP NetWeaver 主题
支持的环境
CloudWatch Application Insights 支持部署用于以下系统和模式的 AWS 资源。
-
SAP NetWeaver 标准系统部署。
-
SAP NetWeaver 在多个 Amazon EC2 实例上的分布式部署。
-
跨可用区 SAP NetWeaver 高可用性设置 – 使用 SUSE/RHEL 集群在两个可用区之间配置高可用性的 SAP NetWeaver。
支持的操作系统
以下操作系统支持 CloudWatch Application Insights for SAP NetWeaver:
-
Oracle Linux 8
-
Red Hat Enterprise Linux 7.6
-
Red Hat Enterprise Linux 7.7
-
Red Hat Enterprise Linux 7.9
-
Red Hat Enterprise Linux 8.1
-
Red Hat Enterprise Linux 8.2
-
Red Hat Enterprise Linux 8.4
-
Red Hat Enterprise Linux 8.6
-
SUSE Linux Enterprise Server 15 for SAP
-
SUSE Linux Enterprise Server 15 SP1 for SAP
-
SUSE Linux Enterprise Server 15 SP2 for SAP
-
SUSE Linux Enterprise Server 15 SP3 for SAP
-
SUSE Linux Enterprise Server 15 SP4 for SAP
-
SUSE Linux Enterprise Server 12 SP4 for SAP
-
SUSE Linux Enterprise Server 12 SP5 for SAP
-
SUSE Linux Enterprise Server 15(高可用性模式除外)
-
SUSE Linux Enterprise Server 15 SP1(高可用性模式除外)
-
SUSE Linux Enterprise Server 15 SP2(高可用性模式除外)
-
SUSE Linux Enterprise Server 15 SP3(高可用性模式除外)
-
SUSE Linux Enterprise Server 15 SP4(高可用性模式除外)
-
SUSE Linux Enterprise Server 12 SP4(高可用性模式除外)
-
SUSE Linux Enterprise Server 12 SP5(高可用性模式除外)
功能
CloudWatch Application Insights for SAP NetWeaver 7.0x–7.5x(包括 ABAP 平台)提供了以下功能:
-
SAP NetWeaver 工作负载自动检测
-
基于静态阈值自动创建 SAP NetWeaver 告警
-
自动识别 SAP NetWeaver 日志模式
-
SAP NetWeaver 运行状况控制面板
-
SAP NetWeaver 问题控制面板
先决条件
您须完成以下必需任务才能使用 CloudWatch Application Insights 配置 SAP NetWeaver:
-
AWS Systems Manager 启用 – 在 Amazon EC2 实例上安装 SSM Agent,并启用 SSM 实例。有关如何安装 SSM Agent 的信息,请参阅 AWS Systems Manager 用户指南中的设置 AWS Systems Manager。
-
Amazon EC2 实例角色 – 要配置 SAP NetWeaver 监控,您必须附加以下 Amazon EC2 实例角色。
-
要启用 Systems Manager,您必须附加
AmazonSSMManagedInstanceCore
角色。有关更多信息,请参阅 AWS Systems Manager 基于身份的策略示例。 -
要使实例指标和日志通过 CloudWatch 发出,您必须附加
CloudWatchAgentServerPolicy
策略。有关更多信息,请参阅创建用于 CloudWatch 代理的 IAM 角色和用户
-
-
AWS Resource Groups – 要将应用程序添加到 CloudWatch Application Insights,您必须创建一个包含应用程序堆栈所用的所有相关 AWS 资源的资源组。这包括运行 SAP NetWeaver 应用程序服务器的 Amazon EC2 实例、Amazon EFS 和 Amazon EBS 卷。如果每个账户有多个 SAP NetWeaver 系统,我们建议您创建一个资源组,且该资源组包含每个 SAP NetWeaver 系统的 AWS 资源。有关创建资源组的更多信息,请参阅 AWS 资源组和标签用户指南。
-
IAM 权限 – 对于没有管理访问权限的用户,必须创建允许 Application Insights 创建服务相关角色的 AWS Identity and Access Management(IAM)policy,并将其附加到用户身份。有关如何创建 IAM policy 的更多信息,请参阅 IAM policy。
-
服务相关角色 – Application Insights 使用 AWS Identity and Access Management(IAM)服务相关角色。当您在 Application Insights 控制台中创建首个 Application Insights 应用程序时,将会为您创建服务相关角色。有关更多信息,请参阅 在 CloudWatch Application Insights 中使用服务相关角色。
-
Amazon CloudWatch 代理 – Application Insights 安装和配置 CloudWatch 代理。如果您安装了 CloudWatch 代理,则 Application Insights 会保留您的配置。为避免合并冲突,请从现有 CloudWatch 代理配置文件中删除您想在 Application Insights 中使用的资源的配置。有关更多信息,请参阅 手动创建或编辑 CloudWatch 代理配置文件。
设置 SAP NetWeaver 应用程序服务器以进行监控
请按照以下步骤为 SAP NetWeaver 应用程序服务器设置监控。
设置监控
-
打开 CloudWatch 控制台
。 -
从左侧导航窗格中,选择 Insights 下的 Application Insights。
-
Application Insights 页面会显示使用 Application Insights 监控的应用程序列表以及每个应用程序的监控状态。在右上角,选择 Add an application(添加应用程序)。
-
在 Specify application details(指定应用程序详细信息)页面上,从 Resource group(资源组)下拉列表中选择您创建的包含 SAP NetWeaver 资源的 AWS 资源组。如果尚未为应用程序创建资源组,则可以在 Resource group(资源组)下拉列表下选择 Create new resource group(创建新资源组)来创建一个资源组。
-
在 Automatic monitoring of new resources(自动监控新资源)下,选中复选框以允许 Application Insights 自动监控在载入后添加到应用程序资源组的资源。
-
在 Monitor EventBridge events(监控 EventBridge 事件)下,选中复选框将 Application Insights 监控与 CloudWatch Events 集成,以获取 Amazon EBS、Amazon EC2、AWS CodeDeploy、Amazon ECS、AWS Health API 和通知、Amazon RDS、Amazon S3 和 AWS Step Functions 中的洞察。
-
在 Integrate with AWS Systems Manager OpsCenter(与 OpsCenter 集成)下,选中 Generate AWS Systems Manager OpsCenter OpsItems for remedial actions(生成 OpsCenter OpsItems 以采取修复措施)旁边的复选框,以在检测到所选应用程序的问题时查看问题及接收通知。要跟踪为解析与 AWS 资源相关的操作工作项(称为 OpsItems)而执行的操作,请提供 SNS 主题 ARN。
-
您可以选择输入标签以帮助您标识和整理资源。CloudWatch Application Insights 支持基于标签和基于 AWS CloudFormation 堆栈的资源组(Application Auto Scaling 组除外)。有关更多信息,请参阅 AWS Resource Groups 和标签用户指南中的标签编辑器。
-
要查看检测到的组件,请选择下一步。
-
查看检测到的组件页面上列出了 CloudWatch Application Insights 自动检测到的受监控组件及其工作负载。
-
如需编辑工作负载类型和名称,请选择编辑组件。
注意
包含检测到的 NetWeaver 分布式或 NetWeaver 高可用性工作负载的组件仅支持一个组件一个工作负载。
-
-
选择下一步。
-
在 Specify component details(指定组件详细信息)页面上,选择 Next(下一步)。
-
查看应用程序监控配置,然后选择提交。
-
应用程序详细信息页面会打开,您可以在其中查看应用程序摘要、控制面板、组件和工作负载。您还可以查看 Configuration history(配置历史记录)、Log patterns(日志模式)和已创建的任何 Tags(标签)。在您提交应用程序后,CloudWatch Application Insights 会为您的 SAP NetWeaver 系统部署所有指标和告警,这最多可能需要一小时。
管理 SAP NetWeaver 应用程序服务器的监控
请按照以下步骤管理 SAP NetWeaver 应用程序服务器的监控。
管理监控
-
打开 CloudWatch 控制台
。 -
从左侧导航窗格中,选择 Insights 下的 Application Insights。
-
选择 List view(列表视图)选项卡。
-
Application Insights 页面会显示使用 Application Insights 监控的应用程序列表以及每个应用程序的监控状态。
-
选择您的应用程序。
-
选择 Components(组件)选项卡。
-
在 Monitored components(已监控组件)下,选择组件名称旁边的单选按钮。然后,选择 Manage monitoring(管理监控)。
-
在 Instance logs(实例日志)下,您可以更新现有的日志路径、日志模式集和日志组名称。此外,您可以额外添加最多三个 Application logs(应用程序日志)。
-
在 Metrics(指标)下,您可以根据自己的要求选择 SAP NetWeaver 指标。SAP NetWeaver 指标名称的前缀是
sap
。每个组件可以添加最多 40 个指标。 -
在Custom alarms(自定义告警)下,您可以添加可由 CloudWatch Application Insights 监控的额外告警。
-
查看应用程序监控配置并选择 Save(保存)。提交配置时,您的账户会为 SAP NetWeaver 系统更新所有指标和告警。
查看和排查 CloudWatch Application Insights 检测到的 SAP NetWeaver 问题
以下部分提供的步骤可帮助您解决在 Application Insights 上为 SAP NetWeaver 配置监控时出现的常见问题排查情况。
SAP NetWeaver 数据库连接问题
描述
您的 SAP NetWeaver 应用程序出现数据库连接问题。
原因
您可以前往 CloudWatch Application Insights 控制台并查看 SAP NetWeaver Application Insights 问题控制面板来确定连接问题。选择 Problem summary(问题摘要)下的链接以查看特定问题。
在以下示例中,Problem summary(问题摘要)下的 SAP: Availability(SAP:可用性)是出现的问题。
紧接在 Problem summary(问题摘要)之后,Insight(洞察)部分提供了有关错误的更多上下文,您可以从中获得有关问题原因的更多信息。
在同一个问题控制面板上,您可以查看问题检测功能汇总在一起的相关日志和指标,以帮助您找出错误原因。sap_alerts_Availability
指标可跟踪 SAP NetWeaver 系统随时间变化的可用性。您可以使用历史跟踪功能来关联该指标何时启动错误状态或超出告警阈值。在以下示例中,SAP NetWeaver 系统存在可用性问题。该示例显示了两个告警,因为有两个 SAP 应用程序服务器实例,系统为每个实例创建了一个告警。
如要了解有关每个告警的更多信息,请将鼠标悬停在 sap_alerts_Availability
指标名称上。
在以下示例中,sap_alerts_Database
指标显示数据库层存在问题或故障。该告警表明 SAP NetWeaver 在连接到其数据库或与其数据库通信时出现了问题。
由于数据库是 SAP NetWeaver 的关键资源,因此当数据库出现问题或故障时,您可能会收到许多相关的告警。在以下示例中,由于数据库不可用,系统启动了 sap_alerts_FrontendResponseTime
和 sap_alerts_LongRunners
指标。
解决方案
Application Insights 按小时监测检测到的问题。如果 SAP NetWeaver 日志文件中没有新的相关日志条目,则较旧的日志条目将被视为已解决。您必须修复与 CloudWatch 告警相关的任何错误条件。修复错误条件后,在恢复告警和日志时告警会得到解决。解决所有 CloudWatch 日志错误和告警后,Application Insights 将停止检测错误,问题将在一小时内自动解决。我们建议您解决所有日志错误条件和告警,这样您就可以在问题控制面板上看到最新的问题。
以下示例中解决了 SAP 可用性问题。
SAP NetWeaver 应用程序可用性问题
描述
SAP NetWeaver 高可用性入队复制停止运行。
原因
您可以前往 CloudWatch Application Insights 控制台并查看 SAP NetWeaver Application Insights 问题控制面板来确定连接问题。选择 Problem summary(问题摘要)下的链接以查看特定问题。
在以下示例中,Problem summary(问题摘要)下的高可用性入队复制是出现的问题。
紧接在 Problem summary(问题摘要)之后,Insight(洞察)部分提供了有关错误的更多上下文,您可以从中获得有关问题原因的更多信息。
以下示例显示了问题控制面板,您可以在其中查看分组的日志和指标,以帮助您找出错误原因。sap_enqueue_server_replication_state
指标可随时间跟踪该值。您可以使用历史跟踪功能来关联该指标何时启动错误状态或超出告警阈值。
在以下示例中,ha_cluster_pacemaker_fail_count
指标显示高可用性 Pacemaker 集群出现了资源故障。组件控制面板中标识了故障次数大于或等于 1 的特定 Pacemaker 资源。
以下示例显示了 sap_alerts_Shortdumps
指标,该指标表明在检测到问题时 SAP 应用程序的性能有所降低。
日志
这些日志条目有助于更好地了解在检测到问题时 SAP NetWeaver 层出现的问题。问题控制面板中的日志组小组件显示了问题发生的具体时间。
要查看有关日志的详细信息,请选择右上角的三个垂直点,然后选择 View in CloudWatch Logs Insights(在 CloudWatch Logs Insights 中查看)。
请按照以下步骤获取有关问题控制面板中显示的指标和告警的更多信息。
获取有关指标和告警的更多信息
-
打开 CloudWatch 控制台
。 -
在左侧导航窗格中,选择 Insights 下的 Application Insights。然后,选择 List view(列表视图)选项卡,并选择您的应用程序。
-
选择 Components(组件)选项卡。然后,选择您想要获取更多相关信息的 SAP NetWeaver 组件。
以下示例显示了 HA Metrics(HA 指标)部分,其中包含问题控制面板中显示的
ha_cluster_pacemaker_fail_count
指标。
解决方案
Application Insights 按小时监测检测到的问题。如果 SAP NetWeaver 日志文件中没有新的相关日志条目,则较旧的日志条目将被视为已解决。您必须修复与此问题相关的任何错误条件。
对于 sap_alerts_Shortdumps
告警,您必须使用事务代码 RZ20 → R3Abap →
Shortdumps
导航到 CCMS 警报,以解决 SAP NetWeaver 系统中的警报。有关 CCMS 警报的更多信息,请参阅 SAP 网站
解决所有 CloudWatch 日志错误和告警后,Application Insights 将停止检测错误,问题将在一小时内自动解决。我们建议您解决所有日志错误条件和告警,这样您就可以在问题控制面板上看到最新的问题。以下示例中解决了 SAP NetWeaver 高可用性入队复制问题。
排查 Application Insights for SAP NetWeaver 的问题
本节提供了帮助您解决 Application Insights 控制面板返回的常见错误的步骤。
无法添加超过 60 个监控指标
返回错误:Component cannot have more than 60 monitored metrics.
根本原因:The current metric limit is 60 monitor metrics per component.
解决方法:删除遵守限制所不需要的指标。
SAP 指标在载入过程后未显示在控制面板上
根本原因:组件控制面板使用五分钟的指标周期来聚合数据点。
解决方法:所有指标应在五分钟后显示在控制面板上。
SAP 指标和告警未显示在控制面板上
请按照以下步骤来确定为什么 SAP 指标和告警在载入过程后未显示在控制面板上。
使用指标和告警来确定问题
-
打开 CloudWatch 控制台
。 -
在左侧导航窗格中,选择 Insights 下的 Application Insights。然后,选择 List view(列表视图)选项卡,并选择您的应用程序。
-
选择 Configuration history(配置历史记录)选项卡。
-
如果您发现缺少指标数据点,请检查与
prometheus-sap_host_exporter
相关的错误。 -
如果您在上一步中没有发现错误,请连接到 Linux 实例。对于高可用性部署,请连接到主集群 Amazon EC2 实例。
-
在您的实例中,使用以下命令验证导出器是否正在运行。默认端口为
9680
。如果您使用的是其他端口,请将9680
替换为您正在使用的端口。curl localhost:9680/metrics
如果没有返回数据,则导出器启动失败。
-
要查找在接下来的两个步骤用于
WORKLOAD_SHORT_NAME
的正确命名约定,请运行以下命令。注意
Application Insights 根据正在运行的工作负载在服务名称中添加后缀
WORKLOAD_SHORT_NAME
。NetWeaver 分布式、标准和高可用性部署的简称分别为SAP_NWD
、SAP_NWS
和SAP_NWH
。sudo systemctl | grep exporter
-
要检查导出器服务日志中是否存在错误,请运行以下命令:
sudo journalctl -e --unit=prometheus-sap_host_exporter_
WORKLOAD_SHORT_NAME
.service -
要检查导出器管理器服务日志中是否存在错误,请运行以下命令:
sudo journalctl -e --unit=prometheus-sap_host_exporter_manager_
WORKLOAD_SHORT_NAME
.service注意
此服务应始终处于启动和运行状态。
如果此命令未返回错误,则继续执行下一步。
-
要手动启动导出器,请运行以下命令。然后,检查导出器的输出。
sudo /opt/aws/sap_host_exporter/sap_host_exporter
检查错误后,可以退出导出器进程。
根本原因:有多种可能的原因会导致此问题。一个常见的原因是导出器无法连接到其中一个应用程序服务器实例。
解决方法
请按照以下步骤将导出器连接到应用程序服务器实例。您将验证 SAP 应用程序实例是否正在运行,并使用 SAPControl 连接到该实例。
将导出器连接到应用程序服务器实例
-
在 Amazon EC2 实例中,运行以下命令验证 SAP 应用程序是否正在运行。
sapcontrol -nr <App_InstNo> -function GetProcessList
-
您必须建立有效的 SAPControl 连接。如果 SAPControl 连接不起作用,请在相关的 SAP 应用程序实例上找到问题的根本原因。
-
如要在修复 SAPControl 连接问题后手动启动导出器,请运行以下命令:
sudo systemctl start prometheus-sap_host_exporter.service
-
如果您无法解决 SAPControl 连接问题,请使用以下步骤作为临时修复方案。
-
从左侧导航窗格中,选择 State Manager(状态管理器)。
-
在 Associations(关联)下搜索 SAP NetWeaver 系统的关联。
Association Name: Equal: AWS-ApplicationInsights-SSMSAPHostExporterAssociationForCUSTOMSAPNW<SID>-1
-
选择 Association id(关联 ID)。
-
选择 Parameters(参数)选项卡,然后从 additionalArguments(附加参数)中删除应用程序服务器编号。
-
选择 Apply Association Now(立即应用关联)。
注意
这是临时修复。如果对组件的监控配置进行了更新,则将重新添加该实例。