• 로그인

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

JMX 모니터링 통합

JMX 통합 을 통해 사용자는 JMX로 메트릭을 노출하는 모든 애플리케이션을 모니터링할 수 있습니다. 통합에는 JVM에서 주요 메트릭을 자동으로 수집하는 기본 수집 파일이 포함됩니다. YAML 파일로 메트릭 컬렉션을 사용자 지정하여 메트릭 하위 집합을 수집할 수도 있습니다.

통합을 설치하고 수집하는 데이터를 보려면 계속 읽으십시오.

호환성 및 요구 사항

우리의 통합은 Java 8 이상과 호환됩니다. PATH 에 구성된 것과 다른 Java 버전을 사용해야 하는 경우 GitHub에서 New Relic의 구성 문서를 따르세요.

통합을 설치하기 전에 다음 요구 사항을 충족하는지 확인하십시오.

  • New Relic 계정. 하나가 없습니까? 무료 가입! 신용 카드가 필요하지 않습니다.

  • JMX가 Kubernetes 또는 Amazon ECS에서 실행되고 있지 않으면 JMX를 실행하는 호스트에 인프라 에이전트를 설치 해야 합니다. 그렇지 않으면:

  • 이 통합은 IIOP 프로토콜을 지원하지 않습니다.

설치 및 활성화

JMX 통합을 설치하려면 환경에 대한 지침을 따르십시오.

' '

추가 참고 사항:

  • 고급: 통합은 패키지 관리자 외부에 설치할 수 있도록 tarball 형식 으로도 제공됩니다.
  • 인프라 에이전트는 nri-jmx 바이너리를 실행할 때 경로를 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin 로 설정합니다. Java 바이너리는 해당 경로 중 하나에 있어야 합니다.
  • nrjmxjmx 은 루트 사용자에 대한 PATH 가 아닌 PATH 시스템에 있어야 하며 /root/.bashrc 에서 PATH 환경 변수를 변경해도 영향을 받지 않습니다. PATH 시스템 변수를 변경하는 방법에 대해 자세히 읽어보십시오.
  • 호스트 내 통합은 자동으로 업데이트되지 않습니다. 최상의 결과를 얻으 려면 통합 패키지인프라 에이전트 를 정기적으로 업데이트하십시오.

통합 구성

통합의 YAML 형식 구성은 필수 로그인 자격 증명을 배치하고 데이터 수집 방법을 구성할 수 있는 곳입니다. 변경하는 옵션은 설정 및 기본 설정에 따라 다릅니다.

설치 방법에 따라 통합을 구성하는 몇 가지 방법이 있습니다.

JMX 통합은 두 가지 유형의 YAML 파일( 통합 구성 옵션메트릭 수집 옵션 )을 사용하여 통합 데이터를 정의하고 수집합니다.

구성 옵션은 다음과 같습니다. 예는 구성 예를 참조하십시오.

통합 구성 파일

구성 파일에는 interval , timeout 또는 inventory_source 와 같은 모든 통합에 적용할 수 있는 공통 설정이 있습니다. 이러한 공통 설정에 대한 모든 내용을 읽으려면 구성 형식 문서를 참조하십시오.

중요

레거시 구성/정의 파일을 계속 사용하는 경우 표준 구성 문서 를 참조하여 도움을 받으세요.

JMX와 관련된 특정 설정은 구성 파일의 env 섹션을 사용하여 정의됩니다. 이러한 설정은 JMX 인스턴스에 대한 연결과 기타 보안 설정 및 기능을 제어합니다. 유효한 설정 목록은 이 문서의 다음 섹션에 설명되어 있습니다.

구성 옵션은 다음과 같습니다. 예제 구성은 예제 구성 파일 을 참조하십시오.

JMX 인스턴스 설정

JMX 통합은 메트릭( M ) 및 인벤토리( I ) 정보를 모두 수집합니다. 아래의 적용 대상 열을 확인하여 각 특정 컬렉션에 사용할 수 있는 설정을 찾으십시오.

예제는 호스트 연결 파일 예제 를 참조하십시오.

' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '

환경

설명

기본값

적용 대상

JMX_HOST

호스트 JMX가 실행 중입니다.

localhost

JMX_PORT

JMX가 실행 중인 포트입니다.

9999

JMX_URI_PATH

JMX 서비스 URI의 경로 부분입니다. 비표준 서비스 URI에 유용합니다.

해당 없음

JMX_USER

