작성
·
225
0
안녕하세요. 먼저, 질 좋은 강의 제공해주셔서 감사합니다
프로메테우스 관련해서 질문을 드리고 싶은데요,
현재 프로메테우스를 AWS EC2 인스턴스로 띄어서 aws instance들의 데이터는 잘 scrape하고 있습니다.
그런데 만약에 GCP의 instance를 aws prometheus가 설치된 인스턴스에서 가져올려면 어떻게 해야 될까요?
Prometheus가 실행되고 있는 AWS EC2에 gcloud를 설치해야 aws instance쪽에서 gcp데이터를 가져올 수 있을까요?
prometheus.yml 파일에서 아래와 같이 설정을 하긴 했는데, 과연 AWS Instance에서 어떻게 GCP VM을 바라보고 데이터를 scrape할 수 있을지 감이 안잡히네요. 고견을 들을 수 있으면 좋겠습니다.
- job_name: 'us-east4-c GCE'
scrape_interval: 60s
gce_sd_configs:
- project: 'project-id'
zone: us-east4-c
relabel_configs:
- source_labels: [__meta_gce_public_ip]
target_label: __address__
replacement: "${1}:9090"
- source_labels: [__meta_gce_zone]
regex: ".+/([^/]+)"
target_label: zone
- source_labels: [__meta_gce_project]
답변 1
1
안녕하세요 강사 최일선입니다.
우선 답변이 늦어서 죄송합니다.
전에 남겨주신 글을 봤었는데 어떻게 말씀을 드려야하나 고민만 하다가 계속 답변이 늦어졌습니다.
제가 이해한 것은 AWS 환경에서 프로메테우스로 데이터를 잘 모으고 있다는 의미로 이해됩니다. AWS에 프로메테우스 서버가 떠있고 추가로 GCP 인스턴스에서 데이터를 수집해 프로메테우스로 전송할 수 있을지 말씀하신다고 생각됩니다.
다시 이야기하면 "멀티 클라우드 환경에서 모든 인스턴스를 프로메테우스 하나로 데이터를 모아서 모니터링"하고자 하시는 것 같습니다. 그렇다고 GCP 인스턴스를 공용 네트워크로 모두 노출해 통신하는 것은 바람직하지 않기 때문에 고민이신 것 같구요.
고견을 물어보셨습니다만 저도 게속 공부하고 연구해 나가는터라 엄청난 고견을 드리기는 좀 어렵습니다 ㅠ 고민을 좀 해봤는데 AWS와 GCP 사이에 VPN 터널을 하나 뚫어보는 것은 어떠신가 싶어 감히 말씀드립니다.
이미 알고 계시겠지만 gce_sd_configs는 gce 메타데이터 값을 사용해 스크레이프 대상을 검색하는 기능입니다. 따라서 AWS와 연동은 어려워 보입니다. 그래서 VPN을 통해 클라우드간 네트워크를 연결하고 VPC로 연결을 라우팅하는 방법이 어떤가 싶습니다. IP는 static_config를 사용해 정적으로 연결을 시도하는 형태가 좋아 보입니다.
VPC 연결 예제: https://zigispace.net/1024
static_config 연결 예제: https://stackoverflow.com/questions/49829423/prometheus-add-target-specific-label-in-static-configs
최적화할 수 있는 방법인지까지는 가늠하기는 어렵습니다만 진행하시는 업무에 약간이라도 도움이 되시길 바랍니다. 부족한 답변 확인해주셔서 감사합니다.
감사합니다.