• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

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

문제 신고

Prometheus 에이전트 설정

Prometheus 에이전트 구성

에이전트의 config 섹션에 아래 예시를 배치해야 합니다. 귀하의 경우에 대해 알고 있는 설치 방법을 참조하십시오.

Helm을 사용하여 에이전트를 구성하려면 다음 두 가지 방법 중 하나로 values.yaml 설정해야 합니다.

New Relic을 추가해야 합니다. values.yaml 파일에서.

스크랩할 엔드포인트 정의

기본적으로 New Relic Prometheus 에이전트는 newrelic.io/scrape: "true"prometheus.io/scrape: "true" 이라는 두 가지 주석을 사용하여 대상을 검색합니다.

newrelic.io/scrape: "true" 주석이 달린 클러스터의 모든 대상은 기본적으로 검색되고 스크랩됩니다. prometheus.io/scrape: "true" 로 주석이 달린 대상은 구성에 따라 스크랩되거나 스크랩되지 않습니다.

Prometheus 통합에서만 메트릭 스크랩

Prometheus 에이전트는 Kubernetes에서 가장 널리 사용되는 통합에서 측정항목을 스크랩하도록 구성할 수 있습니다. 대시보드 세트가 포함된 통합 목록을 살펴보세요. 즉시 모니터링을 시작합니다.

해당 목록은 New Relic의 Prometheus 에이전트 투구 차트의 values.yaml 에 정의되어 있습니다. 이 목록을 수정할 수 있지만 일부 사용자 지정 레이블 또는 값을 사용하면 기본적으로 작동하지 않을 수 있습니다.

업그레이드할 때 새 통합 필터를 사용할 수 있습니다. 따라서 통합 필터와 관련된 업그레이드 후 클러스터의 서비스에 따라 스크랩되는 데이터의 양이 증가할 수 있습니다. values.yaml 파일에 app_values 의 고정 목록을 저장하여 이를 방지할 수 있습니다. 예를 들어:

app_values: ["redis", "traefik", "calico", "nginx", "coredns", "kube-dns", "etcd", "cockroachdb"]

또한 통합 필터의 새 버전으로 인해 한 작업에서 이미 스크랩한 대상이 두 번째로 스크랩될 수 있습니다. 중복 데이터 발생 시 알림을 수신하고 중복 스크래핑을 방지하려면 다음 쿼리를 기반으로 경고를 생성할 수 있습니다.

FROM Metric select uniqueCount(job) facet instance, cluster_name limit 10 since 2 minutes ago

값이 1이 아닌 경우 동일한 클러스터에서 동일한 인스턴스를 스크래핑하는 작업이 둘 이상 있는 것입니다.

모든 대상에서 메트릭 스크랩

prometheus.io/scrape: "true" 주석이 달린 모든 대상을 스크랩해야 하는 경우 선택한 설치 방법에 따라 다음 작업 중 하나를 수행해야 합니다.

  • 안내 설치를 사용한 경우 Scrape all Prometheus endpoints [Scrape all Prometheus 엔드포인트] 옵션을 선택하세요.

  • Helm을 사용한 경우 prometheus-agent 구성에 다음 값을 추가합니다.

    kubernetes:
    integrations_filter:
    enabled: false

Kubernetes 대상 검색

Kubernetes 작업은 target_discovery 구성에 따라 대상을 검색하고 대상을 긁습니다. target_discovery 구성 내에서 podendpoints 토글을 true 로 설정하면 Prometheus는 노출된 포트가 있는 클러스터의 포드 또는 엔드포인트를 검색하는 규칙을 생성합니다.

target_discovery.filter 구성 매개변수를 사용하여 Prometheus가 스크랩하는 대상을 필터링합니다. labelannotations 레이블을 사용하여 현재 조건으로 필터링하고 모든 조건에 대해 AND 연산자를 사용하십시오.

다음 예는 newrelic.io/scrape: "true" 주석이 있는 PodsEndpoints 과 값이 postgres 또는 mysqlk8s.io/app 레이블만 스크랩합니다. 끝점의 경우 관련 서비스에 주석이 있어야 합니다. 정규식은 고정됩니다. 즉, scrape: 'true' 구성하면 Prometheus는 true ^true$ 로 평가합니다. 이를 방지하려면 .*true.* 사용하여 a-true-example 과도 일치하도록 합니다.

kubernetes:
jobs:
- job_name_prefix: example
integrations_filter:
enabled: false
target_discovery:
pod: true
endpoints: true
filter:
annotations:
# <string>: <regex>
newrelic.io/scrape: 'true'
label:
# <string>: <regex>
k8s.io/app: '(postgres|mysql)'

레이블 또는 주석에 대한 값을 추가하지 않으면 필터는 존재 여부만 확인합니다.

정적 대상 설정

프로메테우스 에이전트는 기본적으로 자체 메트릭을 스크레이핑하기 위해 정적 대상 작업을 정의하지만 추가 작업을 포함하여 추가 정적 대상을 설정할 수 있습니다.

다음 예제에는 별도로 관리되는 서버를 스크랩하는 추가 작업과 기본적으로 정의된 대로 prometheus 에이전트 메트릭을 계속 보고하는 자체 메트릭 작업이 포함됩니다.

