Sosreport 도구

Apigee Edge 문서를 보고 있습니다.
Apigee X 문서로 이동하세요.
info

Sosreport는 오픈소스 소프트웨어 SoS를 기반으로 하는 시스템 수준 진단 및 데이터 수집 도구입니다. Sosreport 도구를 사용하여 Apigee 구성요소가 실행되는 노드에서 문제를 디버깅하는 데 도움이 되는 정보를 수집할 수 있습니다. 이 도구는 노드의 파일 시스템에 정보를 로컬로 수집하고 저장합니다.

Sosreport 도구는 시스템에서 구성 세부정보, 시스템 정보, 진단 정보를 수집하고 데이터를 보관 파일에 저장합니다. Apigee 구성요소의 경우 Sosreport는 다음을 수집합니다.

  • 실행 중인 커널 버전
  • 로드된 모듈
  • 시스템 및 서비스 구성 파일

Sosreport는 다음을 비롯한 추가 정보를 수집하기 위해 외부 프로그램도 실행합니다.

  • 모든 구성요소의 Apigee 로그
  • 런타임 진단
  • nodetool 명령어를 사용하여 수집된 Cassandra 진단입니다.

Sosreport 도구에는 다음과 같은 두 가지 주요 명령어가 있습니다.

  • sosreport: 데이터를 수집하고 보고서를 생성하는 기본 명령어입니다.
  • apigee-sosreport: sosreport를 설치하고 Apigee 구성요소에 특정한 sosreport 플러그인을 관리하는 데 사용되는 보조 도구입니다.

설치

이 섹션에서는 sosreport를 설치하는 방법을 설명합니다.

sosreport의 SoS 버전이 이미 설치된 경우

sosreport의 원래 SoS 버전이 시스템에 이미 설치되어 있는 경우 설치 경로가 충돌할 수 있으므로 Apigee 버전을 설정하지 마세요. 대신 아래와 같은 명령어를 사용하여 /opt/apigee/apigee-sosreport/source/plugin 디렉터리에서 Apigee 전용 플러그인을 적절한 Python site-packages 디렉터리로 복사합니다. 예를 들어 agigee-mgmt.py를 복사하려면 다음을 실행합니다.

  • Python 2를 사용하는 경우 다음을 입력합니다.
    sudo cp apigee-mgmt.py /usr/lib/python2.7/site-packages/sos/plugins/
  • Python 3을 사용하는 경우 다음을 입력합니다.
    sudo cp apigee-mgmt.py /usr/local/lib/python3.6/site-packages/sos/plugins/

플러그인이 설치되었는지 확인하려면 다음을 입력합니다.

sudo sosreport --list-plugins

궁금한 점이 있으면 Apigee 지원팀에 문의하세요.

Apigee 버전의 sosreport 설치

sosreport의 SoS 버전이 시스템에 아직 설치되어 있지 않은 경우 Edge for Private Cloud가 설치된 모든 노드에서 다음 명령어를 입력하여 Apigee 버전을 설치할 수 있습니다.

/opt/apigee/apigee-service/bin/apigee-service apigee-sosreport install
/opt/apigee/apigee-service/bin/apigee-service apigee-sosreport setup

sosreport가 설치되었는지 테스트하려면 Apigee와 관련된 플러그인이 다음 디렉터리에 있는지 확인합니다.

/usr/lib/pythonx.x/site-packages/sos/plugins

여기서 pythonx.x은 설치된 Python 버전입니다.

또는 다음 명령어 중 하나를 실행할 수 있습니다.

  • Apigee 관련 플러그인만 확인하려면 다음을 실행합니다.
    apigee-service apigee-sosreport diagnose -l

    그러면 다음과 같은 Apigee 관련 플러그인 목록이 반환됩니다.

    sosreport (version 3.9)
    
    The following plugins are currently enabled:
    
    apigee-mgmt          This is the apigee plugin for edge-management-server
    apigee-mp            This is the apigee plugin for edge-message-processor
    apigee-rrt           This is the apigee plugin for edge-router
    apigee-sample        Main diagnostics gatehring class
  • 모든 플러그인을 확인하려면 다음 단계를 따르세요.
    apigee-service apigee-sosreport diagnose -s -l

    그러면 sosreport에서 사용할 수 있는 플러그인 목록이 반환됩니다.

    sosreport (version 3.9)
    
    The following plugins are currently enabled:
    
     acpid                ACPI daemon information
     alternatives         System alternatives
     anacron              Anacron job scheduling service
     apigee-cassandra     This is the base class for sosreport plugins. Plugins should subclass
        this and set the class variables where applicable. ←truncated→
     apigee-mgmt          This is the base class for sosreport plugins. Plugins should subclass
        this and set the class variables where applicable. ←truncated→
     apigee-mp            Main diagnostics gathering class
     apigee-rrt           This is the base class for sosreport plugins. Plugins should subclass
        this and set the class variables where applicable. ←truncated→
    
    ………………………………………………….
    ………………………………………………….
    ………………………………………………….
    ←truncated→