JMX 연결의 사용자 이름입니다.

해당 없음

JMX_PASS

JMX 연결의 비밀번호입니다.

해당 없음

JMX_REMOTE

(JBoss 전용) JMX 원격 URL 연결 형식을 사용할지 여부입니다. 연결은 true 인 경우 JBoss 도메인 모드로 기본 설정됩니다.

false

JMX_REMOTE_JBOSS_STANDLONE

(JBoss 전용) JBoss 독립형 연결 형식을 사용할지 여부입니다. jmx_remote 이 설정된 경우에만 관련이 있습니다.

false

CONNECTION_URL

전체 JMX 끝점 URL입니다. 이것은 모든 매개변수를 한 줄에 제공하여 모든 연결 인수(위)를 대체합니다.

예시: "service:jmx:rmi:///jndi/rmi://localhost:7199/jmxrmi"

해당 없음

COLLECTION_FILES

메트릭 컬렉션 정의 파일에 대한 전체 파일 경로의 쉼표로 구분된 목록입니다. 호스트 내 설치의 경우 기본 JVM 측정항목 수집 파일은 /etc/newrelic-infra/integrations.d/jvm-metrics.yml 에 있습니다.

해당 없음

COLLECTION_CONFIG

메트릭 컬렉션을 JSON으로 구성합니다.

JVM 예:

COLLECTION_CONFIG='{"collect":[{"domain":"java.lang","event_type":"JVMSample","beans":[{"query":"type=GarbageCollector,name=*","attributes":["CollectionCount","CollectionTime"]},{"query":"type=Memory","attributes":["HeapMemoryUsage.Committed","HeapMemoryUsage.Init","HeapMemoryUsage.Max","HeapMemoryUsage.Used","NonHeapMemoryUsage.Committed","NonHeapMemoryUsage.Init","NonHeapMemoryUsage.Max","NonHeapMemoryUsage.Used"]},{"query":"type=Threading","attributes":["ThreadCount","TotalStartedThreadCount"]},{"query":"type=ClassLoading","attributes":["LoadedClassCount"]},{"query":"type=Compilation","attributes":["TotalCompilationTime"]}]}]}'

톰캣 예:

COLLECTION_CONFIG={"collect":[{"domain":"Catalina","event_type":"TomcatSample","beans":[{"query":"type=UtilityExecutor","attributes":["completedTaskCount"]}]}]}

COLLECTION_CONFIG 주석을 사용하여 Kubernetes에서 nri-jmx를 구성 하는 데 유용합니다.

해당 없음

KEY_STORE

JMX 클라이언트의 SSL 인증서를 포함하는 키 저장소의 파일 경로.

해당 없음

KEY_STORE_PASSWORD

SSL 키 저장소의 비밀번호입니다.

해당 없음

LOCAL_ENTITY

로컬 엔터티에 대한 모든 메트릭을 수집합니다. localhost를 모니터링할 때만 사용합니다.

false

시간 초과

개별 JMX 쿼리에 대한 시간 초과(밀리초)입니다.

10000

TRUST_STORE

JMX 서버의 SSL 인증서를 포함하는 키 저장소의 파일 경로.

해당 없음

TRUST_STORE_PASSWORD

신뢰 저장소의 비밀번호입니다.

해당 없음

METRIC_LIMIT

엔터티당 수집할 수 있는 메트릭 수입니다. 이 한도를 초과하면 엔터티가 보고되지 않습니다. 0의 한계는 한계가 없음을 의미합니다.

200

측정항목

측정항목만 수집을 활성화하려면 true 으로 설정합니다.

false

목록

인벤토리 전용 컬렉션을 활성화하려면 true 으로 설정합니다.

false

이러한 설정의 값은 여러 가지 방법으로 정의할 수 있습니다.

  • 구성 파일에 직접 값을 추가합니다. 이것은 가장 일반적인 방법입니다.
  • {{}} 표기법을 사용하여 환경 변수의 값 바꾸기. 이를 위해서는 인프라 에이전트 v1.14.0 이상이 필요합니다. 여기에서 자세한 내용을 읽거나 아래의 예를 참조하십시오.
  • 비밀 관리를 사용합니다. 이것을 사용하여 구성 파일에 일반 텍스트로 노출되지 않도록 민감한 정보(예: 암호)를 보호합니다. 자세한 내용은 비밀 관리 를 참조하십시오.

라벨 및 사용자 정의 속성

