상황 : 위 이미지의 표현식에서, A변수에 값이 1보다 작을 경우 인스턴스가 죽은 것으로 판단 될 수 있지 않을까?라고 생각했다.
살아있는지의 여부는 Prometheus에서 알려주는데,
다운된 Prometheus의 생존 여부를 다운된 쪽에서 알려줘야 Grafana에서 인지할 수 있는 구조이기 때문에
이 방식으로는 Prometheus가 가동중인 것을 확인할 순 있지만, 다운되었을 경우 알람을 받는 것은 불가능하다.
생각한 방법 : Grafana 측에 Prometheus를 설치하고, ~ (이어서 작성하기)
인스턴스 정지 감지를 위한 추가 Prometheus 설치
GitHub - dev-library/log-tracking-app: 행동 추적 후 로그를 남겨주는 애플리케이션입니다.
행동 추적 후 로그를 남겨주는 애플리케이션입니다. Contribute to dev-library/log-tracking-app development by creating an account on GitHub.
github.com
@GetMapping("/app-health")
public String healthCheck() {
return "app_health_status 1.0\n# EOF";
}
어플리케이션 내부에 위와 같은 엔드포인트를 생성해주었고, 접속 시에는 `app_health_status 1.0 # EOF`로 보여지게 되는데, 이게 바로 Prometheus 매트릭 양식이다. (`(매트릭명) (수치) # EOF`)
위의 경우, app_health_status라는 매트릭에 1.0이라는 값이 들어갔다는 의미이다.
scrape_configs:
- job_name: '식별가능한 job이름'
scrape_interval: 1m(수집 주기, 15s는 15초)
metrics_path: '/app-health'
static_configs:
- targets: ['타겟 어플리케이션ip:포트번호']
# 예시
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "app-health-status"
scrape_interval: 30s
metrics_path: '/app-health'
static_configs:
- targets: ['192.168.2.53:8080']
이를 인식하게 만들기 위해 prometheus.yml 파일 내용을 위와 같이 수정해주고, Grafana에서 해당 Prometheus를 Data sources로 추가해주자.
대시보드를 새롭게 만들어준다.
'🌥️Cloud Study🌥️ > Etc' 카테고리의 다른 글
[ Logging ] 서버 내 로그 관리 정책 수립 및 구현 (0) | 2024.08.09 |
---|---|
[ Prometheus ] 프로메테우스 설치 및 서비스 설정 (0) | 2024.08.09 |
[ 모니터링 ] 매트릭, 커스텀 매트릭 알아보기 (0) | 2024.08.09 |
[ Grafana ] status fail 오류 해결 (0) | 2024.08.09 |
[ Network ] Cisco OS 알아보기 (0) | 2024.08.02 |