HCP 영사 모니터링
HCP(Hashicorp Cloud Platform) Consul은 컨트롤 플레인이 HashiCorp Cloud Platform에서 관리되는 Consul 버전입니다. HCP Consul은 Hashicorp에서 제공하는 서비스 메시 및 서비스 검색 솔루션입니다. 이를 통해 플랫폼 운영자는 기본적으로 안전한 완전 관리형 서비스 메시를 신속하게 배포할 수 있으므로 개발자는 Kubernetes, Nomad 및 Amazon ECS를 포함하여 모든 런타임에서 모든 애플리케이션을 검색하고 안전하게 연결할 수 있습니다.
Consul 클러스터를 건강하게 유지하면 SQL 쿼리 시간 최적화, 느린 HTTP 응답 시간 문제 해결, Hashicorp 클러스터의 가동 중지 시간에 대한 실시간 경고에 도움이 될 수 있습니다. Hashicorp 클러스터 메트릭을 모니터링하는 것은 Hashicorp 메시 서비스를 최대 용량으로 유지하는 데 매우 중요합니다.
New Relic으로 HCP Consul 지표 모니터링
HCP Consul이 설치되는 방법과 환경에는 여러 가지가 있습니다. 아래 예에서는 Terraform을 통해 설치된 HCP의 Quick Start로 작업합니다.
New Relic은 StatsD 플러그인 통합을 통해 HCP Consul 및 Envoy 메트릭 모니터링을 지원합니다. StatsD 플러그인은 HCP Consul이 노출한 모든 메트릭을 집계하고 데이터 시각화 및 경고를 위해 New Relic에 푸시합니다.
Terraform 배포 파일 생성
HCP Portal 계정의 개요 페이지에서 Terraform 배포 파일을 생성합니다.
Consul 클러스터 배포
종단 간 개요 에서 해당 환경에 대한 단계에 따라 Consul 클러스터를 배포합니다.
매우 중요!:
배포 페이지 하단에 있는 Consul CLI 구성 을 따르십시오!
gostatsd 설치
deploy-gostatsd.yaml 및 rbac-gostatsd.yaml 을 로컬 Kubernetes 클라이언트에 복사합니다.
deploy-gstatsd.yaml 편집
YOUR_NEW_RELIC_ACCOUNT_ID 를 New Relic 계정 ID로 바꾸십시오.
YOUR_NEW_RELIC_LICENSE_KEY를 New Relic로 교체
.
필요한 경우 EU 또는 FedRAMP 계정의 URL을 조정합니다(파일의 설명 참조).
gostatsd 배포
로컬 Kubernetes 클라이언트에서 다음 명령을 실행합니다.
$kubectl apply -f deploy-gostatsd.yaml$kubectl apply -f rbac-gostatsd.yaml
메트릭을 보고하도록 Consul 클라이언트 구성
consul-Client-configMap 편집
Consule 클라이언트의 ConfigMap을 편집하여 Consule 원격 분석 구성 을 추가합니다.
$kubectl edit cm consul-client-config
데이터 아래에 다음을 추가합니다.
telemetry-config.json: |- { "telemetry": { "disable_hostname": false, "disable_compat_1.9": true, "dogstatsd_addr": "gostatsd.default.svc.cluster.local:8125", "dogstatsd_tags": ["consul.source.datacenter:<YOUR_CONSUL_DATACENTER_NAME_HERE>"] } }
결과는 다음과 같아야 합니다.
apiVersion: v1data: central-config.json: |- { "enable_central_service_config": true } config.json: |- { "check_update_interval": "0s" } extra-from-values.json: '{}' telemetry-config.json: |- { "telemetry": { "disable_hostname": false, "disable_compat_1.9": true, "dogstatsd_addr": "gostatsd.default.svc.cluster.local:8125", "dogstatsd_tags": ["consul.source.datacenter:<YOUR_CONSUL_DATACENTER_NAME_HERE>"] } }
메모
- 여기서는 dogstatsd_addr 을 사용하여 consul.source.datacenter 를 추가할 수 있습니다. 각 측정항목에 태그를 지정합니다. 이를 통해 New Relic ONE 대시보드는 Consul Datacenter별로 패싯할 수 있습니다.
- <YOUR_CONSUL_DATACENTER_NAME_HERE> 를 Consul Datacenter 이름으로 바꿔야 합니다.
- Consul 원격 분석 구성 옵션을 참조하십시오.
consul-connect-injector 배포 편집
배포를 편집하여 배포에서 Consule 메트릭을 활성화합니다.
$kubectl edit deploy consul-connect-injector
default-enable-metrics 를 검색하고 true 로 설정합니다.
-default-enable-metrics=true \
Consul 클라이언트 포드 다시 시작
Consul 클라이언트는 구성 변경 후 다시 시작하거나 다시 시작하지 않을 수 있습니다. 그렇지 않은 경우 각 Consul 클라이언트 포드를 다시 시작합니다.
$kubectl delete pod consul-client-<POD_ID> -n <NAMESPACE>
New Relic에서 Consul 메트릭 찾아보기
New Relic에서 HCP Consul 데이터를 보려면 쿼리 빌더 로 이동하십시오.
그런 다음 아래 쿼리를 사용하여 HCP Consul 메트릭을 확인합니다.
SELECT * FROM Metric WHERE metricName LIKE 'consul.%' SINCE 1 minute ago
대시보드 설치
클라이언트, 네트워크, 런타임, serf 및 Envoy에 대한 HCP Consul의 주요 메트릭을 볼 수 있는 사전 구축된 대시보드로 몇 분 만에 시작하십시오.
New Relic Instant Observability의 HCP Consul 빠른 시작 으로 이동하고 + 지금 설치 를 클릭합니다.
문제점 해결
초기화 시 충돌이 발생하는 포드의 경우:
$kubectl logs PODNAME -c consul-connect-inject-init
실행 중인 포드의 경우:
$kubectl logs PODNAME -c DEPLOYMENTNAME
유용한 kubectl 스니펫
모든 팟(Pod)을 삭제하십시오.
$kubectl get pods | grep PODNAMEPREFIX | cut -f 1 -d ' ' | xargs kubectl delete pods
배포 및 배포에서 생성되는 포드를 삭제합니다.
$kubectl delete deployment DEPLOYMENTNAME -n default