컨텍스트가 풍부한 경고를 통해 이벤트 해결 시간 단축
11286 단어 oncallincidentresponsebestpractices
심각한 정지가 발생했을 때, 대기 엔지니어들이 자주 직면하는 문제는 고장점을 정확하게 파악하는 것이다.비록 현대 모니터링 도구와 사건 관리 플랫폼은 모든 경보에 배경 정보를 제공했지만 여전히 개선할 여지가 있다.비교적 간단한 해결 방안은 경보 유효 하중에 라벨을 추가하는 것이다.
부르는 대로 오는 엔지니어로서 주요 경보를 분류하는 데 시간이 오래 걸릴 수 있습니다. 이것은 경보가 Kubernetes 설정에 부하되어 호스트 이름/그룹 상세 정보 등 관건적인 정보가 부족하기 때문입니다.
이 블로그에서는 MTTR(평균 응답 시간)을 줄이기 위해 유효 로드의 중요 정보에 레이블을 추가하는 방법을 알아봅니다.
프로메테우스 경보 관리자와 Squadcast withRouting, and Tagging rules가 특정 라벨이 달린 경보의 효과적인 하중을 관련 엔지니어에게 보내 문제를 빨리 복구할 수 있도록 하는 방법도 논의할 것이다.
주: 유효 하중 라벨은 유효 하중 데이터를 분류하고 관건적인 정보를 식별하는 데 사용할 수 있다.이 블로그에서 Kubernetes의 특정한 예시를 소개했지만 다른 모니터링 도구를 통해 실현할 수 있습니다.
다음 화면 캡처는 기본적으로 유효하게 부하되는 예시입니다. (탭이 없습니다.)
부르는 대로 엔지니어가 되려면 다음과 같은 경고에 대한 자세한 정보가 필요합니다.
만약 당신이 IP 주소 같은 세부 사항을 얻을 수 있다면, 당신의 생활은 더욱 간단해질 것이다.경고 자체의 호스트 이름, 애플리케이션 이름, 심각도 수준, 환경 이름 등입니다.경고가 테스트/스테이지 환경에서 온 경우, 부하에 환경과 관련된 라벨이 있기 때문에 무시할 수 있습니다.
비교적 간단한 방법은 선택한 감시 도구를 사용하여 유효 부하에 라벨을 추가할 수 있다.다음 예제에서는 Prometheus Alert Manager를 사용하여 컨텍스트의 풍부한 경고 유효 로드를 생성합니다.
다음 화면 캡처는 프로메테우스 경보 관리자의 설정 파일의 예입니다. 이 파일은 상하문에 풍부한 유효 하중 라벨을 가지고 있습니다.
프로메테우스 경보 관리자 설정 파일
apiVersion: apps/v1
kind: Deployment
metadata:
name: pubsub
namespace: laddertruck
labels:
name: "laddertruck"
language: "ruby"
language-version: "3.0.0"
framework: "rails"
framework-version: "5.2.1"
team: "xyz"
developed-by: "diane"
service-owner: "john"
위에서 언급한 각종 라벨에 주의해라.어떤 탭을 유효 부하에 추가할지 어떻게 결정합니까?
태그의 이름은 기술 스택의 유형과 대기팀에 따라 달라집니다.사용된 레이블 유형은 심각한 가동 중지 시간이 발생할 경우 가장 먼저 응답하기 때문에 대기 팀에서 결정해야 합니다.
아래에 표시된 레이블은 팀이 작업을 시작할 때 사용할 수 있는 몇 가지 일반 레이블입니다.
- alert: ContainerMemoryUsage
expr: (sum(container_memory_working_set_bytes{namespace="default"}) BY (instance, name) / sum(container_spec_memory_limit_bytes{namespace="default"} > 0) BY (instance, name) * 100) > 90
for: 1m
labels:
severity: warning
annotations:
summary: "Container Memory usage (instance {{ $labels.instance }})"
description: "Container Memory usage is above 90%\n VALUE = {{ $value }}\n LABELS: {{ $labels }}"
위 규칙에서 심각도 조건은 경고 규칙에 정의되어 있습니다.현재 Alert 관리자가 Squadcast에 경보를 보낼 때, 모든 관련 정보는 유효 부하에 포함됩니다. 예를 들어 심각성, 배치, Prometheus 프로필에 언급된 다른 탭입니다.우리는 Squadcastrouting rules를 이용하여 효과적으로 관련자/팀에게 사건을 관리/전달할 수 있다.
또한, 우리는alert 관리자의annotations 옵션을 이용하여 경보 부하에서 더욱 상세하고 지루한 정보를 보낼 수 있습니다.매뉴얼/실행 매뉴얼에 의존하여 대기하는 조직에서 엔지니어는 사건 발생 시 관련 매뉴얼을 검색하는 것이 아니라 즉시 고장 제거를 시작할 수 있다.
Image Source
그림에서 보듯이 프로메테우스에서 온 경보 알림에는 내부 운행 매뉴얼을 가리키는 링크가 포함되어 있다.
태그를 사용하여 Squadcast 구성
다음 화면 캡처에서 이벤트 부하에 추가된 탭에 따라 경보를 설정하는 방법을 볼 수 있습니다.여기서 구성하고 있는 서비스를 "K8s 클러스터 모니터링"이라고 합니다.
태그 규칙은 Squadcast에서 처리할 태그를 정의하는 데 사용됩니다.레이블이 정의되면 라우팅 규칙을 사용하여 관련자, 팀 또는 에스컬레이션 정책에 경고를 보낼 수 있습니다.
이제 유효 하중에 정의된 모든 레이블이 Squadcast에서 레이블로 인식됩니다.이 단계를 완료하면 태그에 따라 라우팅 규칙을 사용자 정의할 수 있습니다.
위의 화면 캡처에서 우리는 다음과 같은 기준에 따라'서비스 소유자','팀','배치자'세 개의 탭을 만들었다.
현재 이 표시들이 정의되어 있습니다. 우리는 서비스에 입도 이벤트 루트 규칙을 계속 만들 수 있습니다.위의 화면 캡처에서, 경보 부하가 '서비스 owner' 를 'john' 으로 정의하면, 경보 알림은john에게 직접 발송되는 루트 규칙을 만들고 있습니다.
위에서 알 수 있듯이 경보 부하에 '팀' 라벨이 있을 때 루트 규칙이 만들어집니다.우리는 경보 통지가 특정 단체로 발송되는 것을 볼 수 있다.
이 경우 이 기능을 배포한 사람에게 경고가 전송됩니다("Diane").
이전에 우리는 경보가 특정한 개인에게 발송되는 것을 보았지만, Aler를 미리 정의된 escalation policies 로 보낼 수도 있다.위의 캡처에서 우리는 같은 예를 보았다.
여러 개의 태그와 부울 연산자('and')를 선택하여 루트 규칙을 최대한 구체화하고 가능한 한 많은 장면을 포괄합니다.
Squadcast에서는 라우팅 규칙이 하향식으로 실행됩니다.첫 번째 규칙을 실행하면 나머지 규칙은 자동으로 무시됩니다.Execution Priority 기능은 규칙의 실시 순서를 정의하는 데 도움이 된다.
문맥 인식 경고의 기타 이점
대수리 후post-mortems / reviews 기간에 상세한 이벤트 시간표가 자동으로 만들어지기 때문에 모든 유효 부하 주위에 상하문 정보가 있으면 매우 도움이 된다.상하문이 풍부한 경보 유효 하중의 개념은 보기에는 간단하지만 장기적으로 보면 시스템의 신뢰성을 높이는 데 도움이 된다.
다음은 Squadcast의 이벤트 실례와 관련 탭을 볼 수 있습니다.이 규칙을 기반으로 하는 자동 태그 시스템이 있습니다. 이벤트의 유효 하중에 따라 사용자 정의 태그를 정의할 수 있으며, 이벤트를 터치할 때 자동으로 이벤트에 할당할 수 있습니다.
결론
많은 경우 기존 아키텍처의 특수한 복잡성을 줄여서는 안 됩니다.컨텍스트 경고 + 스마트 라우팅 조합이 MTTA 및 MTTR을 대폭 감소시키는 데 도움이 되는 이유입니다.
위에서 제시한 예는 빙산의 일각일 뿐입니다. 사용자 정의 라벨과 배선 규칙을 만들 수도 있습니다.새로운 사용자와 의존 관계가 증가함에 따라 인프라가 확장되고, 더 좋은 태그와 루트로 인해 MTTR은 받아들일 수 있는 범위 내에 있을 것입니다.
DevOps/SRE로서 어떤 어려움이 있습니까?당신은 조직 내에서 사고에 어떻게 더 잘 대처할 것인가에 대해 어떤 생각을 가지고 있습니까?너의 소식을 들으면 우리는 매우 흥분할 것이다.저희에게 메시지를 남기거나 DM을 통해 저희에게 연락하여 당신의 생각을 알려 주십시오.
Squadcast는 SRE용으로 설계된 이벤트 관리 도구입니다.팀은 불필요한 경보를 없애고 관련 통지를 받거나 가상 이벤트 작전실을 이용하여 협업을 할 수 있으며 런북 등 자동화 도구를 사용하여 힘든 작업을 없앨 수 있습니다.
Reference
이 문제에 관하여(컨텍스트가 풍부한 경고를 통해 이벤트 해결 시간 단축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/squadcast/faster-incident-resolution-with-context-rich-alerts-264l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)