AppDynamics CNS로 Consul 모니터링
AppDynamics CNS로 Consul 모니터링 (Monitor Consul with AppDynamics CNS)
AppDynamics CNS용 Consul 모니터링 확장으로 Consul 텔레메트리 데이터를 모니터링하는 과정을 설명해요.
출처: 문서
본문
이 페이지는 AppDynamics CNS용 Consul 모니터링 확장으로 Consul 텔레메트리 데이터를 모니터링하는 과정을 설명합니다.
개요 (Overview)
Consul은 다양한 형식의 다양한 메트릭을 생성하며, 이를 통해 운영자는 데이터센터의 상태와 안정성을 측정하고 잠재적인 문제를 진단하거나 예측할 수 있습니다.
이 자습서는 AppDynamics CNS용 HashiCorp Consul 모니터링 확장을 사용해 Consul 텔레메트리 데이터와 노드 정보를 수집하는 방법을 보여줍니다.
Consul 에이전트에 AppDynamics Machine Agent를 설치하고 노드 텔레메트리 메트릭을 수집하는 메트릭 집계기로 statsite를 사용할 것입니다.
이 확장은 AppDynamics 컨트롤러로 가져올 두 개의 예시 대시보드를 제공합니다.
전제 조건 및 구성 (Prerequisites and configuration)
이 자습서를 완료하려면 다음 전제 조건이 충족되어야 합니다.
- AppDynamics로 모니터링할 실행 중인 Consul 데이터센터
- 버전 4.5 이상의 AppDynamics SaaS 또는 On-Prem 컨트롤러
- 모니터링되는 Consul 에이전트는 AppDynamics Machine Agent 요구 사항과 지원 환경도 충족해야 합니다.
모니터링 설정 (Setup monitoring)
통합을 네 단계로 수행합니다.
- Consul 노드에 JRE를 포함한 AppDynamics Machine Agent를 설치합니다.
- AppDynamics CNS용 HashiCorp Consul 모니터링 확장을 설치합니다.
- 노드 메트릭을 수집하기 위해 statsite(즉, statsd와 같은 메트릭 집계기)를 빌드하고 설치합니다.
- Consul이 AppDynamics 에이전트로 텔레메트리 데이터를 보내도록 구성합니다.
AppDynamics Machine Agent 번들 설치 (Install AppDynamics Machine Agent bundle)
Consul 데이터센터를 AppDynamics와 통합하려면 모니터링하려는 모든 노드에 AppDynamics Machine Agent를 설치하고 구성하며, Consul이 여기에 텔레메트리 데이터를 보내도록 구성합니다.
- AppDynamics Machine Agent 번들을 다운로드합니다.
- root 또는 슈퍼 사용자로 압축을 풀고 서비스 파일을 설정합니다.
공식 설치 안내는 AppDynamics 문서 웹사이트에 있습니다.$ sudo su $ mkdir -p /opt/appdynamics/machine-agent $ unzip ./machineagent-bundle-64bit-linux-4.5.15.2316.zip -d /opt/appdynamics/machine-agent $ cp /opt/appdynamics/machine-agent/etc/systemd/system/appdynamics-machine-agent.service /etc/systemd/system/appdynamics-machine-agent.service $ systemctl daemon-reload - 스탠드얼론 모드로 실행될 때 AppDynamics Machine Agent가 컨트롤러와 통신하도록 구성합니다.
참고로 이는 컨트롤러 파일$ cd /opt/appdynamics/machine-agent/conf $ vi controller-info.xmlcontroller-info.xml을 편집해야 합니다. 아래 단계를 시작하기 전에 AppDynamics Controller 액세스 정보를 얻어controller-info.xml파일에 구성해야 합니다. 구성 참조는 Standalone Machine Agent 구성을 참조하세요. maxMetrics값을 높여 데이터가 잘리지 않도록 하는 것이 좋습니다.maxMetrics값을 높이도록 AppDynamics 에이전트 서비스 정의에 Java 옵션을 추가하세요.$ sed -i 's/#Environment="JAVA_OPTS=-D<sys-property1>=<value1> -D<sys-property2>=<value2>"/Environment="JAVA_OPTS=-Dappdynamics.agent.maxMetrics=10000"/g' /etc/systemd/system/appdynamics-machine-agent.service
AppDynamics machine agent를 Consul 텔레메트리용으로 구성 (Configure AppDynamics machine agent for Consul telemetry)
이제 에이전트가 구성되었으니 AppDynamics CNS용 모니터링 확장을 설치할 수 있습니다.
consul-appd-extension 리포를 복제하고 statsite 폴더의 내용을 /opt/appdynamics/machine-agent/monitors/StatSite로 복사합니다.
$ git clone https://github.com/hashicorp/consul-appd-extension.git
Cloning into 'consul-appd-extension'...
...
$ ls -1 ./consul-appd-extension/statsite/
monitor.xml
output.py
statsite.conf
statsite.sh
$ mkdir -p /opt/appdynamics/machine-agent/monitors/StatSite
$ cp ./consul-appd-extension/statsite/* /opt/appdynamics/machine-agent/monitors/StatSite
statsite 컴파일 및 설치 (Compile and install statsite)
확장은 statsite를 사용해 statsd Consul 메트릭을 AppDynamics로 가져옵니다. 이를 위해 에이전트 폴더에 포함된 statsite 실행 파일이 필요합니다.
다음 섹션은 노드용 statsite를 빌드하는 방법을 보여줍니다.
statsite를 성공적으로 빌드하는 데 필요한 종속성의 양 때문에 종속성 문제를 피하거나 노드에 불필요한 소프트웨어를 설치하지 않도록 Consul 에이전트와 다른 머신에서 빌드 작업을 수행하는 것이 좋습니다. 빌드가 완료되면 바이너리를 Consul 노드에 배포해 통합을 수행할 수 있습니다.
종속성 설치 (Install dependencies)
이 자습서는 다양한 Linux 배포판에 대한 빌드를 수행하는 명령을 제공하지만, OS에 가장 적합한 단계 집합을 찾으려면 공식 statsite 설치 안내를 참조해야 합니다.
$ apt-get update
$ apt-get -y install build-essential libtool autoconf automake scons python-setuptools lsof git texlive check
$ yum update
$ yum groupinstall -y 'Development Tools'
$ yum install -y install libtool autoconf automake scons python-setuptools lsof git texlive check
컴파일 (Compile)
$ cd ~ && wget https://github.com/statsite/statsite/archive/v0.8.0.zip
$ unzip v0.8.0.zip && cd statsite-0.8.0
$ ./bootstrap.sh
$ ./configure
$ make
설치 (Install)
설치하려면 모니터링하려는 모든 노드에 대해 statsite 실행 파일을 /opt/appdynamics/machine-agent/monitors/StatSite로 복사해야 합니다.
$ cp ./src/statsite /opt/appdynamics/machine-agent/monitors/StatSite
Consul이 statsite로 메트릭을 보내도록 구성 (Configure Consul to send metrics to statsite)
통합의 마지막 단계는 Consul 에이전트가 statsite를 통해 텔레메트리 데이터를 AppDynamics CNS로 보내도록 구성하는 것입니다.
consul-statsite.hcltelemetry {
dogstatsd_addr = "localhost:8125"
}
파일을 Consul 구성 폴더로 복사한 다음 통합을 사용할 모든 노드의 롤링 재시작을 수행해 Consul에 적용할 수 있습니다.
$ cp ./consul-statsite.hcl /etc/consul.d/
확장 리포는 AppDynamics machine agent 번들에 내장한 statsite 인스턴스를 사용하도록 이미 설정된 구성 파일을 제공합니다.
consul-statsite.json{
"telemetry": {
"statsite_address": "localhost:8125"
}
}
파일을 Consul 구성 폴더로 복사한 다음 통합을 사용할 모든 노드의 롤링 재시작을 수행해 Consul에 적용할 수 있습니다.
$ cp ./consul-appd-extension/consul-statsite.json /etc/consul.d/
텔레메트리 메트릭 표시 (Display telemetry Metrics)
이러한 통합이 지원하는 Consul 메트릭의 전체 목록과 각 메트릭이 의미하는 바에 대한 세부 정보는 Consul 텔레메트리 문서를 참조하세요.
메트릭 찾기 (Finding metrics)
확장이 보고하는 모든 메트릭은 Controller > Applications > Application > Metric Browser의 Metric Browser에서 사용할 수 있습니다.
Application Infrastructure Performance > Consul > Custom Metrics > statsd > consul은 사용 가능한 Consul 메트릭을 나열합니다.Application Infrastructure Performance > Consul > Custom Metrics > statsd > envoy는 Connect 서비스 메시에 사용 가능한 메트릭을 나열합니다.
사용자 정의 대시보드 (Custom dashboard)
확장 리포는 Consul 모니터링을 시작하는 데 도움이 되는 두 개의 사용자 정의 대시보드를 제공합니다. 이는 dashboards 폴더에 있습니다.
$ ls -1 ./dashboards
consul_dashboard.json
consul_servicemesh_dashboard.json
대시보드를 가져오려면:
- AppDynamics 컨트롤러에 로그인합니다.
Dashboards & Reports탭 >Dashboards>Import를 선택합니다. .json대시보드 파일을 업로드합니다.- 업로드되면 대시보드는
Dashboard & Reports탭에서 사용할 수 있습니다.
참고 템플릿 내
applicationName키의 값을 애플리케이션 이름과 일치하도록 변경해야 합니다.
사용자 정의 건강 규칙 (Custom health rules)
AppDynamics CNS는 트리거를 정의하는 정책 문인 건강 규칙을 사용자 정의할 수 있는 기능을 제공합니다. Consul에 대한 건강 규칙은 서비스 디스커버리와 서비스 메시를 사용하는 애플리케이션에 대해 생성되므로 애플리케이션과 Consul의 메트릭을 AppDynamics의 특정 애플리케이션에 대해 볼 수 있습니다.
다음 단계 (Next steps)
이 자습서에서는 AppDynamics machine agent를 Consul과 통합해 메트릭을 수집하고 사용자 정의 대시보드를 AppDynamics CNS로 가져와 모니터링 시작점을 확보하고 해당 메트릭을 시각화, 집계, 경고하는 옵션을 고려하는 방법을 배웠습니다.
대시보드를 개인화하는 방법에 대한 자세한 내용은 사용자 정의 대시보드 생성에 대한 AppDynamics 문서를 참조할 수 있습니다.