레이블을 사용하여 메트릭을 추가로 꾸밀 수 있습니다. 레이블을 사용하면 키/값 쌍 속성을 메트릭에 추가할 수 있으며, 이 속성을 사용하여 메트릭을 쿼리, 필터링 또는 그룹화할 수 있습니다.

기본 샘플 구성 파일에는 레이블의 예가 포함되어 있습니다. 필수 항목은 아니며 원하는 항목을 제거, 수정 또는 추가할 수 있습니다.

labels:
env: production
role: jmx

메트릭 컬렉션 파일

메트릭 컬렉션 정의 파일은 통합에 수집할 메트릭을 알려주는 구조화된 YAML 파일입니다. 구성 예시는 메트릭 컬렉션 파일 예시 를 참조하십시오.

기본 JVM 메트릭 컬렉션 파일: /etc/newrelic-infra/integrations.d/jvm-metrics.yml

조직 및 유지 관리를 쉽게 하기 위해 다른 컬렉션 파일을 작성할 수 있습니다. 예제는 구성 파일 을 참조하십시오.

도메인

통합은 도메인에 따라 메트릭을 수집하고 구성합니다. 도메인별로 정의된 모든 메트릭은 New Relic으로 전송되며 해당 이벤트 유형에서 찾을 수 있습니다. 이 이벤트 유형은 자동 생성되거나 사용자가 설정할 수 있습니다. 각 파일에는 도메인 배열이 포함된 단일 collect: 블록이 있습니다. 각 도메인에 대해 다음 키가 정의됩니다.

  • domain: JMX 도메인 예: java.lang . 와일드카드를 사용하여 여러 도메인을 일치시킬 수 있습니다. 예: java.* . 와일드카드를 사용하는 경우 event_type 는 필수이며 고유해야 합니다. 이 필드는 필수입니다.
  • event_type: 이 도메인의 컬렉션에 대한 이벤트 유형 이름입니다. 도메인에 와일드카드가 있는 경우 이는 필수이며 고유해야 합니다. 도메인에 와일드카드가 없고 사용자가 정의하지 않은 경우 자동 생성됩니다. 예를 들어, 도메인 java.lang 의 이벤트 유형은 JavaLangSample 입니다. 자세한 내용은 이름 지정 팁 을 참조하십시오.
  • beans: 이 도메인에서 수집할 의 배열입니다.

중요

구성 파일의 인스턴스당 메트릭은 200개로 제한됩니다. 특정 인스턴스의 제한을 초과하면 New Relic으로 전송되지 않습니다. New Relic에 데이터가 표시되지 않으면 문제 해결 절차 를 검토하여 한도를 초과했는지 확인하세요.

각 도메인에는 수집할 배열이 포함되어 있습니다. 각 빈에 대해 다음 키가 정의됩니다.

  • query: 수집할 빈 이름. 예: type=GarbageCollector,name=YoungGen . 와일드카드를 사용할 수 있습니다. 예: type=GarbageCollector,name=* . 이 필드는 필수입니다.
  • exclude_regex: 컬렉션에서 제외할 빈과 일치하는 정규식 패턴의 선택적 목록입니다. 예: type=GarbageCollector,name=.* .
  • attributes: 수집할 속성 목록입니다. 지정하지 않으면 모든 속성을 수집합니다.

중요

HashMapArrayList 데이터 유형은 지원되지 않습니다.

속성

각 빈은 속성, 컬렉션에서 제외할 수 있는 빈의 선택적 목록을 포함할 수 있습니다. 각 속성에 대해 다음 키가 정의됩니다.

중요

지도 속성의 경우 attr 또는 attr_regex 키를 정의해야 합니다.

  • attr: 속성 이름과 정확히 일치합니다. 복합 속성은 점으로 속성 이름에 복합 멤버 이름을 추가하여 수집할 수 있습니다. 예: HeapMemoryUsage.Max .

  • attr_regex: 수집할 속성과 일치하는 정규식 패턴입니다.

  • metric_type: 이 속성을 수집할 New Relic 메트릭 유형입니다. 옵션은 다음과 같습니다.

    • gauge: 데이터는 즉각적인 수치 측정으로 수집됩니다.
    • rate: 초당 해당 메트릭의 변화로 데이터가 수집됩니다.
    • delta: 데이터는 마지막 측정 이후 해당 메트릭의 변화로 수집됩니다.
    • attribute: 데이터는 문자열 리터럴로 수집됩니다.

    지정하지 않으면 JMX 통합은 반환된 값을 기반으로 메트릭 유형을 추론하려고 시도합니다. 예를 들어 측정항목이 숫자인 경우 gauge 으로 수집합니다. 측정항목이 문자열인 경우 attribute 로 수집합니다.

    메트릭이 잘못된 메트릭 유형으로 수집된 경우 컬렉션 파일에서 올바른 메트릭 유형을 수동으로 지정할 수 있습니다.

  • metric_name: 메트릭이 New Relic에 나타날 이름입니다. 지정하지 않으면 기본적으로 속성 이름이 사용됩니다.