보고서 만들기

Sosreport 도구를 사용하여 보고서를 만들려면 필요한 플러그인 옵션과 함께 sosreport 명령어를 실행합니다 (Apigee 플러그인 참고). 보고서가 저장되는 기본 디렉터리는 tmp 또는 /var/tmp입니다. 다른 디렉터리를 tmp-dir 옵션에 전달하여 보고서가 저장된 디렉터리를 변경할 수 있습니다. 예를 들어 관리 서버에 관한 보고서를 만들어 my_report-dir이라는 디렉터리에 저장하려면 다음 중 하나를 입력합니다.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf -o apigee-mgmt  --batch --tmp-dir=my_report-dir
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-mgmt  --batch --tmp-dir=my_report-dir

보고서는 tmp-dir 옵션을 사용하여 지정한 디렉터리의 .tar.xz 파일에 저장됩니다. .tar.xz 파일의 위치는 STDOUT 및 체크섬에 표시됩니다. 예를 들면 다음과 같습니다.

Your sosreport has been generated and saved in:
 /var/sosreport-prc-test-0-9613-2021-07-12-orwxufx.tar.xz
The checksum is: 5a8b97c6020346a688254c8b04ef86ec
For more available options for sosreport, read the man file:
sudo man sosreport

보고서는 tmp-dir 옵션을 사용하여 지정한 디렉터리의 .tar.xz 파일에 저장됩니다. .tar.xz file의 위치는 STDOUT에 표시되며 체크섬도 표시됩니다. 예를 들면 다음과 같습니다.

sosreport에 사용할 수 있는 옵션에 대한 자세한 내용은 man 파일을 참고하세요.

sudo man sosreport

Apigee 플러그인

다음 섹션에서는 다음 구성요소의 Sosreport 도구용 Apigee 플러그인을 설명합니다.

관리 서버

apigee-mgmt 플러그인은 관리 서버에서 다음 정보를 수집합니다.

  • 서버 호스트 이름 (기본값)
  • cpuinfo (기본값)
  • meminfo (기본값)
  • 메모리, Djdk.tls.allowUnsafeServerCertChange 등 Java 가상 머신 (JVM) 설정 (기본값)
  • 현재 관리 로그 (기본값)
  • 10개의 순차적 상위 및 jstacks 출력 (기본값)
  • 전체 관리 로그 폴더 (선택사항)
  • config-files (선택사항)

예:

모든 기본 항목을 수집하려면 다음 중 하나를 입력합니다.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mgmt --batch my_report-dir
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-mgmt --batch my_report-dir

모든 기본 항목과 명령어에 지정된 선택적 항목(예: 구성 파일 및 모든 로그)을 수집하려면 다음 중 하나를 입력합니다.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mgmt --batch -k apigee-mgmt.config-files -k apigee-mgmt.all-logs
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-mgmt --batch -k apigee-mgmt.config-files -k apigee-mgmt.all-logs

모든 항목을 수집하려면 다음 중 하나를 입력합니다.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mgmt --batch -k apigee-mgmt.config-files -k apigee-mgmt.all-logs

    또는 다음을 입력할 수 있습니다.

    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mgmt --batch -a
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-mgmt --batch -k apigee-mgmt.config-files -k apigee-mgmt.all-logs

    또는 다음을 입력할 수 있습니다.

    sudo sosreport -o apigee-mgmt --batch -a

메시지 프로세서

