

# Amazon CloudWatch Application Insights 작동 방식
<a name="appinsights-how-works"></a>

CloudWatch Application Insights는 애플리케이션 리소스의 모니터링을 제공합니다. 다음 정보는 Application Insights의 작동 방식을 설명합니다.

**Topics**
+ [Application Insights가 애플리케이션을 모니터링하는 방식](#appinsights-how-works-sub)
+ [데이터 보존](#appinsights-retention)
+ [할당량](#appinsights-limits)
+ [CloudWatch Application Insights에서 사용하는 AWS Systems Manager(SSM) 패키지](appinsights-ssm-packages.md)
+ [CloudWatch Application Insights에서 사용하는 AWS Systems Manager(SSM) 문서](appinsights-ssm-documents.md)

## Application Insights가 애플리케이션을 모니터링하는 방식
<a name="appinsights-how-works-sub"></a>

다음 정보는 Application Insights가 애플리케이션을 모니터링하는 방법을 설명합니다.

**애플리케이션 검색 및 구성**  
애플리케이션이 CloudWatch Application Insights에 처음 추가되면 Application Insights는 애플리케이션 구성 요소를 검색하여 애플리케이션에 대해 모니터링할 주요 지표, 로그, 기타 데이터 원본을 권장합니다. 그러면 이러한 권장 사항을 기반으로 애플리케이션을 구성할 수 있습니다.

**데이터 사전 처리**  
CloudWatch Application Insights는 애플리케이션 리소스 전반에서 모니터링되는 데이터 원본을 지속적으로 분석하여 지표 이상 및 로그 오류를 발견합니다(관찰).

**지능형 문제 감지**  
CloudWatch Application Insights 엔진은 분류 알고리즘과 기본 제공 규칙을 사용하여 관찰을 상호 연결함으로써 애플리케이션의 문제를 감지합니다. 문제 해결을 돕기 위해 문제에 대한 상황별 정보가 포함된 자동 CloudWatch 대시보드를 만듭니다.

**알림 및 작업**  
CloudWatch Application Insights는 애플리케이션 관련 문제를 감지하면 CloudWatch Events를 생성하여 문제를 알려 줍니다. 이러한 이벤트를 설정하는 방법에 대한 자세한 내용은 [감지된 문제에 대한 Application Insights CloudWatch Events](appinsights-cloudwatch-events.md) 단원을 참조하세요. 또한 [Amazon SNS 알림을 구성](appinsights-problem-notifications.md)하여 감지된 문제에 대한 알림을 수신할 수 있습니다.

**예제 시나리오**

SQL Server 데이터베이스가 지원하는 ASP .NET 애플리케이션이 있습니다. 갑자기 메모리 부족 문제가 발생하여 데이터베이스가 오작동하기 시작합니다. 이로 인해 애플리케이션 성능이 저하되고 웹 서버 및 로드 밸런서에서 HTTP 500 오류가 발생할 수 있습니다.

CloudWatch Application Insights 및 지능형 분석을 사용하면 동적으로 생성된 대시보드에서 관련 지표 및 로그 파일 조각을 확인하여 문제를 일으키는 애플리케이션 계층을 식별할 수 있습니다. 이 경우 SQL 데이터베이스 계층에 문제가 있을 수 있습니다.

## 데이터 보존
<a name="appinsights-retention"></a>

CloudWatch Application Insights는 55일 동안 문제를 유지하고 60일 동안 관찰을 유지합니다.

## 할당량
<a name="appinsights-limits"></a>

CloudWatch Application Insights의 기본 할당량은 [Amazon CloudWatch Application Insights 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/applicationinsights.html) 단원을 참조하세요. 별도로 명시되지 않는 한 각 할당량은 AWS 리전별로 적용됩니다. 서비스 할당량 증가를 요청하려면 [AWS Support](https://console.aws.amazon.com/support/home#/case/create?issueType=technical)에 문의하세요. 많은 서비스에는 변경할 수 없는 할당량이 포함되어 있습니다. 특정 서비스의 할당량에 대한 자세한 내용은 해당 서비스 설명서를 참조하세요.

# CloudWatch Application Insights에서 사용하는 AWS Systems Manager(SSM) 패키지
<a name="appinsights-ssm-packages"></a>

이 섹션에 나열된 패키지는 Application Insights에서 사용하며 AWS Systems Manager Distributor를 통해 개별적으로 관리하고 배포할 수 있습니다. SSM Distributor에 대한 자세한 내용은 *AWS Systems Manager 사용 설명서*의 [AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) 단원을 참조하세요.

**Topics**
+ [`AWSObservabilityExporter-JMXExporterInstallAndConfigure`](#configure-java)
+ [`AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure`](#appinsights-ssm-sap-prometheus)
+ [`AWSObservabilityExporter-HAClusterExporterInstallAndConfigure`](#appinsights-ssm-sap-prometheus-ha)
+ [`AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure`](#appinsights-ssm-sap-host-exporter)
+ [`AWSObservabilityExporter-SQLExporterInstallAndConfigure`](#appinsights-ssm-sql-prometheus)

## `AWSObservabilityExporter-JMXExporterInstallAndConfigure`
<a name="configure-java"></a>

Application Insights의 [Prometheus JMX Exporter](https://prometheus.io/docs/instrumenting/exporters/#third-party-exporters)에서 워크로드별 Java 지표를 검색하여 경보를 구성하고 모니터링할 수 있습니다. Application Insights 콘솔의 [**모니터링 관리(Manage monitoring)**] 페이지에 있는 [**애플리케이션 티어(Application tier)**] 드롭다운에서 [**JAVA 애플리케이션(JAVA application)**]을 선택합니다. 그런 다음, [**JAVA Prometheus Exporter 구성(JAVA Prometheus exporter configuration)**]에서 [**수집 방법(Collection method)**] 및 [**JMX 포트 번호(JMX port number)**]를 선택합니다.

[AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html)를 사용하여 Application Insights와 별도로 AWS 제공 Prometheus JMX Exporter 패키지를 패키징하고 설치하며 구성하려면 다음 단계를 완료합니다.

**Prometheus JMX Exporter SSM 패키지를 사용하기 위한 사전 조건**
+ SSM Agent 버전 2.3.1550.0 이상이 설치되어 있어야 합니다.
+ JAVA\$1HOME 환경 변수가 설정되어 있어야 합니다.

**`AWSObservabilityExporter-JMXExporterInstallAndConfigure` 패키지 설치 및 구성**  
`AWSObservabilityExporter-JMXExporterInstallAndConfigure` 패키지는 [Prometheus JMX Exporter](https://github.com/prometheus/jmx_exporter)를 설치하고 구성하는 데 사용할 수 있는 SSM Distributor 패키지입니다. Prometheus JMX Exporter가 Java 지표를 전송하면 CloudWatch 서비스의 지표를 검색하도록 CloudWatch 에이전트를 구성할 수 있습니다.

1. 기본 설정을 기반으로 Prometheus GitHub 리포지토리에 위치한 [Prometheus JMX Exporter YAML 구성 파일](https://github.com/prometheus/jmx_exporter#configuration)을 준비합니다. 예제 구성 및 옵션 설명을 사용하여 안내합니다.

1. Base64로 인코딩된 Prometheus JMX Exporter YAML 구성 파일을 [SSM 파라미터 스토어](https://console.aws.amazon.com/systems-manager/parameters)의 새 SSM 파라미터에 복사합니다.

1. [SSM Distributor](https://console.aws.amazon.com/systems-manager/distributor) 콘솔로 이동하여 **Amazon 소유(Owned by Amazon)** 탭을 엽니다. [**AWSObservabilityExporter-JMXExporterInstallAndConfigure**]를 선택하고 [**일회 설치(Install one time)**]를 선택합니다.

1. "추가 인수"를 다음으로 대체하여 첫 번째 단계에서 생성한 SSM 파라미터를 업데이트합니다.

   ```
   {
     "SSM_EXPORTER_CONFIGURATION": "{{ssm:<SSM_PARAMETER_STORE_NAME>}}",
     "SSM_EXPOSITION_PORT": "9404"
   }
   ```
**참고**  
포트 9404는 Prometheus JMX 지표를 전송하는 데 사용되는 기본 포트입니다. 이 포트를 업데이트할 수 있습니다.

**예: Java 지표를 검색하도록 CloudWatch 에이전트 구성**

1. 이전 절차에서 설명한 대로 Prometheus JMX Exporter를 설치합니다. 그런 다음, 포트 상태를 확인하여 인스턴스에 올바르게 설치되었는지 확인합니다.

   Windows 인스턴스에서의 성공적인 설치 예

   ```
   PS C:\> curl http://localhost:9404 (http://localhost:9404/)
   StatusCode : 200
   StatusDescription : OK
   Content : # HELP jvm_info JVM version info
   ```

   Linux 인스턴스에서의 성공적인 설치 예

   ```
   $ curl localhost:9404
   # HELP jmx_config_reload_failure_total Number of times configuration have failed to be reloaded.
   # TYPE jmx_config_reload_failure_total counter
   jmx_config_reload_failure_total 0.0
   ```

1. Prometheus 서비스 검색 YAML 파일을 생성합니다. 아래에 나와 있는 서비스 검색 파일 예에서는 다음을 수행합니다.
   + Prometheus JMX Exporter 호스트 포트를 `localhost: 9404`로 지정합니다.
   + CloudWatch 지표 측정기준으로 설정할 수 있는 레이블(`Application`, `ComponentName`, `InstanceId`)을 지표에 연결합니다.

   ```
   $ cat prometheus_sd_jmx.yaml 
   - targets:
     - 127.0.0.1:9404
     labels:
       Application: myApp
       ComponentName: arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/sampl-Appli-MMZW8E3GH4H2/aac36d7fea2a6e5b
       InstanceId: i-12345678901234567
   ```

1. Prometheus JMX Exporter 구성 YAML 파일을 생성합니다. 아래에 나와 있는 구성 파일 예에서는 다음을 지정합니다.
   + 지표 검색 작업 간격 및 시간 제한 기간
   + 작업 이름, 한 번에 반환되는 최대 시계열, 서비스 검색 파일 경로를 포함하는 지표 검색 작업(`jmx` 및 `sap`)으로 스크레이핑이라고도 함 

   ```
   $ cat prometheus.yaml 
   global:
     scrape_interval: 1m
     scrape_timeout: 10s
   scrape_configs:
     - job_name: jmx
       sample_limit: 10000
       file_sd_configs:
         - files: ["/tmp/prometheus_sd_jmx.yaml"]
     - job_name: sap
       sample_limit: 10000
       file_sd_configs:
         - files: ["/tmp/prometheus_sd_sap.yaml"]
   ```

1. CloudWatch 에이전트가 Amazon EC2 인스턴스에 설치되어 있고 버전이 1.247346.1b249759 이상인지 확인합니다. EC2 인스턴스에 CloudWatch 에이전트를 설치하려면 [CloudWatch 에이전트 설치](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html) 단원을 참조하세요. 버전을 확인하려면 [CloudWatch 에이전트 버전에 관한 정보 찾기](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/troubleshooting-CloudWatch-Agent.html#CloudWatch-Agent-troubleshooting-agent-version) 단원을 참조하세요.

1. CloudWatch 에이전트를 구성합니다. CloudWatch 에이전트 구성 파일을 구성하는 방법에 대한 자세한 내용은 [수동으로 CloudWatch 에이전트 구성 파일 생성 또는 편집](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html) 단원을 참조하세요. 아래에 나와 있는 CloudWatch 에이전트 구성 파일 예에서는 다음을 수행합니다.
   + Prometheus JMX Exporter 구성 파일 경로를 지정합니다.
   + EMF 지표 로그를 게시할 대상 로그 그룹을 지정합니다.
   + 각 지표 이름에 대해 두 세트의 측정기준을 지정합니다.
   + CloudWatch 지표 8개(지표 이름 4개 \$1 지표 이름당 측정기준 세트 2개)를 전송합니다.

   ```
   {
      "logs":{
         "logs_collected":{
            ....
         },
         "metrics_collected":{
            "prometheus":{
               "cluster_name":"prometheus-test-cluster",
               "log_group_name":"prometheus-test",
               "prometheus_config_path":"/tmp/prometheus.yaml",
               "emf_processor":{
                  "metric_declaration_dedup":true,
                  "metric_namespace":"CWAgent",
                  "metric_unit":{
                     "jvm_threads_current":"Count",
                     "jvm_gc_collection_seconds_sum":"Second",
                     "jvm_memory_bytes_used":"Bytes"
                  },
                  "metric_declaration":[
                     {
                        "source_labels":[
                           "job"
                        ],
                        "label_matcher":"^jmx$",
                        "dimensions":[
                           [
                              "InstanceId",
                              "ComponentName"
                           ],
                           [
                              "ComponentName"
                           ]
                        ],
                        "metric_selectors":[
                           "^java_lang_threading_threadcount$",
                           "^java_lang_memory_heapmemoryusage_used$",
                           "^java_lang_memory_heapmemoryusage_committed$"
                        ]
                     }
                  ]
               }
            }
         }
      },
      "metrics":{
         ....
      }
   }
   ```

## `AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure`
<a name="appinsights-ssm-sap-prometheus"></a>

Application Insights의 [Prometheus HANA 데이터베이스 Exporter](https://prometheus.io/docs/instrumenting/exporters/#third-party-exporters)에서 워크로드별 SAP HANA 지표를 검색하여 경보를 구성하고 모니터링할 수 있습니다. 자세한 내용은 이 안내서의 [모니터링을 위해 SAP HANA 데이터베이스 설정](appinsights-tutorial-sap-hana.md#appinsights-tutorial-sap-hana-set-up) 섹션을 참조하세요.

[AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html)를 사용하여 Application Insights와 별도로 AWS 제공 Prometheus HANA 데이터베이스 Exporter 패키지를 패키징하고, 설치하고, 구성하려면 다음 단계를 완료합니다.

**Prometheus HANA 데이터베이스 Exporter SSM 패키지를 사용하기 위한 사전 조건**
+ SSM Agent 버전 2.3.1550.0 이상이 설치되어 있어야 합니다.
+ SAP HANA 데이터베이스
+ Linux 운영 체제(SUSE Linux, RedHat Linux)
+ AWS Secrets Manager를 통해 SAP HANA 데이터베이스 모니터링 자격 증명을 사용한 보안 암호. 키/값 페어 형식을 사용해 보안 암호를 생성하고, 키 사용자 이름을 지정한 다음, 값에 대한 데이터베이스 사용자를 입력합니다. 두 번째 키 암호를 추가한 후 값에 암호를 입력합니다. 보안 암호 생성에 대한 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [보안 암호 생성](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)을 참조하세요. 보안 암호는 다음과 같은 형식이어야 합니다.

  ```
  {
    "username": "<database_user>",
    "password": "<database_password>"
  }
  ```

**`AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure` 패키지 설치 및 구성**  
`AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure` 패키지는 [Prometheus HANA 데이터베이스 Exporter](https://github.com/prometheus/jmx_exporter)를 설치하고 구성하는 데 사용할 수 있는 SSM Distributor 패키지입니다. Prometheus HANA 데이터베이스 Exporter가 HANA 데이터베이스 지표를 전송하면 CloudWatch 서비스의 지표를 검색하도록 CloudWatch 에이전트를 구성할 수 있습니다.

1. [SSM 파라미터 스토어](https://console.aws.amazon.com/systems-manager/parameters)에서 SSM 파라미터를 생성하여 Exporter 구성을 저장합니다. 다음은 파라미터 값의 예제입니다.

   ```
   {\"exposition_port\":9668,\"multi_tenant\":true,\"timeout\":600,\"hana\":{\"host\":\"localhost\",\"port\":30013,\"aws_secret_name\":\"HANA_DB_CREDS\",\"scale_out_mode\":true}}
   ```
**참고**  
이 예제에서 내보내기는 `SYSTEM` 데이터베이스가 활성 상태인 Amazon EC2 인스턴스에서만 실행되며 중복 지표를 피하기 위해 다른 EC2 인스턴스에서는 유휴 상태로 유지됩니다. Exporter는 `SYSTEM` 데이터베이스에서 모든 데이터베이스 테넌트 정보를 검색할 수 있습니다.

1. [SSM 파라미터 스토어](https://console.aws.amazon.com/systems-manager/parameters)에서 SSM 파라미터를 생성하여 Exporter 지표 쿼리를 저장합니다. 패키지는 둘 이상의 지표 파라미터를 적용할 수 있습니다. 각 파라미터에는 유효한 JSON 객체 형식이 있어야 합니다. 다음은 파라미터 값의 예제입니다.

   ```
   {\"SELECT MAX(TIMESTAMP) TIMESTAMP, HOST, MEASURED_ELEMENT_NAME CORE, SUM(MAP(CAPTION, 'User Time', TO_NUMBER(VALUE), 0)) USER_PCT, SUM(MAP(CAPTION, 'System Time', TO_NUMBER(VALUE), 0)) SYSTEM_PCT, SUM(MAP(CAPTION, 'Wait Time', TO_NUMBER(VALUE), 0)) WAITIO_PCT, SUM(MAP(CAPTION, 'Idle Time', 0, TO_NUMBER(VALUE))) BUSY_PCT, SUM(MAP(CAPTION, 'Idle Time', TO_NUMBER(VALUE), 0)) IDLE_PCT FROM sys.M_HOST_AGENT_METRICS WHERE MEASURED_ELEMENT_TYPE = 'Processor' GROUP BY HOST, MEASURED_ELEMENT_NAME;\":{\"enabled\":true,\"metrics\":[{\"name\":\"hanadb_cpu_user\",\"description\":\"Percentage of CPU time spent by HANA DB in user space, over the last minute (in seconds)\",\"labels\":[\"HOST\",\"CORE\"],\"value\":\"USER_PCT\",\"unit\":\"percent\",\"type\":\"gauge\"},{\"name\":\"hanadb_cpu_system\",\"description\":\"Percentage of CPU time spent by HANA DB in Kernel space, over the last minute (in seconds)\",\"labels\":[\"HOST\",\"CORE\"],\"value\":\"SYSTEM_PCT\",\"unit\":\"percent\",\"type\":\"gauge\"},{\"name\":\"hanadb_cpu_waitio\",\"description\":\"Percentage of CPU time spent by HANA DB in IO mode, over the last minute (in seconds)\",\"labels\":[\"HOST\",\"CORE\"],\"value\":\"WAITIO_PCT\",\"unit\":\"percent\",\"type\":\"gauge\"},{\"name\":\"hanadb_cpu_busy\",\"description\":\"Percentage of CPU time spent by HANA DB, over the last minute (in seconds)\",\"labels\":[\"HOST\",\"CORE\"],\"value\":\"BUSY_PCT\",\"unit\":\"percent\",\"type\":\"gauge\"},{\"name\":\"hanadb_cpu_idle\",\"description\":\"Percentage of CPU time not spent by HANA DB, over the last minute (in seconds)\",\"labels\":[\"HOST\",\"CORE\"],\"value\":\"IDLE_PCT\",\"unit\":\"percent\",\"type\":\"gauge\"}]}}
   ```

   지표 쿼리에 대한 자세한 내용은 GitHub의 [https://github.com/SUSE/hanadb_exporter/blob/master/metrics.json](https://github.com/SUSE/hanadb_exporter/blob/master/metrics.json) 리포지토리를 참조하세요.

1. [SSM Distributor](https://console.aws.amazon.com/systems-manager/distributor) 콘솔로 이동하여 **Amazon 소유(Owned by Amazon)** 탭을 엽니다. **AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure\$1**를 선택하고 **한 번만 설치(Install one time)**를 선택합니다.

1. "추가 인수"를 다음으로 대체하여 첫 번째 단계에서 생성한 SSM 파라미터를 업데이트합니다.

   ```
   {
     "SSM_EXPORTER_CONFIG": "{{ssm:<*SSM_CONFIGURATIONS_PARAMETER_STORE_NAME>*}}",
     "SSM_SID": "<SAP_DATABASE_SID>",
     "SSM_EXPORTER_METRICS_1": "{{ssm:<SSM_FIRST_METRICS_PARAMETER_STORE_NAME>}}",
     "SSM_EXPORTER_METRICS_2": "{{ssm:<SSM_SECOND_METRICS_PARAMETER_STORE_NAME>}}"
   }
   ```

1. SAP HANA 데이터베이스가 있는 Amazon EC2 인스턴스를 선택한 다음 **실행(Run)**을 선택합니다.

## `AWSObservabilityExporter-HAClusterExporterInstallAndConfigure`
<a name="appinsights-ssm-sap-prometheus-ha"></a>

Application Insights의 [Prometheus HANA 클러스터 Exporter](https://prometheus.io/docs/instrumenting/exporters/#third-party-exporters)에서 워크로드별 고가용성(HA) 클러스터 지표를 검색하여 SAP HANA 데이터베이스 고가용성 설정에 대한 경보를 구성하고 모니터링할 수 있습니다. 자세한 내용은 이 안내서의 [모니터링을 위해 SAP HANA 데이터베이스 설정](appinsights-tutorial-sap-hana.md#appinsights-tutorial-sap-hana-set-up) 섹션을 참조하세요.

[AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html)를 사용하여 Application Insights와 별도로 AWS 제공 Prometheus HA Cluster Exporter 패키지를 패키징하고, 설치하고, 구성하려면 다음 단계를 완료합니다.

**Prometheus HA Cluster Exporter SSM 패키지를 사용하기 위한 사전 조건**
+ SSM Agent 버전 2.3.1550.0 이상이 설치되어 있어야 합니다.
+ Pacemaker, Corosync, SBD 및 DRBD를 위한 HA 클러스터
+ Linux 운영 체제(SUSE Linux, RedHat Linux)

**`AWSObservabilityExporter-HAClusterExporterInstallAndConfigure` 패키지 설치 및 구성**  
`AWSObservabilityExporter-HAClusterExporterInstallAndConfigure` 패키지는 Prometheus HA Cluster Exporter를 설치하고 구성하는 데 사용할 수 있는 SSM Distributor 패키지입니다. Prometheus HANA 데이터베이스 Exporter가 클러스터 지표를 전송하면 CloudWatch 서비스의 지표를 검색하도록 CloudWatch 에이전트를 구성할 수 있습니다.

1. [SSM 파라미터 스토어](https://console.aws.amazon.com/systems-manager/parameters)에서 SSM 파라미터를 생성하여 JSON 형식으로 Exporter 구성을 저장합니다. 다음은 파라미터 값의 예제입니다.

   ```
   {\"port\":\"9664\",\"address\":\"0.0.0.0\",\"log-level\":\"info\",\"crm-mon-path\":\"/usr/sbin/crm_mon\",\"cibadmin-path\":\"/usr/sbin/cibadmin\",\"corosync-cfgtoolpath-path\":\"/usr/sbin/corosync-cfgtool\",\"corosync-quorumtool-path\":\"/usr/sbin/corosync-quorumtool\",\"sbd-path\":\"/usr/sbin/sbd\",\"sbd-config-path\":\"/etc/sysconfig/sbd\",\"drbdsetup-path\":\"/sbin/drbdsetup\",\"enable-timestamps\":false}
   ```

   Exporter 구성에 대한 자세한 내용은 GitHub의 [https://github.com/ClusterLabs/ha_cluster_exporter/blob/master/ha_cluster_exporter.yaml](https://github.com/ClusterLabs/ha_cluster_exporter/blob/master/ha_cluster_exporter.yaml) 리포지토리를 참조하세요.

1. [SSM Distributor](https://console.aws.amazon.com/systems-manager/distributor) 콘솔로 이동하여 **Amazon 소유(Owned by Amazon)** 탭을 엽니다. **AWSObservabilityExporter-HAClusterExporterInstallAndConfigure\$1**를 선택한 다음 **한 번만 설치(Install one time)**를 선택합니다.

1. "추가 인수"를 다음으로 대체하여 첫 번째 단계에서 생성한 SSM 파라미터를 업데이트합니다.

   ```
   {
     "SSM_EXPORTER_CONFIG": "{{ssm:<*SSM_CONFIGURATIONS_PARAMETER_STORE_NAME>*}}"
   }
   ```

1. SAP HANA 데이터베이스가 있는 Amazon EC2 인스턴스를 선택한 다음 **실행(Run)**을 선택합니다.

## `AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure`
<a name="appinsights-ssm-sap-host-exporter"></a>

Application Insights용 [Prometheus SAP 호스트 내보내기 도구](https://prometheus.io/docs/instrumenting/exporters/#third-party-exporters)에서 워크로드별 SAP NetWeaver 지표를 검색하여 SAP NetWeaver 분산 및 High Availability 배포에 대한 경보를 구성하고 모니터링할 수 있습니다.

[AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html)를 사용하여 Application Insights와 별도로 SAP 호스트 내보내기 패키지를 패키징, 설치 및 구성하려면 다음 단계를 수행하세요.

**Prometheus SAP 호스트 내보내기 SSM 패키지를 사용하기 위한 사전 조건**
+ SSM Agent 버전 2.3.1550.0 이상이 설치되어 있어야 합니다.
+ SAP NetWeaver 애플리케이션 서버
+ Linux 운영 체제(SUSE Linux, RedHat Linux)

**`AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure` 패키지 설치 및 구성**  
`AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure` 패키지는 SAP NetWeaver Prometheus 지표 내보내기를 설치하고 구성하는 데 사용할 수 있는 SSM Distributor 패키지입니다. Prometheus 내보내기가 SAP NetWeaver 지표를 전송하면 CloudWatch 서비스의 지표를 검색하도록 CloudWatch 에이전트를 구성할 수 있습니다.

1. [SSM 파라미터 스토어](https://console.aws.amazon.com/systems-manager/parameters)에서 SSM 파라미터를 생성하여 JSON 형식으로 Exporter 구성을 저장합니다. 다음은 파라미터 값의 예제입니다.

   ```
   {\"address\":\"0.0.0.0\",\"port\":\"9680\",\"log-level\":\"info\",\"is-HA\":false}
   ```
   + **address**

     Prometheus 지표를 전송할 대상 주소입니다. 기본값은 `localhost`입니다.
   + **port**

     Prometheus 지표를 전송할 대상 포트입니다. 기본값은 `9680`입니다.
   + **is-HA**

     SAP NetWeaver High Availability 배포용 `true`. 다른 모든 배포의 경우 값은 `false`입니다.

1. [SSM Distributor](https://console.aws.amazon.com/systems-manager/distributor) 콘솔로 이동하여 **Amazon 소유(Owned by Amazon)** 탭을 엽니다. **AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure**를 선택하고 **Install one time**(한 번 설치)을 선택합니다.

1. "추가 인수"를 다음으로 대체하여 첫 번째 단계에서 생성한 SSM 파라미터를 업데이트합니다.

   ```
   {
     "SSM_EXPORTER_CONFIG": "{{ssm:<SSM_CONFIGURATIONS_PARAMETER_STORE_NAME>}}",
     "SSM_SID": "<SAP_DATABASE_SID>",
     "SSM_INSTANCES_NUM": "<instances_number seperated by comma>"
   }
   ```

   **예제**

   ```
   {
     "SSM_EXPORTER_CONFIG": "{{ssm:exporter_config_paramter}}",
     "SSM_INSTANCES_NUM": "11,12,10",
     "SSM_SID": "PR1"
   }
   ```

1. SAP NetWeaver 애플리케이션이 있는 Amazon EC2 인스턴스를 선택하고 **Run**(실행)을 선택합니다.

**참고**  
Prometheus Exporter는 로컬 엔드포인트에서 SAP NetWeaver 지표를 서비스합니다. Amazon EC2 인스턴스의 운영 체제 사용자만 로컬 엔드포인트에 액세스할 수 있습니다. 따라서 내보내기 도구 패키지가 설치된 후 모든 운영 체제 사용자가 지표를 사용할 수 있습니다. 기본 로컬 엔드포인트는 `localhost:9680/metrics`입니다.

## `AWSObservabilityExporter-SQLExporterInstallAndConfigure`
<a name="appinsights-ssm-sql-prometheus"></a>

[Prometheus SQL 내보내기](https://prometheus.io/docs/instrumenting/exporters/#third-party-exporters)에서 Application Insights에 대한 워크로드별 SQL Server 지표를 검색하여 주요 지표를 모니터링할 수 있습니다.

[AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html)를 사용하여 Application Insights와 별도로 SQL 내보내기 패키지를 패키징, 설치, 구성하려면 다음 단계를 수행하세요.

**Prometheus SQL 내보내기 SSM 패키지 사용을 위한 사전 조건**
+ SSM Agent 버전 2.3.1550.0 이상이 설치되어 있어야 합니다.
+ SQL Server 사용자 인증을 사용하도록 설정된 Windows에서 SQL Server를 실행하는 Amazon EC2 인스턴스.
+ 다음 권한이 있는 SQL Server 사용자:

  ```
  GRANT VIEW ANY DEFINITION TO
  ```

  ```
  GRANT VIEW SERVER STATE TO
  ```
+ AWS Secrets Manager를 사용하는 데이터베이스 연결 문자열이 포함된 암호. 보안 암호 생성에 대한 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [보안 암호 생성](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)을 참조하세요. 보안 암호는 다음과 같은 형식이어야 합니다.

  ```
  {
    "data_source_name":"sqlserver://<username>:<password>@localhost:1433"
  }
  ```
**참고**  
암호 또는 사용자 이름에 특수 문자가 포함된 경우 데이터베이스에 성공적으로 연결하려면 특수 문자를 퍼센트 인코딩해야 합니다.

**`AWSObservabilityExporter-SQLExporterInstallAndConfigure` 패키지 설치 및 구성**  
`AWSObservabilityExporter-SQLExporterInstallAndConfigure` 패키지는 SQL Prometheus 지표 내보내기를 설치하고 구성하는 데 사용할 수 있는 SSM Distributor 패키지입니다. Prometheus 내보내기가 지표를 전송하면 CloudWatch 에이전트가 CloudWatch 서비스에 대한 지표를 검색하도록 구성할 수 있습니다.

1. 기본 설정에 따라 SQL Exporter YAML 구성을 준비합니다. 다음 샘플 구성에는 단일 지표가 구성되어 있습니다. [예 구성](https://github.com/burningalchemist/sql_exporter/blob/master/examples/sql_exporter.yml)을 사용하여 추가 지표로 구성을 업데이트하거나 고유한 구성을 생성할 수 있습니다.

   ```
   ---
   global:
     scrape_timeout_offset: 500ms
     min_interval: 0s
     max_connections: 3
     max_idle_connections: 3
   target:
     aws_secret_name: <SECRET_NAME>
     collectors:
       - mssql_standard
   collectors:
     - collector_name: mssql_standard
       metrics: 
       - metric_name: mssql_batch_requests
         type: counter
         help: 'Number of command batches received.'
         values: [cntr_value]
         query: |
           SELECT cntr_value
           FROM sys.dm_os_performance_counters WITH (NOLOCK)
           WHERE counter_name = 'Batch Requests/sec'
   ```

1. Base64로 인코딩된 Prometheus SQL Exporter YAML 구성 파일을 [SSM 파라미터 스토어](https://console.aws.amazon.com/systems-manager/parameters)의 새 SSM 파라미터에 복사합니다.

1. [SSM Distributor](https://console.aws.amazon.com/systems-manager/distributor) 콘솔로 이동하여 **Amazon 소유(Owned by Amazon)** 탭을 엽니다. **AWSObservabilityExporter-SQLExporterInstallAndConfigure**를 선택하고 **한 번 설치**를 선택합니다.

1. ‘추가 인수’를 다음 정보로 변경하세요. `SSM_PARAMETER_NAME`은 2단계에서 생성한 파라미터의 이름입니다.

   ```
   {
     "SSM_EXPORTER_CONFIGURATION": 
       "{{ssm:<SSM_PARAMETER_STORE_NAME>}}",
       "SSM_PROMETHEUS_PORT": "9399",
       "SSM_WORKLOAD_NAME": "SQL"                         
   }
   ```

1. SQL Server 데이터베이스가 있는 Amazon EC2 인스턴스를 선택한 다음 실행을 선택합니다.

# CloudWatch Application Insights에서 사용하는 AWS Systems Manager(SSM) 문서
<a name="appinsights-ssm-documents"></a>

Application Insights는 이 섹션에 나열된 SSM 문서를 사용하여 AWS Systems Manager가 관리형 인스턴스에서 수행하는 작업을 정의합니다. 이러한 문서에서는 Systems Manager의 `Run Command` 기능을 사용하여 Application Insights 모니터링 기능을 수행하는 데 필요한 작업을 자동화합니다. 이러한 문서의 실행 일정은 Application Insights에서 관리하며 변경할 수 없습니다.

SSM 문서에 대한 자세한 내용은 **AWS Systems Manager 사용 설명서의 [AWS Systems Manager Documents](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents.html)를 참조하세요.

## CloudWatch Application Insights에서 관리하는 문서
<a name="ssm-documents-appinsights-managed"></a>

다음 표에는 Application Insights에서 관리하는 SSM 문서가 나와 있습니다.


| 문서 이름 | 설명 | 실행 일정 | 
| --- | --- | --- | 
|  `AWSEC2-DetectWorkload`  |  Application Insights에서 모니터링하도록 설정할 수 있는 애플리케이션 환경에서 실행 중인 애플리케이션을 자동으로 검색합니다.  |  이 문서는 애플리케이션 환경에서 매시간 실행되어 최신 애플리케이션 세부 정보를 제공합니다.  | 
|  `AWSEC2-CheckPerformanceCounterSets`  |  Amazon EC2 Windows 인스턴스에서 성능 카운터 네임스페이스가 활성화되어 있는지 확인합니다.  |  이 문서는 애플리케이션 환경에서 매시간 실행되며 해당 네임스페이스가 활성화된 경우에만 성능 카운터 지표를 모니터링합니다.  | 
|  `AWSEC2-ApplicationInsightsCloudwatchAgentInstallAndConfigure`  |  애플리케이션 구성 요소의 모니터링 구성을 기반으로 CloudWatch 에이전트를 설치하고 구성합니다.  |  이 문서는 CloudWatch 에이전트 구성이 항상 정확하고 최신 상태인지 확인하기 위해 30분마다 실행됩니다. 또한 이 문서는 지표 추가 또는 제거, 로그 구성 업데이트 등 애플리케이션 모니터링 설정을 변경한 직후에도 실행됩니다.  | 

## AWS Systems Manager에서 관리하는 문서
<a name="ssm-documents-aws-managed"></a>

다음 문서는 CloudWatch Application Insights에서 사용하고 Systems Manager에서 관리합니다.

**`AWS-ConfigureAWSPackage`**  
Application Insights는 이 문서를 사용하여 Prometheus 내보내기 배포자 패키지를 설치 및 제거하고, 워크로드별 지표를 수집하고, 고객 Amazon EC2 인스턴스의 워크로드를 포괄적으로 모니터링할 수 있습니다. CloudWatch Application Insights는 상관관계가 있는 대상 워크로드가 인스턴스에서 실행 중인 경우에만 Prometheus 내보내기 배포자 패키지를 설치합니다.

다음 표에는 Prometheus 내보내기 배포자 패키지와 상관관계가 있는 대상 워크로드가 나열되어 있습니다.


| Prometheus 내보내기 배포자 패키지 이름 | 워크로드 배포 | 
| --- | --- | 
|  `AWSObservabilityExporter-HAClusterExporterInstallAndConfigure`  |  SAP HANA HA  | 
|  `AWSObservabilityExporter-JMXExporterInstallAndConfigure`  |  Java/JMX  | 
|  `AWSObservabilityExporter-SAP-HANADBExporterInstallAndConfigure`  |  SAP HANA  | 
|  `AWSObservabilityExporter-SAP-SAPHostExporterInstallAndConfigure`  |  NetWeaver  | 
|  `AWSObservabilityExporter-SQLExporterInstallAndConfigure`  |  SQL Server(Windows) 및 SAP ASE(Linux)  | 

**`AmazonCloudWatch-ManageAgent`**  
Application Insights는 이 문서를 사용하여 인스턴스의 CloudWatch Agent의 상태와 구성을 관리하고, 운영 체제 전반의 Amazon EC2 인스턴스로부터 내부 시스템 수준 지표와 로그를 수집합니다.