가동 시간 및 심장 박동 모니터링
1) 왜 필요한가
주변과 내부에서 정전을 조기에 감지합니다 (가장자리 코어).
사용자 가용성 확인 ("포드가 살아있는 것" 이 아님).
SLA/SLO 계약보고 및 법적 의무.
심장 박동을 통한 배경 과정 (cron, ETL, 지불 타박상) 모니터링.
방법론: Golden Signals (대기 시간/교통/오류/포화), RED, SLO 링크 및 잘못된 예산.
2) 수표 유형 (합성)
ICMP: 기본 네트워킹/IP 가용성.
§: 포트가 살아있는/악수입니다 (예: 443/5432).
TLS: 인증서의 유효성/용어/체인.
HTP (S): 응답 코드, 대기 시간, 헤더, 본체의 주요 하위 문자열.
DNA: 해상도, TTL, NXtterr/SERVFAIL.
헤드리스 브라우저 (사용자 경로): 로그인 → 동작 → 로그아웃.
맞춤형 프로브: 샌드 박스 PSP의 지불 승인, 내부 비즈니스 합성 (예금 시뮬레이션).
팁: VPC/K8 내부에서 엣지 및 개인 엔드 포인트를 모두 확인하는 것은 다른 위험 영역입니다.
3) 가동 모니터링 아키텍처
지역별 시험 대리인 (최소 3 개의 지오 포인트).
모든 편지 선택 (c):- 경로 별 합성 (순차 단계); 저장 스크립트.
- Prometheus/Mimir/Thanos: 메트릭 수집, SLO/경고 규칙.
- Alertmanner/Pager: 라우팅 P1/P2, 에스컬레이션.
- 상태 페이지: 비즈니스/고객을위한 투명한 업데이
- 로그/추적: 'trace _ id '/상관에 의한 드릴 다운.
4) 건강 종점: 디자인
/ healthz (liveness) - "살아있는 과정입니다".
/ readyz (준비) - "트래픽 수신 준비" (임계 값이있는 종속성).
/ startupz- "초기화".
/ 확인-고급 비즈니스 상태 (타임 아웃 및 회로 차단기가있는 쉬운 데이터베이스/캐시 검사).
시맨틱 건강: 중요한 종속성이 작동하는 경우에만 코드 200; → 503의 분해.
규칙: 타임 아웃 2-3, 제한된 서브 체크, 응답에 PII 없음, 무거운 부품 캐시.
5) 직업과 노동자를위한 심장 박동
Dead Man's Switch 모델: 진드기가 정시에 도착하지 않으면 경고하십시오.
사용: cron/ETL/송장 작업, 오프 체인 지불 점검, 배경 작업자.
- 푸시 하트 비트 TP: 완료되면 'POST/하트 비트/< job>' 이 수행됩니다.
- 메트릭 풀: 'last _ success _ timestamp' 를 노출하고 "N 분 이상" 으로 경고하십시오.
- 워치 독: 에이전트의 일정한 신호; 누락-경고 "모니터링 중단".
6) 설정 예
6. 1 개의 블랙 박스 내보내기 (상위 항목에 대한 정보를 제공합니다
yaml modules:
http_2xx:
prober: http http:
method: GET preferred_ip_protocol: "ip4"
fail_if_not_ssl: true valid_http_versions: ["HTTP/1. 1","HTTP/2"]
tls_config:
insecure_skip_verify: false headers:
User-Agent: "uptime-probe"
body: ""
ip_protocol_fallback: false
tls_cert:
prober: tcp tcp:
query_response: []
tls: true tls_config:
insecure_skip_verify: false
dns:
prober: dns dns:
query_name: "api. example. com"
valid_rcodes: ["NOERROR"]
preferred_ip_protocol: "ip4"
6. 2 프로 메테우스: 목표와 bs
yaml scrape_configs:
- job_name: 'blackbox-http'
metrics_path: /probe params:
module: [http_2xx]
static_configs:
- targets:
- https://api. example. com/healthz
- https://pay. example. com/readyz relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- target_label: __address__
replacement: blackbox-exporter:9115
- source_labels: [__param_target]
target_label: instance
6. 3 Heartbeat Job Metrics (프로 메테우스 수출국)
메트릭 노출:
job_last_success_timestamp_seconds{job="settlement"} 1. 730000e+09
경고:
promql
(time() - job_last_success_timestamp_seconds{job="settlement"}) > 900
6. 4 워치 독 (Dead Man's Switch)
Alertmanager에서는 경고 'Watchdog' (항상 발사) → 경고가 표시되지 않으면 모니터링이 중단됩니다.
7) 가동 시간에 대한 PromQL 예
HTP 가용성 (0/1):promql probe_success{job="blackbox-http"} == 1
샘플 별 p95 대기 시간:
promql histogram_quantile(0. 95, sum by (le, instance) (rate(probe_http_duration_seconds_bucket[5m])))
TLS는 <7 일 만료됩니다:
promql
(min_over_time(probe_ssl_earliest_cert_expiry[5m]) - time()) < 7243600
디렉터리 오류:
promql rate(probe_dns_rcode{rcode!="NOERROR"}[5m]) > 0
가동 시간 SLI (롤링 28d):
promql sum_over_time((probe_success==1)[28d]) / (28246060)
8) 경고: 임계 값 및 노이즈 방지
다중 지역 쿼럼: 두 지역이 하락하면 트리거됩니다.
다중 창: 1-5 분 (빠른 채널) + 30-60 분 (일정한 추세).
감도: 디 바운스/for: 플 래핑에 대해 2-5 분.
상관 관계: 가죽 메트릭 (가장자리, DNA, WAF, 원산지) 과 가동 시간 경고를 연결하십시오.
유지 보수 창: '유지 보수 = 진정한' 태그로 경고를 억제합니다.
promql
≥2 regions simultaneously failed sum by (target) (max_over_time (probe _ success = = 0) [3m]))> = 2
9) 다중 지역 및 다중 공급 업체 검사
최소 3 개 지역 (EU/NA/APAC) 및 다른 ASN.
중복: 자체 샘플 + 외부 가동 시간 제공 업체.
IPv4/IPv6, TH/2/3, 다른 CDNPOP 및 WAF 프로파일.
10) 보안 점검
WAF/LB에서 샘플의 IP 범위를 허용합니다.
건강 종점/프로브에 대한 속도 제한 및 캡차 바이 패스.
개인 건강을위한 타이틀 서명 (HMAC).
별도의 도메인: 공공 샘플 및 개인 (/내부/건강).
내부 버전/구성 요소를/healthz로 반환하지 마십시오. 상태 만.
11) SLO 및 가동 시간보고
SLI 가용성: 2xx/3xx TP 프로브 성공률.
SLO 예: 99 이상입니다. 대부분의 지역에서 28 일 동안 95%.
잘못된 예산: '1-SLO' → 릴리스를 관리합니다.
번 레이트 경고: 샘플 장애 비율에 대한 빠른/느린 채널.
12) 지불 및 중요한 일자리에 대한 심장 박동
"돈 주위" (이전, 등록) -이중 제어: 하트 비트 + 비즈니스 카운터 (처리 된 레코드 수).
"침묵" (새로운 이벤트 없음> N 분) 및 지연 (실시간 뒤에 지연) 에 의한 경고.
13) 상태 페이지
별도의 구성 요소 (API, 결제, 백엔드, CDNs).
Comms 역할을 통한 경고, 수동 설명에서 자동 업데이트.
사고 이력, 사후 링크, 계획된 작업.
14) 사건 프로세스와의 통합
쿼럼 규칙 + 지속 시간별로 SEV에 경고하십시오.
사건 카드, 전쟁 실, IC 과제의 자동 생성.
통신 템플릿 (내부/외부), 필요한 경우 법적 보류.
검증 후: "Resolved" 에 대한 녹색 및 X 분 합성.
15) 성능 및 비용
샘플링 빈도: 중요-매 30-60 초; 2 차 - 1-5 분
스토리지: 긴 창에 대한 다운 샘플링/녹화 규칙.
외부 제공 업체의 예산: 고급 브라우저 스크립트를 일정으로 제한합니다.
16) 품질 점검표
- 명확한 의미를 가진/healthz ,/readyz ,/startupz가 있습니다.
- 3 개 영역/ASN, IPv4/IPv6의 샘플.
- 온라인 검사 및 알림 T-30/T-7/T-1 일.
- 모든 중요한 직업 (및 비즈니스 "침묵") 을 심장 박동.
- 다중 창 + 쿼럼, 펄럭임 없음.
- Drilldown: 로그/트랙/대시 보드에 대한 버튼.
- 상태 페이지 및 통신 템플릿.
- SLO/메트릭 및 소유자 문서.
17) 구현 계획 (3 회 반복)
1. 1 주차: 중요한 도메인, 상태 페이지, 기본 알림에 의하여 HTT/TLS/DNA 블랙 박스 프로브.
2. 둘째 주: 다중 지역, 쿼럼 규칙, 하트 비트 최고 직업, 워치 독.
3. 3 주차: 헤드리스 스크립트 (로그인/예금), SLO보고, 사고 프로세스와의 통합.
18) 미니 -FAQ
외부 샘플이 내부 샘플보다 나은 이유는 무엇입니
외부 사용자는 실제 사용자 경로 (겠습니다/CNC/WAF) 를 보고 내부 사용자는 원점 상태를 봅니다. 우리는 둘 다 필요합니다
유료 PSP를 확인해야합니까?
예: 샌드 박스 및 상태 페이지 모니터링의 합성; 열화의 경우-자동 스마트 라우팅.
소음을 줄이는 방법?
정원, 다중 창, 지연, 유지 보수 억제, 명확한 SLO 임계 값 및 소유권.
합계
가동 시간 모니터링은 핑뿐만 아니라 다중 지역 합성 + 고품질 건강 엔드 포인트 + 심장 박동 작업 + SLO/경고 + 상태 페이지 시스템입니다. 점검을 표준화하고 소음을 줄이며 샘플을 보호하며 모든 것을 사고 프로세스에 연결하십시오. 이렇게하면 MTTR을 줄이고 잘못된 예산을 절약 할 수 있습니다.