apigee-mp 플러그인은 관리 프로세서 (MP)에서 다음 정보를 수집합니다.

  • 서버 호스트 이름 (기본값)
  • cpuinfo (기본값)
  • meminfo (기본값)
  • buildinfo/release info (기본값)
  • apigee-all 상태 (기본값)
  • 서버 세부정보 (기본값)
  • JVM 수준 설정(예: 메모리, Djdk.tls.allowUnsafeServerCertChange 등)(기본값)
  • 현재 MP 로그 (기본값)
  • 상위 10개, jstacks, NIO 측정항목 출력 (기본값)
  • 전체 MP 로그 폴더 (선택사항)
  • 분류 트리 (선택사항)
  • 힙 덤프 (선택사항)
  • config-files (선택사항)
  • 런타임 추적 (선택사항이며 org:env:api:rev detail가 제공된 경우에만 해당). 참고: 플러그인은 런타임 요청을 수집하기 위해 25초 동안 기다립니다.

예:

모든 기본 항목을 수집하려면 다음 중 하나를 입력합니다.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mp --batch
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-mp --batch

모든 기본 항목 외에 수집할 추가 선택적 항목을 지정할 수도 있습니다. 예를 들어 -k apigee-mp.heap 플래그를 사용하여 힙 덤프를 지정하려면 다음 중 하나를 입력합니다.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mp --batch -k apigee-mp.heap
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-mp --batch -k apigee-mp.heap

마찬가지로 다음 선택사항을 지정할 수 있습니다.

-k apigee-mp.deployments
-k apigee-mp.heap
-k apigee-mp.all-logs
-k apigee-mp.config-files
-k apigee-mp.trace=gsc-cps:test:httpbin:3

단일 명령어에서 여러 옵션을 지정할 수 있습니다. 예를 들면 다음과 같습니다.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mp --batch -k apigee-mp.deployments -k apigee-mp.all-logs
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-mp --batch -k apigee-mp.deployments -k apigee-mp.all-logs

트레이스를 제외한 모든 항목을 수집하려면 다음 중 하나를 입력합니다.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mp --batch -a
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-mp --batch -a

라우터

apigee-rrt 플러그인은 라우터에서 다음 정보를 수집합니다.

  • 서버 호스트 이름 (기본값)
  • cpuinfo (기본값)
  • meminfo (기본값)
  • buildinfo/release info (기본값)
  • apigee-all 상태 (기본값)
  • 서버 세부정보 (기본값)
  • ps 출력 이렇게 하면 메모리, Djdk.tls.allowUnsafeServerCertChange 등 JVM 수준 설정이 제공됩니다 (기본값).
  • 현재 라우터 로그 (기본값)
  • 잘못된 파일 이름을 포함한 vhost 파일 이름 목록 (기본값)
  • 전체 라우터 로그 폴더 (선택사항)
  • config-files (선택사항)

예:

모든 기본 항목을 수집하려면 다음 중 하나를 입력합니다.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-rrt --batch
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-rrt --batch

모든 기본 항목 외에 수집할 추가 선택적 항목을 지정할 수도 있습니다. 예를 들어 -k apigee-rrt.all-logs 플래그를 사용하여 전체 로그 폴더를 지정하려면 다음 중 하나를 입력합니다.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-rrt --batch -k apigee-rrt.all-logs
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-rrt --batch -k apigee-rrt.all-logs

마찬가지로 다음 선택사항을 지정할 수 있습니다.

-k apigee-rrt.all-logs
-k apigee-rrt.config-files

모든 항목을 수집하려면 다음 단계를 따르세요.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-rrt --batch -a
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-rrt --batch -a

Cassandra

apigee-cassandra 플러그인은 Cassandra 노드에서 다음 정보를 수집합니다.

  • 머신 통계:
    "hostname -i"
    "cat /proc/cpuinfo"
    "cat /proc/meminfo"
    "ulimit -a"
    "ps auxw"
    "df -kh"
    "du -sh"
    "netstat -ntlpu"
    "free -h"
    "ifconfig -h"
    "ps -ef"
  • Apigee 구성요소의 상태 및 버전 apigee-all version 및 apigee-all status
  • apigee-cassandra 로그: /opt/apigee/var/log/apigee-cassandra/ 아래의 모든 파일
  • 커밋 로그 수
  • Top 명령어 출력
  • 스레드 덤프
  • 구성 파일: cassandra-topology.properties, cassandra.yaml, cassandra-env.sh
  • 다음 매개변수의 Nodetool 출력: version, status, ring, info, gossipinfo, compactionstats -H, tpstats, netstats, cfstats, proxyhistograms

예:

모든 기본 항목을 수집하려면 다음 중 하나를 입력합니다.

  • Apigee 버전의 sosreport 사용:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-cassandra
  • SoS 버전의 sosreport 사용:
    sudo sosreport -o apigee-cassandra