Python 에이전트 관리 스크립트는 설치 프로세스 중에 사용됩니다. Python 에이전트 패키지가 설치되면 newrelic-admin
스크립트도 Python 설치 또는 가상 환경의 bin
디렉터리에 설치됩니다.
이 문서에서는 이러한 관리 스크립트 사용에 대해 더 자세히 설명합니다.
- 초기 에이전트 구성 파일 생성
- 구성 파일 유효성 검사
- New Relic에 대한 연결 테스트
- 독립 실행형 Python 웹 애플리케이션의 래핑 시작
하위 명령 구조
하위 명령을 실행하려면 하위 명령의 이름을 newrelic-admin
스크립트의 첫 번째 인수로 제공합니다. 그런 다음 하위 명령 이름 뒤에 옵션을 추가합니다. 예를 들어:
$newrelic-admin help
도움말 <명령>
추가 인수 없이 실행하면 허용되는 모든 하위 명령 목록이 제공됩니다.
$newrelic-admin help Usage: newrelic-admin command [options] Type 'newrelic-admin help <command>'for help on a specific command. Available commands are: generate-config license-key local-config network-config record-deploy run-program run-python server-config validate-config
하위 명령에 대한 추가 세부 정보를 보려면 하위 명령 및 해당 옵션과 함께 help 명령을 실행하십시오. 예를 들어:
$newrelic-admin help generate-config Usage: newrelic-admin generate-config license_key [output_file] Generates a sample agent configuration file for <license_key>.
생성 구성 라이센스 키 [출력 파일]
샘플 에이전트 설정 파일을 생성합니다. license_key
옵션은 입니다.
기본적으로 샘플 구성 파일은 표준 출력으로 지정되고 화면에 표시됩니다. 출력을 캡처하려면 대신 파일 이름을 output_file
옵션으로 지정하여 파일에 저장할 수 있습니다.
샘플 에이전트 구성 파일이 생성되면 파일의 라이센스 키 옵션만 업데이트됩니다. 여전히 파일을 편집하고 app_name
및 log_file
옵션을 적절하게 변경해야 합니다. 자세한 내용은 Python 에이전트 설치 를 참조하세요.
generate-config
명령을 실행하여 초기 에이전트 구성 파일을 생성할 수 없는 경우 download.newrelic.com/python_agent/release/newrelic.ini에서 샘플 구성 파일을 다운로드 할 수 있습니다.
유효성 검사 구성 구성 파일 [로그 파일]
config_file
옵션이 제공하는 에이전트 구성 파일의 구문을 검증합니다.
이는 generate-config
에 의해 생성되고 이후에 편집된 에이전트 구성이거나 다운로드 사이트에서 샘플 구성 파일을 다운로드하여 생성된 에이전트 구성 파일일 수 있습니다.
구성 파일의 구문을 확인하는 것 외에도 에이전트 구성 파일에 포함된 license_key
를 사용하여 계정을 식별하면 서버에 연결할 수 있는지 여부도 테스트됩니다.
따라서 이 하위 명령을 사용하여 데이터 수집기 호스트의 호스트 이름을 확인하는 데 DNS를 사용할 수 있고 네트워크 연결을 사용할 수 있으며 방화벽이 액세스를 차단하지 않는지 확인할 수 있습니다.
우리 서버에 연결할 때 테스트는 귀하의 계정에 Python Agent Test
라는 애플리케이션을 생성합니다. 이 애플리케이션에는 소량의 시뮬레이션된 웹 트랜잭션 데이터와 오류가 보고됩니다. 원하는 경우 일정 시간이 지난 후 귀하의 계정에 있는 이 애플리케이션이 Applications 목록에서 삭제될 수 있습니다.
이 테스트가 실행되면 다음 위치에 로그 파일이 생성됩니다.
/tmp/python-agent-test.log
이 위치를 재정의해야 하는 경우 log_file
옵션을 제공할 수 있습니다. 로그 파일에 기록될 내용을 화면에 표시하려면 log_file
옵션으로 전달된 값으로 stdout
또는 stderr
를 사용할 수 있습니다.
에이전트 구성 파일이 일반적으로 사용되지 않는 Heroku와 같은 호스팅 서비스를 사용할 때 이 하위 명령을 계속 사용하여 연결을 테스트할 수 있습니다. Heroku의 경우 라이선스 키 정보는 Heroku 인스턴스에 New Relic 애드온을 추가할 때 Heroku가 자동으로 설정한 환경 변수에 정의됩니다.
환경 변수를 사용하여 라이선스 키를 정의하는 경우 연결 테스트를 실행하려면 에이전트 구성 파일에 대한 경로 대신 config_file
옵션에 대한 값 -
을 전달합니다. 따라서 Heroku 인스턴스에서 명령을 실행하려면 다음을 사용합니다.
$heroku run newrelic-admin validate-config - stdout
이 경우 로그 파일에 대해 stdout
을 제공했습니다. 그렇지 않으면 생성된 로그 파일을 별도로 검색해야 합니다.
Python 에이전트를 처음 설정할 때 또는 새 호스트에서 설정할 때 이 하위 명령을 사용하여 데이터가 정상적으로 보고될 수 있는지 여부를 테스트하는 것이 좋습니다. 자세한 내용 은 Python 에이전트 테스트 를 참조하십시오.
실행 프로그램 ...
...
으로 지정된 Python 웹 애플리케이션에 대한 명령줄을 실행하지만 시작 시 에이전트를 자동으로 초기화합니다.
이것은 Python 에이전트를 구체적으로 초기화하는 코드를 추가하기 위해 웹 애플리케이션을 수동으로 변경할 필요 없이 Python 웹 애플리케이션을 시작하기 위한 바로 가기 방법입니다. WSGI 애플리케이션 진입점을 래핑하기 위해 계측이 자동으로 추가되는 Python 웹 프레임워크 또는 WSGI 서버가 사용되는 모든 상황에서 사용할 수 있습니다. 즉, 에이전트 초기화 코드만 추가하면 되는 상황입니다.
이 방법을 사용할 때 에이전트 구성은 두 가지 방법으로 제공할 수 있습니다. 전체 에이전트 구성 파일을 사용하는 경우 해당 구성의 위치는 NEW_RELIC_CONFIG_FILE
환경 변수에 의해 제공될 수 있습니다.
예를 들어 gunicorn을 사용하는 경우 다음과 같이 말할 수 있습니다.
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program gunicorn wsgi:application
또는
$NEW_RELIC_CONFIG_FILE=newrelic.ini$export NEW_RELIC_CONFIG_FILE$
$newrelic-admin run-program gunicorn wsgi:application
NEW_RELIC_CONFIG_FILE
환경 변수를 사용하여 구성 파일의 위치를 지정할 때 다음 추가 환경 변수를 설정하여 구성 파일이 처리되는 방식을 사용자 지정할 수 있습니다.
NEW_RELIC_ENVIRONMENT
: 특정 배포 환경의 이름입니다. 지정되면 구성 파일 내의 별도 배포 섹션에서 추가 재정의 구성을 읽습니다. 특정 배포 환경에 대한 구성 파일 섹션의 이름은 newrelic:environment
으로 지정해야 합니다. 여기서 environment
은 이 환경 변수에 의해 지정되는 이름으로 바뀝니다.
전체 에이전트 구성 파일 대신 주요 에이전트 구성 정보만 제공하는 환경 변수를 설정할 수도 있습니다. 이 경우 설정할 수 있는 환경 변수는 다음과 같습니다.
NEW_RELIC_LICENSE_KEY
- 당신의 뉴렐릭.
NEW_RELIC_APP_NAME
- UI에서 데이터를 보고하려는 애플리케이션의 이름입니다. 정의되지 않은 경우 기본값은Python Application
입니다.NEW_RELIC_LOG
- 에이전트 로그에 사용할 파일의 경로입니다. 정의하지 않으면 로깅이 발생하지 않습니다. 로깅이 프로세스의 표준 출력 또는 표준 오류로 이동하도록stdout
또는stderr
로 설정할 수도 있습니다.NEW_RELIC_LOG_LEVEL
- 에이전트가 로깅을 출력할 수준입니다. 정의되지 않은 경우 기본값은info
입니다. 가능한 값은critical
,error
,warning
,info
및debug
입니다.
Heroku에서 애플리케이션을 호스팅할 때 개별 환경 변수가 사용됩니다. 환경 변수는 뉴렐릭 애드온을 추가하면 Heroku 환경에 맞게 자동으로 설정됩니다. 따라서 Procfile 에서 이 옵션과 함께 newrelic-admin
명령을 사용할 때 Heroku를 사용하여 위의 환경 변수를 설정할 필요가 없습니다.
래핑된 프로그램은 Python 에이전트 패키지 및 newrelic-admin
스크립트가 설치된 것과 동일한 Python 설치 또는 가상 환경을 사용해야 합니다. 그렇지 않은 경우 래퍼 스크립트는 영향을 미치지 않으며 newrelic
Python 패키지를 찾을 수 없기 때문에 Python 인터프리터 시작 시 오류가 발생할 수도 있습니다.
sudo
를 사용하여 WSGI 를 다른 사용자로 시작하는 경우 기본 sudo 설정은 일반적으로 sudo 가 실행되는 셸의 사용자 환경 변수가 무시된다는 점에 유의하세요. 이 경우 특정 환경 변수 전달을 허용하도록 sudoers 설정을 변경해야 합니다. 또는 환경 변수를 설정하고 newrelic-admin
아래에서 WSGI 애플리케이션을 실행하는 쉘 스크립트를 작성하십시오. WSGI 애플리케이션을 다른 사용자로 시작하려면 WSGI 애플리케이션에서 직접 실행하는 대신 해당 스크립트에서 sudo 실행하세요.
supervisord 구성 내의 환경 변수 설정이 올바르게 전달되지 않는 경우 supervisord 사용할 때 환경 변수를 설정하고 WSGI 애플리케이션을 실행하기 위해 추가 래퍼 스크립트를 사용해야 할 수도 있습니다 newrelic-admin
.
파이썬 실행 ...
...
로 지정된 인수를 사용하여 newrelic-admin
이 설치된 Python 설치 또는 가상 환경에서 python
실행 파일을 실행하지만 시작 시 에이전트를 자동으로 초기화합니다.
이것은 Python 에이전트를 구체적으로 초기화하는 코드를 추가하기 위해 웹 애플리케이션을 수동으로 변경할 필요 없이 Python 웹 애플리케이션을 시작하기 위한 바로 가기 방법입니다. WSGI 애플리케이션 진입점을 래핑하기 위해 계측이 자동으로 추가되는 Python 웹 프레임워크 또는 WSGI 서버가 사용되는 모든 상황에서 사용할 수 있습니다. 즉, 에이전트 초기화 코드만 추가하면 되는 상황입니다.
위의 run-program
하위 명령의 경우 환경 변수를 사용하여 Python 에이전트를 구성합니다. 예를 들어 python
실행 파일을 직접 사용하는 경우 다음과 같이 말할 수 있습니다.
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-python wsgi.py
또는
$NEW_RELIC_CONFIG_FILE=newrelic.ini $export NEW_RELIC_CONFIG_FILE $
$newrelic-admin run-python wsgi.py
라이센스 키 구성 파일 [로그 파일]
사용할 라이센스 키를 출력합니다. 이는 실제 WSGI 응용 프로그램을 시작하기 전에 모든 시작 스크립트에서 사용하여 올바른 값이 사용되고 있는지 확인하기 위한 목적으로 라이센스 키를 기록할 수 있습니다.
에이전트 구성 파일과 함께 사용할 수 있습니다.
$newrelic-admin license-key newrelic.ini
또는
환경 변수를 사용하여 라이선스 키를 설정하는 경우 구성 파일의 이름으로 -
을 사용합니다.
$NEW_RELIC_LICENSE_KEY='YOUR-LICENSE-KEY'$export NEW_RELIC_LICENSE_KEY $
$newrelic-admin license-key -
출력 형식은 다음과 같습니다.
license_key = 'YOUR-LICENSE-KEY'
에이전트 구성 파일에서 라이센스 키를 찾지 못했거나 사용자 환경 변수에서 가져온 경우 출력은 다음과 같습니다.
license_key = None
네트워크 구성 구성 파일 [로그 파일]
사용할 네트워크 구성을 출력합니다. 이것은 실제 WSGI 응용 프로그램을 시작하기 전에 올바른 값이 사용 중인지 확인하기 위해 네트워크 구성을 기록하기 전에 모든 시작 스크립트에서 사용할 수 있습니다.
에이전트 구성 파일과 함께 사용할 수 있습니다.
$newrelic-admin network-config newrelic.ini
또는
환경 변수를 사용하여 프록시 정보를 설정하는 경우 구성 파일의 이름으로 -
을 사용합니다.
$NEW_RELIC_PROXY_HOST=proxy.example.com$export NEW_RELIC_PROXY_HOST$
$NEW_RELIC_PROXY_PORT=8888$export NEW_RELIC_PROXY_PORT$
$newrelic-admin network-config -
출력 형식은 다음과 같습니다.
host = 'collector.newrelic.com'port = 0proxy_host = 'proxy.example.com'proxy_port = 8888proxy_user = Noneproxy_pass = Nonessl = True
포트 값이 0
이면 데이터 수집기와 통신하는 데 SSL 연결이 사용되는지 여부에 따라 포트 번호( 80
또는 443
가 자동으로 선택된다는 의미입니다.
로컬 구성 구성 파일 [로그 파일]
기본 제공 기본값, 환경 변수 및 에이전트 구성 파일을 기반으로 로컬 에이전트 구성을 출력합니다. 이 정보는 에이전트 시작 문제를 디버그하려고 할 때 기술 지원에서 요청할 수 있습니다. 에이전트 구성 파일과 함께 사용할 수 있습니다.
$newrelic-admin local-config newrelic.ini
또는
환경 변수를 사용하여 설정을 지정하는 경우 -
을 구성 파일의 이름으로 사용할 수 있습니다.
$newrelic-admin local-config -
서버 구성 구성 파일 [로그 파일]
특정 애플리케이션에 대한 전체 구성을 출력합니다. 이것은 특정 응용 프로그램에 대한 서버 측 구성 으로 재정의되는 로컬 에이전트 구성이 됩니다. 이 정보는 에이전트 시작 문제를 디버그하려고 할 때 기술 지원에서 요청할 수 있습니다.
에이전트 구성 파일과 함께 사용할 수 있습니다.
$newrelic-admin server-config newrelic.ini
또는
환경 변수를 사용하여 설정을 변경하는 경우 -
을 구성 파일의 이름으로 사용할 수 있습니다.
$newrelic-admin server-config -
서버측 구성을 얻기 위해 이 스크립트는 구성에 의해 정의된 특정 애플리케이션에 대한 에이전트 등록을 강제합니다. 해당 응용 프로그램이 APM의 사용자 인터페이스에 아직 나타나지 않으면 해당 항목이 생성되지만 이에 대한 메트릭 데이터는 보고되지 않습니다.
기록 배포 config_file 설명
이것은 애플리케이션의 배포를 기록하기 위한 New Relic REST API에 대한 래퍼입니다. REST API를 통해 직접 배포를 기록할 수도 있습니다.
명령을 사용하려면:
섹
newrelic.ini
션[newrelic]
에 다음과 유사한 줄을 추가하여 에이전트 구성 파일 ( )에 API 키를 추가합니다.api_key=substitute-your-api-key-here명령줄에서
newrelic-admin
명령을 호출합니다. (구성 파일에 추가하지 마십시오.) 다음 하위 명령 구조를 사용합니다.bash$newrelic-admin record-deploy config_file description [revision changelog user]
이 하위 명령에는 두 개의 필수 인수가 있습니다.
config_file
: 구성 파일 이름의 경로description
: 배포를 설명하거나 식별하는 텍스트입니다. 예를 들어 Git 커밋 주석
또한 세 가지 선택적 인수가 있습니다.
revision
: 배포 중인 특정 개정을 식별합니다.changelog
: 변경된 사항에 대한 자세한 로그를 제공합니다.user
: 배포 책임자를 식별합니다.
기타 고급 팁
다음은 관리 스크립트를 실행하기 위한 몇 가지 고급 지침입니다.