GCP VM instance에 ops agent 설치할때 트러블슈팅 참고자료

2022-09-10

.

Data_Engineering_TIL(20220910)

[개요]

GCP VM instance의 CPU, Memory 등 자원사용량 모니터링을 위해 ops agent 설치중에 접했었던 이슈사항과 해결 방안에 대한 내용임

[이슈별 트러블 슈팅 내용]

이슈사항 1. Cloud shell에서 ops agent 명령어 실행 시 에이전트를 설치하려고 하는 VM 인스턴스에 ssh 접속이 안되는 문제

아래와 같이 Cloud shell에서 ops agent 설치 명령어를 실행하게 되면 Fail이 나게 되고 로그를 찍어보면 ssh 접속 에러가 발생함


...

SUCCEEDED : [0/1] (0.0%)
FAILED : [1/1] (100.0%)
COMPLETED : [1/1] (100.0%)

$ cat ./google_cloud_ops_agent_provisioning/20220905-12345_45678/minman-project_asia-northeast3-a_minman-instance.log
Installing ops-agent
ssh: connect to host 11.11.111.111 port 22: Connection timed out

...

해결방안 : 에이전트를 설치하려고 하는 VM 인스턴스에 ssh 접속이 가능한 Local Terminal에서 ops agent 설치명령어를 실행한다.

이슈사항 2. ops agent 설치중에 centos No URLs in mirrorlist 에러 발생

에러메세지는 아래와 같다.

Cent OS Error : Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

해결방안 :

https://stackoverflow.com/questions/70926799/centos-through-a-vm-no-urls-in-mirrorlist 를 참고하여 해결함

STEP 1) sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-* 명령어 실행
STEP 2) sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-* 명령어 실행
STEP 3) sudo yum update -y 명령어 실행
STEP 4) ops agent 설치명령어 재실행

이슈사항 3. ops agent를 정상적으로 설치하였고, agent status 명령어를 실행했을때 정상상태임에도 불구하고 monitoring 서비스에서 해당 VM 인스턴스의 ops agent를 detecting 하지 못하는 현상

** 에이전트 정상설치 체크 확인방법 : 아래와 같이 해당 VM 인스턴스에서 명령어를 실행했을때 active 상태이면 정상구동중임

$ sudo service google-cloud-ops-agent status
  google-cloud-ops-agent.service - Google Cloud Ops Agent
  Loaded: loaded ...
  Active: active (exited) since ...

  ...

해결방안 : 해당 VM 인스턴스에 등록된 Service Account의 IAM Role에 Logging admin, Monitoring editor 권한이 부여되어 있는지 체크하고 없으면 권한부여를 해준다.

참고사항 : ops agent 재설치 방법

참고자료 : https://cloud.google.com/stackdriver/docs/solutions/agents/ops-agent/troubleshooting#reset-agent-state

$ sudo su -

# 에이전트 서비스를 중지합니다.
$ sudo service google-cloud-ops-agent stop

# 에이전트 패키지를 삭제합니다.
$ curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
$ sudo bash add-google-cloud-ops-agent-repo.sh --uninstall --remove-repo

# 디스크에서 에이전트의 자체 로그를 삭제합니다.
$ sudo rm -rf /var/log/google-cloud-ops-agent

# 디스크에서 에이전트의 로컬 버퍼를 삭제합니다.
$ sudo rm -rf /var/lib/google-cloud-ops-agent/fluent-bit/buffers/*/

# 에이전트를 재설치하고 다시 시작합니다.
$ curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
$ sudo bash add-google-cloud-ops-agent-repo.sh --also-install
$ sudo service google-cloud-ops-agent restart

$ sudo service google-cloud-ops-agent status