3.2.5.5.2. 기존 Elasticsearch 인스턴스에 연결

분산 추적이 있는 스토리지에 기존 Elasticsearch 클러스터를 사용할 수 있습니다. 외부 Elasticsearch 인스턴스라고도 하는 기존 Elasticsearch 클러스터는 Red Hat OpenShift distributed tracing platform Operator 또는 Red Hat Elasticsearch Operator에서 설치하지 않은 인스턴스입니다.

Jaeger 사용자 정의 리소스를 배포할 때 다음 구성이 설정된 경우 Red Hat OpenShift distributed tracing 플랫폼 Operator는 Elasticsearch를 프로비저닝하지 않습니다.

  • spec.storage.elasticsearch.doNotProvision set to true
  • spec.storage.options.es.server-urls 의 값이 있습니다.
  • spec.storage.elasticsearch.name 에 값이 있거나 Elasticsearch 인스턴스 이름이 elasticsearch 인 경우

Red Hat OpenShift distributed tracing platform Operator는 spec.storage.elasticsearch.name 에 지정된 Elasticsearch 인스턴스를 사용하여 Elasticsearch에 연결합니다.

제한 사항

  • OpenShift Container Platform 로깅 Elasticsearch 인스턴스를 분산 추적 플랫폼과 공유하거나 재사용할 수 없습니다. Elasticsearch 클러스터는 단일 분산 추적 플랫폼 인스턴스에 전용해야 합니다.
참고

Red Hat은 외부 Elasticsearch 인스턴스를 지원하지 않습니다. Customer Portal에서 테스트된 통합 매트릭스를 검토할 수 있습니다.

다음 구성 매개변수는 외부 Elasticsearch 인스턴스 라고도 하는 기존 Elasticsearch 인스턴스에 대한 것입니다. 이 경우 spec:storage:options:es 사용자 지정 리소스 파일에서 Elasticsearch에 대한 구성 옵션을 지정합니다.

표 3.8. 일반 ES 구성 매개변수

매개변수설명기본값
es:
  server-urls:

Elasticsearch 인스턴스의 URL입니다.

Elasticsearch 서버의 정규화된 도메인 이름입니다.

http://elasticsearch.<namespace>.svc:9200

es:
  max-doc-count:

Elasticsearch 쿼리에서 반환하는 최대 문서 수입니다. 이는 집계에도 적용됩니다. es.max-doc-countes.max-num-spans를 모두 설정하면 Elasticsearch에서 이 둘 중 작은 값을 사용합니다.

 

10000

es:
  max-num-spans:

[더 이상 사용되지 않음 - 향후 릴리스에서 제거되며 대신 es.max-doc-count를 사용합니다.] Elasticsearch에서 쿼리당 한 번에 가져올 최대 기간 수입니다. es.max-num-spanses.max-doc-count를 모두 설정하면 Elasticsearch는 이 둘 중 작은 값을 사용합니다.

 

10000

es:
  max-span-age:

Elasticsearch에서 기간에 대한 최대 조회 수입니다.

 

72h0m0s

es:
  sniffer:

Elasticsearch의 스니퍼 구성입니다. 클라이언트는 스니핑 프로세스를 사용하여 모든 노드를 자동으로 찾습니다. 기본적으로 비활성되어 있습니다.

true/ false

false

es:
  sniffer-tls-enabled:

Elasticsearch 클러스터를 스니핑할 때 TLS를 활성화하는 옵션입니다. 클라이언트는 스니핑 프로세스를 사용하여 모든 노드를 자동으로 찾습니다. 기본적으로 비활성화되어 있습니다.

true/ false

false

es:
  timeout:

쿼리에 사용되는 시간 제한입니다. 0으로 설정하면 시간 제한이 없습니다.

 

0s

es:
  username:

Elasticsearch에 필요한 사용자 이름입니다. 기본 인증은 지정된 경우 CA도 로드합니다. es.password도 참조하십시오.

  
es:
  password:

Elasticsearch에 필요한 암호입니다. es.username도 참조하십시오.

  
es:
  version:

주요 Elasticsearch 버전입니다. 지정하지 않으면 Elasticsearch에서 값을 자동으로 탐지합니다.

 

0

표 3.9. ES 데이터 복제 매개변수

매개변수설명기본값
es:
  num-replicas:

Elasticsearch의 인덱스당 복제본 수입니다.

 

1

es:
  num-shards:

Elasticsearch의 인덱스당 shard 수입니다.

 

5

표 3.10. ES 인덱스 구성 매개변수

