[Monitoring] 프로메테우스 config reload

Hoon·2022년 11월 27일
0

Monitoring

목록 보기
10/12
post-custom-banner

Why?

프로메테우스 얼럿룰을 추가하거나, 웹훅 URL을 변경하는 등 프로메테우스 설정을 변경해야할 경우가 생긴다.
이때, helm 으로 설치한 운영중인 프로메테우스를 삭제 후 재설치 하지않고 설정파일을 업데이트 하는 방법을 찾아본다.

공식문서에 따르면 프로메테우스는 런타임중에 설정을 reload 할 수 있다.

Prometheus can reload its configuration at runtime. If the new configuration is not well-formed, the changes will not be applied. A configuration reload is triggered by sending a SIGHUP to the Prometheus process or sending a HTTP POST request to the /-/reload endpoint (when the --web.enable-lifecycle flag is enabled). This will also reload any configured rule files.

How?

프로메테우스 컨피그맵을 수정후 재배포하면 된다.

kubectl get configmap ## configmap name 확인
kubectl get configmap -o yaml prometheus-alertmanager > prometheus_config.yaml
vi prometheus_config.yaml ### 수정할 부분 수정

기존 컨피그맵이다.

receivers.slack_configs.text를 변경 후 재배포 해본다.

변경 후 apply

⚡ root@ip-10-0-3-181  ~/prometheus  k apply -f prometheus_config.yml
configmap/prometheus-alertmanager configured

Test

configmap describ로 확인

 ⚡ root@ip-10-0-3-181  ~/prometheus  k describe configmap prometheus-alertmanager
Name:         prometheus-alertmanager
Namespace:    default
Labels:       app=prometheus
              app.kubernetes.io/managed-by=Helm
              chart=prometheus-16.0.0
              component=alertmanager
              heritage=Helm
              release=prometheus
Annotations:  meta.helm.sh/release-name: prometheus
              meta.helm.sh/release-namespace: default

Data
====
allow-snippet-annotations:
----
false
alertmanager.yml:
----
global:
  slack_api_url: https://hooks.slack.com/services/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
receivers:
- name: slack-notifier
  slack_configs:
  - channel: '#k8s-monitoring'
    send_resolved: true
    text: For reload Test.Node has been down for more than 1 minute.
route:
  group_interval: 1m
  group_wait: 10s
  receiver: slack-notifier
  repeat_interval: 2m

Events:  <none>

logs로 확인

 ⚡ root@ip-10-0-3-181  ~/prometheus  k logs prometheus-alertmanager-585bf69d6d-pmvwg -c prometheus-alertmanager-configmap-reload
2022/11/27 04:25:02 Watching directory: "/etc/config"
2022/11/27 05:19:15 config map updated
2022/11/27 05:19:15 performing webhook request (1/1)
2022/11/27 05:19:15 successfully triggered reload

webhook test

인스턴스 중지하여 슬랙 알람 테스트를 해본다.

Reference

post-custom-banner

0개의 댓글