모니터링 자산 구성 및 배치

Oracle Database 19c 및 Apache Tomcat을 사용하여 Linux ARM 호스트를 온보딩하려면 다음 작업을 완료해야 합니다.
  1. Apache Tomcat에 APM Java 에이전트를 배치합니다.
  2. 애플리케이션 끝점을 모니터하도록 합성 모니터링을 구성합니다.
  3. Management Agent를 배치합니다.
  4. 스택 모니터링에서 인프라를 검색합니다.

Application Performance Monitoring 구성

먼저 응용 프로그램 성능 모니터링을 구성합니다.

웹 브라우저에서 OCI 테넌시에 로그인합니다. Cloud Shell에서 다음 명령 대부분을 입력합니다. 익숙하지 않은 경우 관련 설명서를 참조하십시오. O&M 리소스(예: APM 도메인)에 대한 구획이 없는 경우 지금 생성합니다.
  1. ID 및 보안, 구획 페이지를 차례로 선택하고 구획 생성을 누릅니다.
  2. 다음과 같이 의미 있는 이름과 설명을 제공합니다.
    • 이름 = om-demo
    • 설명 = Compartment for Observability & Management resources
    구획이 프로비전될 때까지 1분 기다립니다. 완료되면 구획의 OCID를 확인합니다.