매개변수설명기본값
es:
  create-index-templates:

true로 설정할 때 애플리케이션 시작 시 인덱스 템플릿을 자동으로 생성합니다. 템플릿이 수동으로 설치되면 false로 설정합니다.

true/ false

true

es:
  index-prefix:

분산 추적 플랫폼 인덱스에 대한 선택적 접두사입니다. 예를 들어, 이 값을 "production"으로 설정하면 "production-tracing-*"라는 인덱스가 생성됩니다.

  

표 3.11. ES 일괄 프로세서 구성 매개변수

매개변수설명기본값
es:
  bulk:
    actions:

대규모 프로세서가 디스크에 업데이트를 커밋하기 전에 큐에 추가할 수 있는 요청 수입니다.

 

1000

es:
  bulk:
    flush-interval:

다른 임계값에 관계없이 대규모 요청이 커밋된 후 time.Duration입니다. 대규모 프로세서 플러시 간격을 비활성화하려면 이를 0으로 설정합니다.

 

200ms

es:
  bulk:
    size:

대규모 프로세서가 디스크에 업데이트를 커밋하기 전에 대규모 요청이 수행할 수 있는 바이트 수입니다.

 

5000000

es:
  bulk:
    workers:

Elasticsearch에 대규모 요청을 수신하고 커밋할 수 있는 작업자 수입니다.

 

1

표 3.12. ES TLS 구성 매개변수

매개변수설명기본값
es:
  tls:
    ca:

원격 서버를 확인하는 데 사용되는 TLS 인증 기관(CA) 파일의 경로입니다.

 

기본적으로 시스템 신뢰 저장소를 사용합니다.

es:
  tls:
    cert:

이 프로세스를 원격 서버에 식별하는 데 사용되는 TLS 인증서 파일의 경로입니다.

  
es:
  tls:
    enabled:

원격 서버에 연결할 때 TLS(Transport Layer Security)를 활성화합니다. 기본적으로 비활성되어 있습니다.

true/ false

false

es:
  tls:
    key:

이 프로세스를 원격 서버에 식별하는 데 사용되는 TLS 개인 키 파일의 경로입니다.

  
es:
  tls:
    server-name:

원격 서버의 인증서에서 예상 TLS 서버 이름을 재정의합니다.

  
es:
  token-file:

전달자 토큰이 포함된 파일의 경로입니다. 이 플래그는 지정된 경우 CA(인증 기관) 파일도 로드합니다.

  

표 3.13. ES 아카이브 구성 매개변수

매개변수설명기본값
es-archive:
  bulk:
    actions:

대규모 프로세서가 디스크에 업데이트를 커밋하기 전에 큐에 추가할 수 있는 요청 수입니다.

 

0

es-archive:
  bulk:
    flush-interval:

다른 임계값에 관계없이 대규모 요청이 커밋된 후 time.Duration입니다. 대규모 프로세서 플러시 간격을 비활성화하려면 이를 0으로 설정합니다.

 

0s

es-archive:
  bulk:
    size:

대규모 프로세서가 디스크에 업데이트를 커밋하기 전에 대규모 요청이 수행할 수 있는 바이트 수입니다.

 

0

es-archive:
  bulk:
    workers:

Elasticsearch에 대규모 요청을 수신하고 커밋할 수 있는 작업자 수입니다.

 

0

es-archive:
  create-index-templates:

true로 설정할 때 애플리케이션 시작 시 인덱스 템플릿을 자동으로 생성합니다. 템플릿이 수동으로 설치되면 false로 설정합니다.

true/ false

false

es-archive:
  enabled:

추가 스토리지를 활성화합니다.

true/ false

false

es-archive:
  index-prefix:

분산 추적 플랫폼 인덱스에 대한 선택적 접두사입니다. 예를 들어, 이 값을 "production"으로 설정하면 "production-tracing-*"라는 인덱스가 생성됩니다.

  
es-archive:
  max-doc-count:

Elasticsearch 쿼리에서 반환하는 최대 문서 수입니다. 이는 집계에도 적용됩니다.

 

0

es-archive:
  max-num-spans:

[더 이상 사용되지 않음 - 향후 릴리스에서 제거되며 대신 es-archive.max-doc-count를 사용합니다.] Elasticsearch에서 쿼리당 한 번에 가져올 최대 기간 수입니다.

 

0

es-archive:
  max-span-age:

Elasticsearch에서 기간에 대한 최대 조회 수입니다.

 

0s

es-archive:
  num-replicas:

Elasticsearch의 인덱스당 복제본 수입니다.

 