JMX 쿼리에 대한 자세한 내용은 Oracle ObjectName 설명서를 참조하십시오.

Kubernetes 주석을 사용한 컬렉션 구성

Kubernetes 주석을 사용하여 컬렉션 구성을 제공할 수 있습니다. 이를 달성하려면 nri-jmx 애플리케이션에 대한 구성 파일을 생성할 Kubernetes 클러스터에 configMap 을 배포해야 합니다.

이 구성 파일에서 Kubernetes 주석을 포함하여 통합 구성에서 자리 표시자를 사용할 수 있도록 하는 컨테이너 자동 검색 에 대한 명령을 지정해야 합니다.

Tomcat 애플리케이션에서 JVM을 모니터링하는 configMap 의 예:

다음으로 주석을 사용하여 컬렉션 구성을 정의합니다. 예를 들어 다음은 주석이 있는 Tomcat 배포입니다.

apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
labels:
app: java
spec:
replicas: 1
selector:
matchLabels:
app: java
template:
metadata:
annotations:
newrelic.config: >-
{
"collect": [
{
"domain": "java.lang",
"event_type": "JVMSample",
"beans": [
{
"query": "type=GarbageCollector,name=*",
"attributes": [
"CollectionCount",
"CollectionTime"
]
},
{
"query": "type=Memory",
"attributes": [
"HeapMemoryUsage.Committed",
"HeapMemoryUsage.Init",
"HeapMemoryUsage.Max",
"HeapMemoryUsage.Used",
"NonHeapMemoryUsage.Committed",
"NonHeapMemoryUsage.Init",
"NonHeapMemoryUsage.Max",
"NonHeapMemoryUsage.Used"
]
},
{
"query": "type=Threading",
"attributes": [
"ThreadCount",
"TotalStartedThreadCount"
]
},
{
"query": "type=ClassLoading",
"attributes": [
"LoadedClassCount"
]
},
{
"query": "type=Compilation",
"attributes": [
"TotalCompilationTime"
]
}
]
}
]
}
labels:
app: java
spec:
containers:
- name: tomcat
image: tomcat:10.0.12
ports:
- containerPort: 9999
env:
- name: CATALINA_OPTS
value: '-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'

선택 사항: 맞춤형 커넥터

JMX를 사용하면 사용자 지정 커넥터를 사용하여 애플리케이션과 통신할 수 있습니다. 사용자 지정 커넥터를 사용하려면 nrjmx 클래스 경로에 사용자 지정 커넥터를 포함해야 합니다.

기본적으로 하위 폴더 connectors 은(는) 클래스 경로에 있습니다. 이 폴더가 없으면 nrjmx가 설치된 폴더 아래에 만듭니다.

예를 들어, JBoss에 대한 지원을 추가하려면 기본(Linux) 라이브러리 경로 /usr/lib/nrjmx/ ( /usr/lib/nrjmx/connectors/ ) 아래에 connectors 라는 폴더를 만들고 여기에 사용자 지정 커넥터 jar( $JBOSS_HOME/bin/client/jboss-cli-client.jar )를 복사합니다. 이제 JBoss에 대해 JMX 쿼리를 실행할 수 있습니다.

구성 예

호스트에 설치하기 위한 파일 구성 예:

호스트 내 통합 구성의 일반 구조에 대한 자세한 내용은 구성 을 참조하십시오.

데이터 이름 지정에 대한 팁

메트릭은 샘플 형태로 전송 및 저장됩니다. 메트릭 데이터와 메타데이터를 포함하는 키-값 쌍의 목록입니다. 각 샘플은 New Relic의 이벤트 데이터베이스에 이벤트 로 저장됩니다.