이제 다음을 수행합니다.

  1. Cloud Shell을 열고 다음을 수행하여 새 APM Free Tier 도메인을 생성합니다.
    1. 다음을 입력하여 O&M 리소스에 대한 구획 선택:
      export COMPARTMENT_OCID=YOUR_COMPARTMENT_OCID
    2. 다음을 입력하여 APM 도메인 이름 선택:
      export APM_DISPLAY_NAME=demoapm01 
      
      oci apm-control-plane apm-domain create --compartment-id $COMPARTMENT_OCID --display-name $APM_DISPLAY_NAME --is-free-tier TRUE --wait-for-state SUCCEEDED --wait-interval-seconds 15 
  2. 관찰 가능성 및 관리, Application Performance Monitoring, 관리를 차례로 선택하여 생성 상태를 표시합니다(올바른 구획을 선택해야 함).
    도메인이 만들어질 때까지 기다립니다. 5분 정도 걸립니다. 다음 명령을 사용하여 Cloud 셸을 사용하여 진행률을 확인할 수도 있습니다.
    export COMPARTMENT_OCID=YOUR_COMPARTMENT_OCID 
    
    oci apm-control-plane apm-domain list --compartment-id $COMPARTMENT_OCID --all --query "data[].{\"display-name\":\"display-name\",\"lifecycle-state\":\"lifecycle-state\",\"id\":\"id\"}" --output table 
    다음과 같은 응답이 표시됩니다.
    +--------------+-----------------------------+-----------------+
    | display-name | id                          | lifecycle-state |
    +--------------+-----------------------------+-----------------+
    | demoapm01    | ocid1.apmdomain.oc1.***.*** | ACTIVE          |
    +--------------+-----------------------------+-----------------+
  3. APM 도메인 OCID를 기록하고 다음 명령을 입력하여 data-upload-endpointdatakeys를 생성합니다(나중에 Java APM 에이전트를 설치하는 데 사용됨).
    export APM_OCID=YOUR_APM_DOMAIN_OCID
    
    oci apm-control-plane apm-domain get --apm-domain-id $APM_OCID --query "data.{\"data-upload-endpoint\":\"data-upload-endpoint\"}" --output table
    
    oci apm-control-plane data-key list --apm-domain-id $APM_OCID --all --query "data[].{\"name\":\"name\",\"type\":\"type\",\"value\":\"value\"}" --output table
    
    다음과 같은 응답이 표시됩니다.
    +-----------------------------------------------------------------------------+
    | data-upload-endpoint                                                        |
    +-----------------------------------------------------------------------------+
    | https://***.apm-agt.***.oci.oraclecloud.com                                 |
    +-----------------------------------------------------------------------------+ 
    
    +--------------------------------+---------+----------------------------------+
    | name                           | type    | value                            |
    +--------------------------------+---------+----------------------------------+
    | auto_generated_private_datakey | PRIVATE | ******************************** |
    | auto_generated_public_datakey  | PUBLIC  | ******************************** |
    +--------------------------------+---------+----------------------------------+
  4. Observability & Management, Application Performance Monitoring, 관리를 차례로 선택하고 [APM 에이전트 다운로드] 페이지에서 Java 에이전트를 다운로드합니다.
  5. JAR 파일을 각 Apache Tomcat 호스트에 복사합니다.
    [tomcat@stvociapp021 ~]$ pwd
    /home/tomcat
    [tomcat@stvociapp021 ~]$ ls -l apm-java-agent-installer-1.10.1.3.jar
    -rwxrwxr-x. 1 tomcat tomcat 11741769 Jul 26 07:39 apm-java-agent-installer-1.10.1.3.jar
    [tomcat@stvociapp021 ~]$
    
  6. 다음 명령을 사용하여 Tomcat 유저와 함께 Java Agent를 설치합니다(고유 환경에 따라 VARIABLES 구성).
    1. Apache Tomcat 설치 홈 경로를 설정합니다.
      export APM_INSTALL_DESTINATION=/opt/tomcat 
    2. APM 설치 JAR 전체 경로를 설정합니다.
      export APM_INSTALLER=/home/tomcat/apm-java-agent-installer-1.10.1.3.jar 
    3. APM 도메인 익스포트에 사용할 서비스 이름 선택:
      APM_SERVICE_NAME=apex_tomcat_service
    4. APM 도메인 정보 추가:
      export APM_PRIVATE_KEY=YOUR_PRIVATE_KEY 
      export APM_ENDPOINT=YOUR_APM_ENDPOINT 
      export APM_PUBLIC_KEY=YOUR_PUBLIC_KEY
    5. 필요한 경우 추가 APM 옵션(예: 스레드 스냅샷 또는 APM 브라우저 에이전트 삽입 사용)을 추가합니다.
      export APM_ADDITIONAL_OPTIONS="-property=com.oracle.apm.agent.deepdive.trace.snapshots.collection.enable=true" 
    6. JAVA_HOMEPATH 변수를 설정합니다.
      export JAVA_HOME=PATH_TO_JAVA_HOME 
      export PATH=$JAVA_HOME/bin:$PATH
    7. APM Java 에이전트를 설치합니다.
      java -jar ${APM_INSTALLER} provision-agent -service-name=${APM_SERVICE_NAME} -destination=${APM_INSTALL_DESTINATION} -private-data-key=${APM_PRIVATE_KEY} -data-upload-endpoint=${APM_ENDPOINT} ${APM_ADDITIONAL_OPTIONS} -public-data-key=${APM_PUBLIC_KEY}
  7. javaagent 등록 정보를 추가하여 Apache Tomcat JAVA_OPTS를 수정합니다. 예를 들면 다음과 같습니다.
    export JAVA_OPTS="-Dconfig.url=${ORDS_CONFIG} -Xms1024M -Xmx4096M -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true -javaagent:${TOMCAT_HOME}/oracle-apm-agent/bootstrap/ApmAgent.jar "
  8. Apache Tomcat을 다시 시작합니다.
  9. Java Agent 로그 파일을 확인합니다(TOMCAT_HOME를 Tomcat 설치 홈 경로로 변경).
    ls -l ${TOMCAT_HOME}/oracle-apm-agent/log/*/Agent* 
  10. 마지막으로 Observability & Management, Application Performance Monitoring, Trace Explorer를 차례로 선택하고 추적이 올바르게 수집되었는지 확인합니다.

합성 모니터링 구성

Apache Tomcat에서 APM Java 에이전트를 구성한 후 모니터를 생성하여 애플리케이션에서 사용자 작업을 시뮬레이션할 수 있습니다. OCI 콘솔 또는 OCI Cloud Shell을 사용하여 프로그래밍 방식으로 OCI 리소스를 생성합니다.

Synthetic Monitoring 페이지(Observability & Management, Application Performance Monitoring, Synthetic Monitoring)로 이동하여 애플리케이션 끝점을 지속적으로 테스트할 모니터를 생성합니다.

클라우드 셸을 열어 애플리케이션에 대한 BROWSER 모니터를 빠르게 생성합니다. 그런 후에 다음을 수행합니다.

  1. 사용 가능한 유리한 위치 목록을 가져옵니다.
    export APM_OCID=YOUR_APM_DOMAIN_OCID 
    
    oci apm-synthetics public-vantage-point-collection list-public-vantage-points --apm-domain-id $APM_OCID 
  2. 애플리케이션 끝점을 테스트합니다(이 예에서는 애슈번 영역을 사용하여 해당 끝점을 테스트합니다).
    echo "[\"OraclePublic-us-ashburn-1\"]" > $HOME/vantage_points.json
  3. 가용성 구성에 대한 JSON 파일을 생성합니다.
    echo {\"maxAllowedFailuresPerInterval\": 0, \"minAllowedRunsPerInterval\": 1} >  availability_configuration.json
  4. 네트워크 측정에 대한 JSON 파일을 생성합니다.
    echo {\"probeMode\": \"SACK\",  \"probePerHop\": 3,  \"protocol\": \"TCP\" } > network_measurements.json
  5. 마지막으로 모니터를 생성합니다.
    1. APM 도메인 식별:
      export APM_OCID=YOUR_APM_DOMAIN_OCID
    2. 모니터 이름을 제공합니다.
      export MONITOR_DISPLAY_NAME=demo-monitor-01 
    3. 애플리케이션 끝점 URL을 제공하십시오.
      export MONITOR_TARGET=http://LOAD_BALANCER_PUBLIC_IP/APPLICATION_TEST_URL
    4. 모니터링 간격(초)을 제공합니다.
       export MONITOR_REPEAT_INTERVAL=360 oci apm-synthetics monitor create-browser-monitor --apm-domain-id $APM_OCID --display-name $MONITOR_DISPLAY_NAME --monitor-type BROWSER --repeat-interval-in-seconds $MONITOR_REPEAT_INTERVAL --vantage-points file://$HOME/vantage_points.json --is-certificate-validation-enabled FALSE --is-failure-retried true --target $MONITOR_TARGET --availability-configuration file://$HOME/availability_configuration.json --network-configuration file://$HOME/network_measurements.json
Synthetic Monitoring 페이지에서 방금 생성한 모니터의 상태를 볼 수 있습니다. 이 예에서는 제공된 URL이 6분마다 모니터됩니다. 테스트 결과 세부정보를 보려면 모니터 이름을 누르고 Resources 메뉴에서 History를 선택합니다.

Management Agent 배치

스택 모니터링을 구성하기 전에 모니터할 각 호스트에 Oracle Management Agent를 설치해야 합니다. 이 데모는 Management Agent에 대해 RPM 설치를 사용합니다(Linux ARM 호스트가 온프레미스 또는 다른 클라우드 공급업체에서 실행 중인 경우 이 방법을 사용할 수 있음).

참고:

Oracle Management Agent를 설치하는 방법을 모르는 경우 이 플레이북 끝에 있는 "자세히 탐색" 항목에서 액세스할 수 있는 OCI 설명서의 "Management Agent 설치"를 참조하십시오.
시작하기 전에 [다운로드 및 키] 페이지에서 Management Agent 소프트웨어를 다운로드합니다.
  1. Management Agent(관리 에이전트), Downloads and Keys(다운로드 및 키)를 차례로 선택합니다.
  2. 패키지 유형이 RPM인 Agent for LINUX (AARCH64)를 선택합니다.
  3. 동일한 페이지에서 새 설치 키를 생성하여 에이전트를 구성합니다. 필수 매개변수를 제공하십시오.
    • 키 이름 = demo-key-01
    • 구획 = om-demo
    • 최대 설치 = default

참고:

설치 키를 생성하는 방법을 모르는 경우 이 플레이북 끝에 있는 "자세히 탐색" 항목에서 액세스할 수 있는 OCI 설명서의 "설치 키 생성"을 참조하십시오.
이제 Management Agent를 배치합니다.
  1. SSH를 사용하여 Linux 인스턴스에 접속하고, 아직 존재하지 않는 경우 JDK8를 설치합니다.
    # dnf install -y java-1.8.0-openjdk 
  2. Management Agent 설치:
    # rpm -ivh oracle.mgmt_agent.230622.2155.Linux-Aarch64.rpm
  3. 아래 예와 같이 Management Agent를 구성합니다.
    1. vi 편집기를 엽니다.
      # vi /usr/share/mgmt_agent/input.rsp 
      
    2. 다음 콘텐츠를 추가합니다.
      ManagementAgentInstallKey = <COPY_YOUR_KEY_HERE>
      CredentialWalletPassword = <CHOOSE_YOUR_WALLET_PASSWORD>
    3. 관리 에이전트의 소유자 변경:
      # chown mgmt_agent. /usr/share/mgmt_agent/input.rsp 
  4. 다음 명령을 실행하여 Management Agent 구성을 완료합니다.
    # sudo /opt/oracle/mgmt_agent/agent_inst/bin/setup.sh opts=/usr/share/mgmt_agent/input.rsp  
몇 분 후에 "Management Agent"와 "Agents" 페이지에서 에이전트를 볼 수 있습니다. 스택 모니터링 플러그인을 사용으로 설정할 필요가 없습니다. 스택 모니터링이 자동으로 사용으로 설정됩니다.

전체 호스트 모니터링 사용

Stack Monitoring 서비스가 활성화된 상태에서 응용 프로그램이 사용하는 호스트의 전체 모니터를 활성화하려고 합니다. 스택 모니터링은 OCI 컴퓨트 인스턴스의 모니터링을 사용으로 설정하는 작업을 자동으로 준비합니다. 전체 모니터링을 사용으로 설정하려면 Promote to full monitoring을 선택합니다. 승격할 사용 가능한 호스트 목록에서 Tomcat 및 Oracle Database 호스트를 식별하고 승격을 선택합니다. 이렇게 하면 슬라이드아웃이 호출됩니다. 이 슬라이드아웃에서 리소스 이름이 호스트의 정규화된 도메인 이름의 리소스 이름과 일치하는지 확인합니다. 그런 다음 승인 요청을 누릅니다. 몇 분 안에 스택 모니터링이 새 홈페이지를 생성하고 새 메트릭을 수집하기 시작합니다.

스택 모니터링 구성

마지막으로 스택 모니터링을 구성해야 합니다.

실제로 서비스를 구성하기 전에 다음 필수 조건을 충족해야 합니다.
  1. 스택 모니터링 서비스를 사용으로 설정합니다.
  2. JMX 모니터링을 사용으로 설정합니다.
  3. Oracle Database 모니터링 사용자를 생성합니다.
그런 다음 스택 모니터링을 구성하려면 다음 단계를 완료하십시오.
  1. 호스트의 전체 모니터링을 사용으로 설정합니다.
  2. Oracle Database를 검색합니다.
  3. Apache Tomcat을 검색합니다.
이러한 프로세스는 다음 단계에서 설명합니다.
  1. 스택 모니터링 서비스를 사용으로 설정합니다.
    Observability & Management, Application Performance Monitoring, Stack Monitoring으로 차례로 이동한 후 Enable Stack Monitoring을 누릅니다.
  2. Apache Tomcat에서 JMX 사용:
    스택 모니터링을 수행하려면 검색 전에 JMX를 사용으로 설정해야 합니다. Apache Tomcat에서 JMX를 사용으로 설정하려면 다음을 수행합니다.
    1. setenv.bat에 다음 행을 추가합니다.
      set CATALINA_OPTS=-Dcom.sun.management.jmxremote 
      -Dcom.sun.management.jmxremote.port=9012 
      -Dcom.sun.management.jmxremote.ssl=false 
      -Dcom.sun.management.jmxremote.authenticate=false
    2. jmxremote.accessjmxremote.password 파일을 저장할 구성 폴더를 생성합니다.
      mkdir -p /opt/tomcat/conf
    3. Tomcat 사용자로 jmxremote.access를 생성합니다.
      cd /opt/tomcat/conf 
      echo "monitorRole readonly 
      controlRole readwrite" > jmxremote.access 
    4. 다음을 jmxremote.password 파일에 추가합니다. Password file은 읽기 전용이어야 하며 운영 체제 유저 Tomcat이 실행 중인 경우에만 액세스할 수 있어야 합니다. Tomcat 사용자로:
      cd /opt/tomcat/conf 
      echo "monitorRole tomcat 
      controlRole tomcat" > jmxremote.password 
    5. Apache Tomcat을 다시 시작합니다.
  3. 데이터베이스 모니터 유저를 생성합니다.
    스택 모니터링에서 데이터베이스를 검색하기 전에 모니터링 사용자에게 액세스 권한이 있는지 확인하십시오. Oracle Database에 내장되어 있으며 데이터베이스 모니터에 필요한 권한을 가진 DBSNMP 유저를 사용하거나 필요한 권한만 가진 커스텀 유저를 생성할 수 있습니다. 데이터베이스 모니터링 사용자를 만드는 단계는 MOS 참고 자료: 2857604.1에서 확인할 수 있습니다. 이 안내서는 이 플레이북의 끝에 있는 "자세히 탐색"에서 액세스할 수 있습니다.
  4. 전체 호스트 모니터링 사용:
    스택 모니터링 서비스가 사용으로 설정된 경우 첫번째 단계는 응용 프로그램이 사용하는 호스트의 전체 모니터링을 사용으로 설정하는 것입니다. 스택 모니터링은 OCI 컴퓨트 인스턴스의 모니터링을 사용으로 설정하는 작업을 자동으로 준비합니다. 전체 모니터링을 사용으로 설정하려면 다음과 같이 하십시오.
    1. 전체 모니터링으로 승격을 누릅니다.
    2. 승격할 사용 가능한 호스트 목록에서 Tomcat 및 Oracle Database 호스트를 식별하고 승격을 누릅니다. 이렇게 하면 슬라이드 아웃이 호출됩니다.
    3. 이 슬라이드아웃에서 리소스 이름이 정규화된 도메인 이름의 호스트 이름과 일치하는지 확인한 다음 Promote를 누릅니다.

    몇 분 안에 스택 모니터링이 새 홈페이지를 생성하고 새 메트릭을 수집하기 시작합니다.

  5. 애플리케이션이 사용하는 Oracle 데이터베이스를 검색합니다.
    Stack Monitoring의 손쉬운 Fill-in-the-blank 검색 UI를 통해 리소스를 쉽게 검색할 수 있습니다. 시작하기:
    1. "리소스 검색" 페이지로 이동하여 새 리소스 검색을 누릅니다. 선택하면 슬라이드아웃 창이 나타납니다.
    2. 드롭다운 메뉴에서 Oracle Database를 선택합니다.
    3. Resource Name, DNS hostname, Service Name과 같은 필드에 정보를 입력하고 Discover New Resource를 누릅니다.

    작업이 완료되면 스택 모니터링이 즉시 측정항목 수집을 시작하고 홈페이지를 생성합니다.

  6. Apache Tomcat 서버 검색
    Apache Tomcat 검색:
    1. "리소스 검색"으로 이동하고 Discover New Resource를 누릅니다.
    2. 드롭다운 목록에서 Apache Tomcat를 선택합니다.
    3. JMX 포트와 같은 빈 필드를 채우고 사용자 이름과 비밀번호를 모니터링하고 Discover New Resource를 누릅니다.

    작업이 완료되면 Stack Monitoring의 "Enterprise Summary"로 이동합니다. 대시보드에는 Oracle Database, Apache Tomcat 및 Tomcat이 사용하는 호스트의 성능과 상태가 표시됩니다.

    그런 다음 응용 프로그램 스택 위아래로 쉽게 이동할 수 있도록 리소스를 연결합니다. 리소스와 관련된 자세한 내용은 "애플리케이션 토폴로지 업데이트"(이 플레이북 끝의 "자세히 탐색" 항목에서 액세스할 수 있음)를 참조하십시오.

    마지막으로 리소스에 대한 알람을 구성합니다. 알람의 예:
    • 호스트
      • 파일 시스템 활용률
      • CPU 및 메모리 활용률
      • 모니터링 상태
    • Oracle Database입니다.
      • 모니터링 상태
      • CPU 및 메모리
      • 대기 시간
      • 테이블스페이스별 스토리지 활용률
    • Apache Tomcat
      • 모니터링 상태
      • JVM 메모리 활용률(힙 및 비힙)
      • CPU 활용률