Kubernetes / Base Agent

쿠버네티스 환경에서 DataSaker Base Agent 설치하기

Base agent는 서버에서 발생하는 다양한 정보를 실시간으로 수집합니다. 예를 들어, 메모리, CPU 사용량 등 서버의 성능 지표, 네트워크 트래픽, Container 정보 등 다양한 정보를 수집할 수 있습니다. 이를 통해 고객은 서버의 상태를 실시간으로 모니터링할 수 있으며, 이를 기반으로 서버의 성능을 최적화하고 안정성을 높일 수 있습니다. 고객의 요구사항에 맞게 에이전트 설정을 조정하여 최적의 결과를 제공해 드립니다.

DataSaker 선행 작업을 진행하였나요?

현재 Kubernetes 환경에 DataSaker의 선행 작업이 진행되지 않으셨다면 DataSaker 선행 작업을 먼저 진행하여 주시기 바랍니다. DataSaker 선행 작업

Base agent 설치하기

1. Base agent 설정 값 등록

cat << EOF >> ~/datasaker/config.yaml

baseAgent:
  enabled: true
  enableMaster: true
  nodeAgent:
    logLevel: 'INFO'
  containerAgent:
    logLevel: 'INFO'
  processAgent:
    logLevel: 'INFO'
EOF

각 설정 값에 대한 자세한 설명은 다음과 같습니다.

설정 설명
baseAgent.enabled base agent를 활성화할지 여부를 결정합니다.
baseAgent.enableMaster base agentcontrol-plane 노드에도 배포할지 여부를 결정합니다.
baseAgent.nodeAgent.logLevel node agent의 로그 레벨을 설정합니다.
baseAgent.containerAgent.logLevel container agent의 로그 레벨을 설정합니다.
baseAgent.processAgent.logLevel process agent의 로그 레벨을 설정합니다.

2. Base agent 설치

helm upgrade datasaker datasaker/agent-helm -n datasaker \
  -f ~/datasaker/config.yaml

트러블슈팅

포트 사용 이슈

Base Agent는 모니터링을 위해, 설치 환경에서 두 개의 포트를 사용합니다. (default=14194,19110) 해당 포트를 서버의 다른 프로그램이 이미 점유중일때, Base agent는 정상적으로 기동하지 못하며 다음과 같은 로그를 출력합니다.

ts=2023-03-14T02:54:49.460Z caller=node_exporter.go:201 level=error err="listen tcp :19110: bind: address already in use"
{"level":"error","ts":"2023-03-14T02:54:49Z","msg":"error occurred from subprocess","error":"error occured during running child process. err: exit status 1"}
{"level":"error","ts":"2023-03-14T02:54:49Z","msg":"error occurred from subprocess","error":"exporter exit unexpectedly and retry count exceeded"}
{"level":"fatal","ts":"2023-03-14T02:54:49Z","msg":"child process is terminated unexpectedly, please check other logs","error":"exporter exit unexpectedly and retry count exceeded"}

이 문제를 해결하기 위해서, config.yaml 파일에 listenPort 설정을 추가할 수 있습니다.

예를들어, base agent 내부의 node agent가 사용하는 19110 포트를 19111로 바꾸기 위해 다음과 같이 설정을 수정할 수 있습니다.

baseAgent:
  enabled: true
  enableMaster: true
  nodeAgent:
    logLevel: 'INFO'
    listenPort: 19111
  containerAgent:
    logLevel: 'INFO'
  processAgent:
    logLevel: 'INFO'