static_targets:
jobs:
- job_name: managed-exporter
targets:
- "managed_exporter.your-company.tld:5432"
- job_name: self-metrics
skip_sharding: true # sharding is skipped to obtain self-metrics from all Prometheus servers.
targets:
- "localhost:9090"
extra_metric_relabel_config:
- source_labels: [__name__]
action: keep
regex: "\
prometheus_agent_active_series|\
prometheus_target_interval_length_seconds|\
prometheus_target_scrape_pool_targets|\
prometheus_remote_storage_samples_pending|\
prometheus_remote_storage_samples_in_total|\
prometheus_remote_storage_samples_retried_total|\
prometheus_agent_corruptions_total|\
prometheus_remote_storage_shards|\
prometheus_sd_kubernetes_events_total|\
prometheus_agent_checkpoint_creations_failed_total|\
prometheus_agent_checkpoint_deletions_failed_total|\
prometheus_remote_storage_samples_dropped_total|\
prometheus_remote_storage_samples_failed_total|\
prometheus_sd_kubernetes_http_request_total|\
prometheus_agent_truncate_duration_seconds_sum|\
prometheus_build_info|\
process_resident_memory_bytes|\
process_virtual_memory_bytes|\
process_cpu_seconds_total"

주의

static_targets 섹션을 수정하고 자체 지표 작업을 포함하지 않으면 에이전트 지표가 보고되지 않습니다.

대상 스크랩 간격

기본적으로 Prometheus 에이전트는 구성의 모든 스크래핑 작업에 대해 common.scrape_interval 에 정의된 대로 30초마다 측정항목의 모든 대상을 스크래핑합니다. 해당 섹션에서 scrape_interval 키를 사용하여 이를 변경할 수 있습니다.

이 예는 스크랩 간격이 다른 두 개의 Kubernetes 작업을 보여줍니다.

common:
scrape_interval: 30s
kubernetes:
jobs:
# this job will use the default scrape_interval defined in common.
- job_name_prefix: default-targets-with-30s-interval
target_discovery:
pod: true
filter:
annotations:
newrelic.io/scrape: 'true'
- job_name_prefix: slow-targets-with-60s-interval
scrape_interval: 60s
target_discovery:
pod: true
filter:
annotations:
newrelic.io/scrape_slow: 'true'

측정항목 및 라벨 변환

모든 구성 섹션에서 메트릭 및 레이블 변환을 적용할 수 있지만 원격 쓰기 수준에서 설정하면 필터링 또는 변환이 더 넓어집니다.

newrelic_remote_write 수준에서 설정하면 New Relic으로 전송되는 모든 측정항목에 필터가 적용됩니다. 다른 섹션에서 설정하면 해당 섹션에서 스크랩한 메트릭에 적용됩니다. 측정항목 필터 프로세스는 측정항목이 대상에서 스크랩된 후에 발생합니다.

extra_metric_relabel_config 매개변수를 사용하여 metric_relabel_config 매개변수의 항목을 추가하는 필터를 적용할 수 있습니다. 이 매개변수는 static_targets.jobs , kubernetes.jobsnewrelic_remote_write 에 대한 extra_write_relabel_configs 매개변수에 있습니다.

다음은 YAML 구성 파일의 다른 부분에서 이를 사용하는 방법의 예입니다.

static_targets:
- name: self-metrics
urls:
- 'http://static-service:8181'
extra_metric_relabel_config:
# Drop metrics with prefix 'go_' for this target.
- source_labels: [__name__]
regex: 'go_.+'
action: drop
newrelic_remote_write:
extra_write_relabel_configs:
# Drop all metrics with the specified name before sent to New Relic.
- source_labels: [__name__]
regex: 'metric_name'
action: drop

YAML 파일 스니펫 샘플

메트릭 및 레이블 변환 섹션에서 YAML 구성 파일에 이러한 예제 중 하나를 추가하십시오.

메트릭을 필터링하려면

메트릭 레이블을 추가하거나 제거하려면

중요

메트릭 레이블 이름은 Prometheus DataModel 을 준수해야 합니다.

대상 권한 부여 구성

연결하는 사용자가 액세스할 수 있는 데이터를 가져오기 위한 No-SQL 데이터베이스 또는 메트릭 엔드포인트에서 합리적인 데이터를 노출하는 내보내기와 같은 일부 대상은 스크랩할 액세스 권한이 필요합니다. Prometheus에서 지원하는 모든 인증 방법은 static_targetskubernetes 섹션에서 구성할 수 있습니다.

설치 가이드 에 설명된 대로 YAML을 기반으로 Prometheus에 대한 구성을 생성합니다. 구성의 이 부분은 YAML에서 있는 그대로 Prometheus에 전달되었으므로 Prometheus 설명서를 참조하십시오.

다음은 액세스 권한이 필요한 대상을 처리하는 몇 가지 예입니다.

kubernetes:
jobs:
- job_name_prefix: skip-verify-on-https-targets
target_discovery:
pod: true
filter:
annotations:
newrelic.io/scrape: 'true'
- job_name_prefix: bearer-token
target_discovery:
pod: true
filter:
label:
k8s.io/app: my-app-with-token
authorization:
type: Bearer
credentials_file: '/etc/my-app/token'
startic_targets:
jobs:
- job_name: mtls-target
scheme: https
targets:
- 'my-mtls-target:8181'
tls_config:
ca_file: '/etc/my-app/client-ca.crt'
cert_file: '/etc/my-app/client.crt'
key_file: '/etc/my-app/client.key'
- job_name: basic-auth-target
targets:
- 'my-basic-auth-static:8181'
basic_auth:
password_file: '/etc/my-app/pass.htpasswd'
Copyright © 2024 New Relic Inc.

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