0

es-archive:
  num-shards:

Elasticsearch의 인덱스당 shard 수입니다.

 

0

es-archive:
  password:

Elasticsearch에 필요한 암호입니다. es.username도 참조하십시오.

  
es-archive:
  server-urls:

Elasticsearch 서버의 쉼표로 구분된 목록입니다. 정규화된 URL로 지정해야 합니다(예: http://localhost:9200).

  
es-archive:
  sniffer:

Elasticsearch의 스니퍼 구성입니다. 클라이언트는 스니핑 프로세스를 사용하여 모든 노드를 자동으로 찾습니다. 기본적으로 비활성되어 있습니다.

true/ false

false

es-archive:
  sniffer-tls-enabled:

Elasticsearch 클러스터를 스니핑할 때 TLS를 활성화하는 옵션입니다. 클라이언트는 스니핑 프로세스를 사용하여 모든 노드를 자동으로 찾습니다. 기본적으로 비활성되어 있습니다.

true/ false

false

es-archive:
  timeout:

쿼리에 사용되는 시간 제한입니다. 0으로 설정하면 시간 제한이 없습니다.

 

0s

es-archive:
  tls:
    ca:

원격 서버를 확인하는 데 사용되는 TLS 인증 기관(CA) 파일의 경로입니다.

 

기본적으로 시스템 신뢰 저장소를 사용합니다.

es-archive:
  tls:
    cert:

이 프로세스를 원격 서버에 식별하는 데 사용되는 TLS 인증서 파일의 경로입니다.

  
es-archive:
  tls:
    enabled:

원격 서버에 연결할 때 TLS(Transport Layer Security)를 활성화합니다. 기본적으로 비활성되어 있습니다.

true/ false

false

es-archive:
  tls:
    key:

이 프로세스를 원격 서버에 식별하는 데 사용되는 TLS 개인 키 파일의 경로입니다.

  
es-archive:
  tls:
    server-name:

원격 서버의 인증서에서 예상 TLS 서버 이름을 재정의합니다.

  
es-archive:
  token-file:

전달자 토큰이 포함된 파일의 경로입니다. 이 플래그는 지정된 경우 CA(인증 기관) 파일도 로드합니다.

  
es-archive:
  username:

Elasticsearch에 필요한 사용자 이름입니다. 기본 인증은 지정된 경우 CA도 로드합니다. es-archive.password도 참조하십시오.

  
es-archive:
  version:

주요 Elasticsearch 버전입니다. 지정하지 않으면 Elasticsearch에서 값을 자동으로 탐지합니다.

 

0

볼륨 마운트가 있는 스토리지 예

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simple-prod
spec:
  strategy: production
  storage:
    type: elasticsearch
    options:
      es:
        server-urls: https://quickstart-es-http.default.svc:9200
        index-prefix: my-prefix
        tls:
          ca: /es/certificates/ca.crt
    secretName: tracing-secret
  volumeMounts:
    - name: certificates
      mountPath: /es/certificates/
      readOnly: true
  volumes:
    - name: certificates
      secret:
        secretName: quickstart-es-http-certs-public

다음 예는 시크릿에 저장된 볼륨 및 사용자/암호에서 마운트된 TLS CA 인증서가 포함된 외부 Elasticsearch 클러스터를 사용하는 Jaeger CR을 보여줍니다.

외부 Elasticsearch 예:

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simple-prod
spec:
  strategy: production
  storage:
    type: elasticsearch
    options:
      es:
        server-urls: https://quickstart-es-http.default.svc:9200 1
        index-prefix: my-prefix
        tls: 2
          ca: /es/certificates/ca.crt
    secretName: tracing-secret 3
  volumeMounts: 4
    - name: certificates
      mountPath: /es/certificates/
      readOnly: true
  volumes:
    - name: certificates
      secret:
        secretName: quickstart-es-http-certs-public

1
기본 네임스페이스에서 실행되는 Elasticsearch 서비스에 대한 URL입니다.
2
TLS 구성입니다. 이 경우 CA 인증서만 해당하지만 상호 TLS를 사용하는 경우 es.tls.key 및 es.tls.cert를 포함할 수 있습니다.
3
환경 변수 ES_PASSWORD 및 ES_USERNAME을 정의하는 시크릿입니다. kubectl create secret generic tracing-secret --from-literal=ES_PASSWORD=changeme --from-literal=ES_USERNAME=elastic에서 생성
4
모든 스토리지 구성 요소에 마운트되는 볼륨 마운트 및 볼륨입니다.