클라우드/쿠버네티스
그라파나+로키를 이용하여 얼럿 설정하기
ybchoi
2024. 1. 4. 20:34
메트릭등을 카운트 하여 얼럿을 생성해도 되겠지만 간단하게 로그를 카운팅 하여 얼럿을 설정 할수도 있다
그라파나에서 loki 로그 카운터로 얼럿을 생성하는 방법 테스트
먼저 로그를 찍기 위해 pod를 한개 배포함
% k get pod --show-labels
NAME READY STATUS RESTARTS AGE LABELS
worker 1/1 Running 0 6d18h run=worker
해당 파드의 로그 테스트 (얼럿에 추가할 로그는 임의로 trigger_alert_xxxapi_error라고 정함) 앱에서 특정 로그를 찍으면 그것을 카운팅 하는 형태
파드에서 STD 출력을 통해 로깅 수행
[root@worker /]# echo "trigger_alert_xxxapi_error" >> /proc/1/fd/1
[root@worker /]# echo "trigger_alert_xxxapi_error" >> /proc/1/fd/1
[root@worker /]# echo "trigger_alert_xxxapi_error" >> /proc/1/fd/1
[root@worker /]# echo "trigger_alert_xxxapi_error" >> /proc/1/fd/1
[root@worker /]# echo "trigger_alert_xxxapi_error" >> /proc/1/fd/1
파드안에서 echo 로 std출력 시킴
loki에서 해당 로그 잘 찍혔는지 확인
정상적으로 로그가 찍힌다
이제 저 로그를 카운팅 할 대상으로 얼럿을 생성하여 테스트
쿼리문은 아래와 같음
count_over_time({pod="worker"}[5m] |= "trigger_alert_xxxapi_error") > 5
5분간 해당 로그의 카운트가 5개가 넘으면 얼럿
쿼리 테스트
이제 이것을 이용하여 얼럿을 생성한다
파드내 에러 생성(6개)
[root@worker /]# echo "trigger_alert_xxxapi_error" >> /proc/1/fd/1
[root@worker /]# echo "trigger_alert_xxxapi_error" >> /proc/1/fd/1
[root@worker /]# echo "trigger_alert_xxxapi_error" >> /proc/1/fd/1
[root@worker /]# echo "trigger_alert_xxxapi_error" >> /proc/1/fd/1
[root@worker /]# echo "trigger_alert_xxxapi_error" >> /proc/1/fd/1
[root@worker /]# echo "trigger_alert_xxxapi_error" >> /proc/1/fd/1
설정한대로(슬랙으로 보내기) 알람 정상 작동