New Relic에 보고된 JMX 데이터를 만들고 이름을 지정하는 것은 귀하의 책임입니다. 이러한 이유로 New Relic은 이벤트 유형의 이름을 지정할 때 이러한 규칙을 따를 것을 강력히 권장합니다. 일관된 명명 체계를 유지하려면 다음을 수행하십시오.

  • 낙타 케이스를 사용하십시오.
  • 어떤 데이터가 포함되어 있는지 명확하게 식별할 수 있는 이름을 사용하십시오.

예시: MyorgApplicationSample

권장 사항: 서로 다른 애플리케이션에서 유사한 메트릭에 대해 동일한 이름 지정 체계를 사용합니다.

데이터 찾기 및 사용

이 서비스의 데이터는 통합 대시보드 에 보고됩니다.

JMX 데이터는 구성 파일 에 지정된 사용자 정의 이벤트 유형 에 첨부됩니다. 예를 들어 JMX 통합을 사용하여 Tomcat을 모니터링하는 데 관심이 있는 경우 TomcatSample }이라는 event_type 를 정의하고 해당 이벤트 유형을 쿼리합니다 .

문제 해결을 위해 이 데이터를 쿼리 하거나 사용자 지정 차트 및 대시보드를 만들 수 있습니다.

데이터를 찾고 사용하는 방법에 대한 자세한 내용은 통합 데이터 이해 를 참조하십시오.

측정항목 데이터

통합에 의해 생성된 메트릭에는 수집하는 MBean 과 관련된 메타데이터가 포함됩니다. NRQL 쿼리 에서 이 메타데이터를 사용하여 쿼리가 원하는 빈에 대한 데이터만 반환하도록 데이터를 필터링하고 패싯할 수 있습니다. 또한 메트릭 이름이 모든 Bean 간에 고유하지 않아도 되므로 메트릭을 고유하게 식별하는 데 사용할 수도 있습니다.

각 이벤트에는 다음 메타데이터가 포함됩니다.

이름

설명

displayName

이러한 메트릭에 대한 JMX 도메인 이름입니다.

entityName

엔티티 유형 "domain:"이 추가된 이러한 메트릭의 JMX 도메인 이름입니다.

host

메트릭이 수집되는 JMX 호스트입니다.

query

이러한 측정항목을 수집하는 데 사용되는 쿼리입니다.

bean

이러한 메트릭이 수집된 속성의 Bean입니다.

key:<mbean_key>

Bean 이름의 각 키에 대해 Bean 키 값과 함께 “key:<mbean_key> 이라는 메트릭 세트에 속성이 추가됩니다.

NRQL 쿼리 예

다음은 수집된 모든 JVM 가비지 수집기를 모니터링하는 메타데이터를 활용하는 NRQL 쿼리의 예입니다.

SELECT latest(CollectionTime)
FROM JVMSample
FACET `key:name`
WHERE `key:type` = 'GarbageCollector'

측정항목 데이터 속성

JMX 통합은 다음 메트릭 데이터 속성을 수집합니다.

이름

설명

HeapMemoryUsage.Used

사용된 총 Java 힙 메모리입니다.

HeapMemoryUsage.Committed

사용하도록 커밋된 총 Java 힙 메모리입니다.

HeapMemoryUsage.Init

할당된 초기 Java 힙 메모리입니다.

HeapMemoryUsage.Max

사용 가능한 최대 Java 힙 메모리입니다.

NonHeapMemoryUsage.Used

사용된 총 Java 비힙 메모리입니다.

NonHeapMemoryUsage.Committed

사용하도록 커밋된 전체 Java 비힙 메모리입니다.

NonHeapMemoryUsage.Init

할당된 초기 Java 비힙 메모리입니다.

NonHeapMemoryUsage.Max

사용 가능한 최대 Java 비힙 메모리입니다.

ThreadCount

라이브 스레드 수입니다.

CollectionCount

발생한 총 가비지 컬렉션 수입니다.

CollectionTime

대략적인 누적 가비지 수집 시간이 경과했습니다.

인벤토리 데이터

JMX 통합은 JMX 통합의 구성 매개변수를 캡처합니다. 데이터는 config/jmx 소스 아래의 인벤토리 페이지 에서 사용할 수 있습니다. 인벤토리 데이터에 대한 자세한 내용은 통합 데이터 이해 를 참조하십시오.

문제점 해결

문제 해결 팁:

' '

' '

소스 코드 확인

이 통합은 오픈 소스 소프트웨어입니다. 즉 , 소스 코드를 탐색하고 개선 사항을 보내거나 고유한 포크를 만들어 빌드할 수 있습니다.

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.