

# 组件配置部分
<a name="component-config-sections"></a>

组件配置包括几个主要部分。组件配置的部分可以任何顺序列出。
+ **alarmMetrics（可选）**

  组件中要监控的[指标](#component-config-metric)列表。所有组件类型都可以有一个 alarmMetrics 部分。
+ **日志（可选）**

  组件中要监控的[日志](#component-configuration-log)列表。仅 EC2 实例可以具有日志部分。
+ **进程（可选）**

  要为组件监控的[进程](#component-configuration-process)的列表。仅 EC2 实例可以具有进程部分。
+ **subComponents（可选）**

  组件的嵌套实例和卷子组件配置。以下类型的组件可以具有嵌套实例和一个子组件部分：ELB、ASG、自定义分组的 EC2 实例和 EC2 实例。
+ **警报（可选）**

  要为组件监控的[警报](#component-configuration-alarms)的列表。所有组件类型都可以有一个警报部分。
+ **windowsEvents（可选）**

  要为组件监控的 [Windows 事件](#windows-events)的列表。只有 EC2 实例上的 Windows 有 `windowsEvents` 部分。
+ **JMXPrometheusExporter（可选）**

  JMXPrometheus Exporter 配置。
+ **hanaPrometheusExporter（可选）**

  SAP HANA Prometheus Exporter 配置。
+ **haClusterPrometheusExporter（可选）**

  HA Cluster Prometheus Exporter 配置。
+ **netWeaverPrometheusExporter（可选）**

  SAP NetWeaver Prometheus Exporter 配置。
+ **sapAsePrometheusExporter（可选）**

  SAP ASE Prometheus Exporter 配置。

以下示例显示 JSON 格式的 **subComponents 部分片段**的语法。

```
[
  {
    "subComponentType" : "AWS::EC2::Instance",
    "alarmMetrics" : [
      list of alarm metrics
    ],
    "logs" : [
      list of logs
    ],
    "processes": [
      list of processes
    ],
    "windowsEvents" : [
      list of windows events channels configurations
    ]
  },
  {
    "subComponentType" : "AWS::EC2::Volume",
    "alarmMetrics" : [
      list of alarm metrics
    ]
  }
]
```

## 组件配置部分属性
<a name="component-config-properties"></a>

这部分描述各部件配置部分的属性。

**Topics**
+ [指标](#component-config-metric)
+ [Log](#component-configuration-log)
+ [流程](#component-configuration-process)
+ [JMX Prometheus Exporter](#component-configuration-prometheus)
+ [HANA Prometheus Exporter](#component-configuration-hana-prometheus)
+ [HA Cluster Prometheus Exporter](#component-configuration-ha-cluster-prometheus)
+ [NetWeaver Prometheus Exporter](#component-configuration-netweaver-prometheus)
+ [SAP ASE Prometheus Exporter](#component-configuration-sap-ase-prometheus)
+ [Windows 事件](#windows-events)
+ [警报](#component-configuration-alarms)

### 指标
<a name="component-config-metric"></a>

定义组件中要监控的指标。

**JSON** 

```
{
  "alarmMetricName" : "monitoredMetricName",
  "monitor" : true/false
}
```

**属性**
+ **alarmMetricName（必需）**

  组件中待监控指标的名称。有关 Application Insights 支持的指标的信息，请参阅 [Amazon CloudWatch Application Insights 支持的日志和指标](appinsights-logs-and-metrics.md)。
+ **监控（可选）**

  布尔值，指示是否监控指标。默认值为 `true`。

### Log
<a name="component-configuration-log"></a>

定义组件中要监控的日志。

**JSON** 

```
{
  "logGroupName" : "logGroupName",
  "logPath" : "logPath",
  "logType" : "logType",
  "encoding" : "encodingType",
  "monitor" : true/false
}
```

**属性**
+ **logGroupName（必需）**

  要与监控日志关联的 CloudWatch 日志组名称。对于日志组名称约束的信息，请参阅 [CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)。
+ **logPath（EC2 实例组件需要；不使用 CloudWatch 代理的组件不需要，例如 AWS Lambda）**

  要监控的日志路径。日志路径必须是 Windows 系统文件绝对路径。有关更多信息，请参阅 [CloudWatch 代理配置文件：日志部分](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html#CloudWatch-Agent-Configuration-File-Logssection)。
+ **logType（必需）**

  日志类型决定 Application Insights 分析日志时所依据的日志模式。从以下选项中选择日志类型：
  + `SQL_SERVER`
  + `MYSQL`
  + `MYSQL_SLOW_QUERY`
  + `POSTGRESQL`
  + `ORACLE_ALERT`
  + `ORACLE_LISTENER`
  + `IIS`
  + `APPLICATION`
  + `WINDOWS_EVENTS`
  + `WINDOWS_EVENTS_ACTIVE_DIRECTORY`
  + `WINDOWS_EVENTS_DNS`
  + `WINDOWS_EVENTS_IIS`
  + `WINDOWS_EVENTS_SHAREPOINT`
  + `SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP`
  + `SQL_SERVER_FAILOVER_CLUSTER_INSTANCE`
  + `DEFAULT`
  + `CUSTOM`
  + `STEP_FUNCTION`
  + `API_GATEWAY_ACCESS`
  + `API_GATEWAY_EXECUTION`
  + `SAP_HANA_LOGS`
  + `SAP_HANA_TRACE`
  + `SAP_HANA_HIGH_AVAILABILITY`
  + `SAP_NETWEAVER_DEV_TRACE_LOGS`
  + `PACEMAKER_HIGH_AVAILABILITY`
+ **编码（可选）**

  要监控的日志的编码类型。指定的编码应包含在 [CloudWatch 代理支持的编码](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html)列表中。如果未提供，CloudWatch Application Insights 将对 utf-8 类型使用默认编码，以下除外：
  +  `SQL_SERVER`：utf-16 编码
  +  `IIS`：ascii 编码
+ **监控（可选）**

  布尔值，用于指示是否监控日志。默认值为 `true`。

### 流程
<a name="component-configuration-process"></a>

定义组件待监控的过程。

**JSON** 

```
{
  "processName" : "monitoredProcessName",
  "alarmMetrics" : [
      list of alarm metrics
  ] 
}
```

**属性**
+ **processName（必需）**

  组件待监控的过程名称。进程名称不能包含进程主干，如 `sqlservr` 或 `sqlservr.exe`。
+ **alarmMetrics（必需）**

  此进程要监控的[指标](#component-config-metric)的列表。要查看 CloudWatch Application Insights 支持的进程指标，请参阅 [Amazon Elastic Compute Cloud (EC2)](appinsights-metrics-ec2.md)。

### JMX Prometheus Exporter
<a name="component-configuration-prometheus"></a>

定义 JMX Prometheus Exporter 设置。

**JSON** 

```
"JMXPrometheusExporter": {
  "jmxURL" : "JMX URL",
  "hostPort" : "The host and port",
  "prometheusPort" : "Target port to emit Prometheus metrics"
}
```

**属性**
+ **jmxURL（可选）**

  要连接到的完整 JMX URL。
+ **hostPort（可选）**

  要通过远程 JMX 连接的主机和端口。只能指定 `jmxURL` 和 `hostPort` 中的一个。
+ **prometheusPort（可选）**

  要向其发送 Prometheus 指标的目标端口。如果未指定，则使用默认端口 9404。

### HANA Prometheus Exporter
<a name="component-configuration-hana-prometheus"></a>

定义 HANA Prometheus Exporter 设置。

**JSON** 

```
"hanaPrometheusExporter": {
    "hanaSid": "SAP HANA  SID",
    "hanaPort": "HANA database port",
    "hanaSecretName": "HANA secret name",
    "prometheusPort": "Target port to emit Prometheus metrics"
}
```

**属性**
+ **hanaSid**

  SAP HANA 系统由三个字符组成的 SAP 系统 ID (SID)。
+ **hanaPort**

  导出程序将用于查询 HANA 指标的 HANA 数据库端口。
+ **HanaSecretName**

  存储 HANA 监控用户凭证的 AWS Secrets Manager 密钥。HANA Prometheus Exporter 使用这些凭证连接到数据库并查询 HANA 指标。
+ **prometheusPort（可选）**

  Prometheus 向其发送指标的目标端口。如果未指定，则使用默认端口 9668。

### HA Cluster Prometheus Exporter
<a name="component-configuration-ha-cluster-prometheus"></a>

定义 HA Cluster Prometheus Exporter 设置。

**JSON** 

```
"haClusterPrometheusExporter": {
    "prometheusPort": "Target port to emit Prometheus metrics"
}
```

**属性**
+ **prometheusPort（可选）**

  Prometheus 向其发送指标的目标端口。如果未指定，则使用默认端口 9664。

### NetWeaver Prometheus Exporter
<a name="component-configuration-netweaver-prometheus"></a>

定义 NetWeaver Prometheus Exporter 设置。

**JSON** 

```
"netWeaverPrometheusExporter": {
    "sapSid": "SAP NetWeaver  SID",
    "instanceNumbers": [ "Array of instance Numbers of SAP NetWeaver system "],
"prometheusPort": "Target port to emit Prometheus metrics"
}
```

**属性**
+ **sapSid**

  SAP NetWeaver 系统的 3 字符 SAP 系统 ID (SID)。
+ **instanceNumbers**

  SAP NetWeaver 系统的实例号数组。

  **示例：**`"instanceNumbers": [ "00", "01"]`
+ **prometheusPort（可选）**

  发送 Prometheus 指标的目标端口。如果未指定，则使用默认端口 `9680`。

### SAP ASE Prometheus Exporter
<a name="component-configuration-sap-ase-prometheus"></a>

定义 SAP ASE Prometheus Exporter 设置。

**JSON** 

```
"sapASEPrometheusExporter": {
    "sapAseSid": "SAP ASE SID",
    "sapAsePort": "SAP ASE database port",
    "sapAseSecretName": "SAP ASE secret name",
    "prometheusPort": "Target port to emit Prometheus metrics",
    "agreeToEnableASEMonitoring": true
}
```

**属性**
+ **sapAseSid**

  SAP ASE 系统由三个字符组成的 SAP 系统 ID（SID）。
+ **sapAsePort**

  导出程序将用于查询 ASE 指标的 SAP ASE 数据库端口。
+ **sapAseSecretName**

  存储 ASE 监控用户凭证的 AWS Secrets Manager 密钥。SAP ASE Prometheus 导出程序使用这些凭证连接到数据库并查询 ASE 指标。
+ **prometheusPort（可选）**

  Prometheus 向其发送指标的目标端口。如果未指定，则使用默认端口 9399。如果有另一个 ASE 数据库使用默认端口，则我们使用端口 9499。

### Windows 事件
<a name="windows-events"></a>

定义要记录的 Windows 事件。

**JSON** 

```
{
  "logGroupName" : "logGroupName",
  "eventName" : "eventName",
  "eventLevels" : ["ERROR","WARNING","CRITICAL","INFORMATION","VERBOSE"],
  "monitor" : true/false
}
```

**属性**
+ **logGroupName（必需）**

  要与监控日志关联的 CloudWatch 日志组名称。对于日志组名称约束的信息，请参阅 [CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)。
+ **eventName（必需）**

  要记录的 Windows 事件的类型。这等同于 Windows 事件日志通道名称。例如，系统、安全、CustomEventName 等。要记录的每种类型的 Windows 事件需要使用该字段。
+ **eventLevels（必需）**

  要记录的事件级别。您必须指定要录入的每个级别。可能的值包括 `INFORMATION`、`WARNING`、`ERROR`、`CRITICAL` 和 `VERBOSE`。要记录的每种类型的 Windows 事件需要使用该字段。
+ **监控（可选）**

  布尔值，用于指示是否监控日志。默认值为 `true`。

### 警报
<a name="component-configuration-alarms"></a>

定义要为组件监控的 CloudWatch 告警。

**JSON** 

```
{
  "alarmName" : "monitoredAlarmName",
  "severity" : HIGH/MEDIUM/LOW
}
```

**属性**
+ **alarmName（必需）**

  要为组件监控的 CloudWatch 告警的名称。
+ **严重性（可选）**

  指示告警关闭时的中断程度。