인프런 커뮤니티 질문&답변

리78님의 프로필 이미지

작성한 질문수

실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}

operator alertmanager 연결 관련 문의

24.08.08 23:43 작성

·

91

·

수정됨

0

안녕하세요. 배운 내용을 가지고 회사에서 prometheus를 잘 활용하고 있습니다. 다만 막힌 부분이 있어 문의를 드립니다.

Prometheus operator로 prometheus 와 alertmanager가 잘 연계되어있는지 확인하는 방법을 문의드립니다.

코드 첨부가 어렵지만, 간단하게 말씀드리면,

  1. prometheus operator를 통해 prometheus A 와 alertmanager X를 띄우고 연결이 잘되어 있는 상황 (alertmanager X ui에서 a의 prometheusrules로 정의한 값의 firing 된 것을 확인 가능함 -> ui)

  2. prometheus operator를 통해 prometheus B를 띄우고 이 B도 alertmanager X를 이용하려고 했으나, B의 prometheusurule로 정의한 값이 firing 되어도 alertmanager X UI에 값이 나오지 않음.

 

이런 상황입니다. 기존 A가 연결된 alertmanager X에, 추가로 Prometheus B를 연결하고 싶습니다.

이 부분에 대해서 제가 확인한 것은,

 

  1. prometheus B를 띄우고 edit으로 prometheus 값 수정 (config reload가 설정되어있음)

alerting:
  alertmanagers:
  - apiVersion: v2
    name: ~ // alertmanager 이름 입력 (service 명), 기존 잘 연결된 A와 동일한 값
    namespace: ~~ // alertmanager X 의 namespace 입력, 기존 잘 연결된 A와 동일한 값
    pathPrefix: /
    port: http-web

2. 현재 같은 클러스터, namespace에 존재

  1. PrometheusRule 로 생성한 Rule이 Prometheus B의 UI Rule 메뉴에서 정상적으로 firing 된 것을 확인

  2. prometheus B의 pod에 log를 확인. -> 해당 로그에 alert이라는 값이 존재하지 않음

  3. 기존에 연결되어 있던 prometheus A의 config 설정의 alerting 부분과 설정은 동일함.

     

 

위 와 같은 상황이며, alertmanager X UI에 B에서 firing 된 값이 나오지가 않습니다.

혹시 제가 놓친 부분이 있는지, 아니면 잘 연결이 되어 있는지 추가적으로 더 검사할 방법이 있을까요?

답변 1

0

문성주님의 프로필 이미지
문성주
지식공유자

2024. 08. 10. 15:32

안녕하세요.

현재 여러 프로메테우스 인스턴스에서 하나의 Alertmanager를 사용하여 알림을 보내고자 하는 환경을 구성하려고 하시는 것으로 이해했습니다. 이러한 구성에 대해 관심이 있는 분들을 위해 일반적인 구성 방법을 설명드리겠습니다.

실무에서는 일반적으로 하나의 프로메테우스 인스턴스에 하나의 Alertmanager를 연결하는 방식을 사용합니다. 여러 프로메테우스를 통합하여 하나의 프로메테우스로 데이터를 집계한 후, 이 통합된 프로메테우스에서 Alertmanager로 알림을 전달하는 방법도 많이 사용됩니다. 이를 위해 Grafana Mimir, Prometheus Agent 모드, remote_write/remote_read 등의 방법을 고려해보실 수 있습니다.

현재 구성하신 환경에 대해 몇 가지 점검해보시면 좋을 것 같습니다.

  1. 프로메테우스 설정에서 Alertmanager 설정이 제대로 동기화되었는지 확인합니다.

  2. 알림 규칙(alert-rule)이 적용되었고, 알림이 발생할 때 Alertmanager로 제대로 전달되는지 확인합니다. 이를 위해 Prometheus와 Alertmanager의 로그를 확인해보시는 것도 좋습니다.

제가 드린 가이드가 강의 외 실습 환경에서는 쿠버네티스 클러스터 버전, 네트워크, 보안 정책 등 다양한 요인으로 인해 동작이 달라질 수 있습니다. 그에 따라 일부 모호한 영역의 트러블슈팅 가이드를 제공하기 어려운 점 양해 부탁드립니다.

경우에 따라서, 다른 구현 방법을 고려해보시는 것도 좋은 방법이 될 수 있습니다.

감사합니다.

 

리78님의 프로필 이미지

작성한 질문수

질문하기