[ Datadog ] Subnet 유휴 IP 확인 가이드

Print

Subnet 점검

Subnet의 가용 IP 부족 상태에서 CSP의 Platform Update등으로 인한 장애 예방을 위해 가용 가능한 Subnet을 인지하고, 최소 가용 IP를 유지하기 위한 목적으로 활용합니다.

Subnet 가용 IP 개수 관련 메트릭 활용

  • Datadog과 AWS/Azure 등 CSP Integration 설정이 된 경우 Subnet 가용 IP 개수 관련 메트릭을 활용 합니다.

  • 가용 IP가 5개 미만일 경우 유관 담당자에게 Alert으로 전달되도록 구성 합니다.

CSP 별 Subnet 메트릭 수집 정보

AWS

항목

설명

비고

aws.vpc.subnet.available_ip_address_count

subnet에서 사용 가능한 IP 주소 수

활용 메트릭

aws.vpc.subnet.total_ip_address_count

subnet 내에 포함된 총 IP 주소 수

필수 전제조건

  • aws.vpc.subnet.* 항목을 수집하기 위해서는 Datadog에 Ticket으로 계정에 대한 수집 활성화 요청 필요

  • aws.vpc.subnet.*은 EC2:Describe* API Call을 이용하여 수집되기 때문에 EC2 Resource의 Enable 필요

메트릭 참고 가이드 : Amazon VPC

Azure

항목

설명

비고

azure.network_virtualnetworks.subnets.available_addresses

subnet에서 사용 가능한 주소 수

활용 메트릭

azure.network_virtualnetworks.subnets.signed_addresses

subnet에 할당된 주소

메트릭 참고 가이드 : Microsoft Azure Virtual Network

Alert 설정

Metric을 활용한 임계치 기반 Alert으로 설정을 진행합니다.

메뉴 경로 : Monitors > New Monitor > Metric Monitor

Metric Monitor 구성

image-20240228-020712.png
  1. Choose the detection method
    : Metric Monitor Type 설정. Subnet 점검의 경우 Threshold Alert 선택 합니다.

    image-20240228-022300.png
    • Threshold Alert : 메트릭 값을 정적 임계값과 비교합니다.

    • Change Alert : 설정한 시간(이전 시간)과 현재 간의 값의 절대적 또는 상대적(%) 변경을 주어진 임계값과 비교합니다

    • Anomaly Detection : 과거 동작을 사용하여 메트릭이 비정상적으로 동작하는 시기를 감지합니다.

    • Qutliers Alert : 그룹의 구성 요소(호스트, 가용 영역, 파티션 등)가 나머지와 비교하여 비정상적으로
      동작하는 때를 감지합니다.

    • Forecast Alert : 메트릭의 향후 동작을 예측하고 이를 정적 임계값과 비교합니다.

    • Watchdog : Datadog AI 기반으로 문제로 인식되는 현상이 발생하면 알림 합니다.

  2. Define the metric
    : 메트릭을 선택, Query및 Formula를 작성, 대상그룹 기준 정의, 임계치 평가 기간을 설정합니다.

    AWS Metric - aws.vpc.subnet.available_ip_address_count

    image-20240228-041603.png

    Azure Metric - azure.network_virtualnetworks.abaiable_subnet_addresses

    image-20240228-041626.png

    image-20240228-041704.png
    • Metric을 지정합니다.

    • group by 는 subnet(AWS) / subnet_name(Azure) 를 선택합니다.
      알림 전파시 확인 하고 싶은 정보가 있는 tag(account, subsciption등)를 추가 하셔도 됩니다.

    • 집계할 함수 및 평가 기간을 선택합니다.
      - average / last 5 minutes 를 선택시
      매 1분 마다 마지막 5분간의 데이터를 avg 하여 임계치와 비교합니다.
      ※ 임계치와 비교하는 평가 주기는 선택한 평가 기간이 24h 미만 시 1분, 48h 미만 시 10분, 48h 이상 시 30분으로 설정됩니다.

  3. Set alert conditions: alert 발생 임계치 조건 설정

    image-20240228-043420.png
    • 임계치 비교를 위한 연산자 설정. Subnet 점검시에는 below or equal to(이하)로 설정합니다.

      • below, above, below or equal to, above or equal to 지원

    • Alert 임계치를 5로 설정 합니다.

    • Nodata 알람 설정: Do not notify / notify 로 notify로 설정 시 Nodata 알람 설정 가능 합니다.

    • Alert 해제 임계치 설정: Alert 임계치로 발생한 알람의 해제 임계치를 설정합니다.
      미설정 시 Alert 임계치 이상이 되면 해제 됩니다.

    • Alert 자동 해제 설정: Alert 발생 후 Alert 상황이 지속되는 경우, 선택한 시간 후 자동으로 Alert이
      해제 되도록 설정할 수 있습니다. 단, 해제 후에도 Alert 발생 상황이 지속되는
      경우, 다시 알람이 발생합니다.

    • 신규 대상 추가 시 Monitor 적용 대기 시간 적용

    • 평가 Delay 시간 설정. 수집주기 및 네트워크 delay등을 고려

      • AWS: 10분 Delay

      • Azure: 2분 Delay

    • 평가기간 내 데이터가 full 일 경우에만 계산 할지 / 일부만 있어도 계산할지 설정합니다.

      • do not require: 1건 이상인 경우 계산

      • require: 데이터가 full 이어야 계산

  4. Notify your team: 전파 설정

    image-20240228-044832.png
    • Alert Title : 알람 발생시 전파되는 Message의 제목입니다.
      - 예시 : [경고] Subnet 가용 IP가 부족합니다.

    • Alert Message
      - 알람 발생시 전파되는 Message의 내용입니다.
      - 예시

      {{#is_alert}}  
      
       발생시간(KST): {{local_time 'last_triggered_at' 'Asia/Seoul'}} 
        
      ## {{aws.account.name}} 의 {{subnet.name}}에서  가용 IP가 5개 이하입니다. 확인 하시기 바랍니다. 
      
      {{/is_alert}} 
      
      
      {{#is_alert_recovery}}
      
       발생시간(KST): {{local_time 'last_triggered_at' 'Asia/Seoul'}} 
        
      ## [해제] {{aws.account.name}} 의 {{subnet.name}}에서  가용 IP가 5개 이상인 {{value}}입니다.
      
      {{/is_alert_recovery}}
    • Use Message Template Variables
      Alert title과 Message 본문에 사용 가능한 Template 및 변수 사용법을 확인할 수 있습니다.
      사용가능한 변수 참고 : https://docs.datadoghq.com/monitors/notify/variables/?tab=is_alert

    • Notify your services and your team members 설정
      opsgenie / slack / TEAMS / webhook 등 integration된 채널 및 email 등의 Noti 채널이 표시됩니다.
      알람을 전파할 채널 혹은 대상 email을 설정하시기 바랍니다.

    • Content displayed 설정(Message 구성 내용 설정)
      query / snapshot 등 자동 추가되는 내용을 Message에 포함 할지 여부 설정 합니다.

    • Include Triggering tags in notification title 설정
      알람 발생시 전파되는 Message의 제목에 알람이 발생된 대상에 대한 tag를 표시합니다.

    • Aggregation 설정
      Set alert conditions 에서 선택한 Group 이 있는 경우 자동으로 multi alert으로 선택됩니다.

    • Renotification 설정
      Alert(Warning) 혹은 Nodata가  지속될 경우 선택한 시간마다 재알람을 전파합니다.

    • Tags 설정
      Manage Monitors 에서 조회시, Downtime schedule 설정시 사용가능한
      moniotor를 위한 Tag를 설정합니다.

    • Priority 설정
      P1~P5로 알람의 심각도(중요도) 등을 설정합니다.
      Priority 설정 ( 표준화 진행으로 아래의 기준으로 설정)

  5. Define permission and audit notifications: Monitor 변경 권한 및 변경 noti. 설정합니다.

    image-20240228-045356.png

    image-20240228-045431.png

    • Restrict editing 설정

      • Alert에 대한 수정 권한을 설정합니다.

      • Role 선택시 해당 role을 가진 User들은 모두 수정이 가능합니다

    • Test Notifications

      • 버튼을 클릭하면 설정된 내용을 선택한 채널로 Test 알람을 발송합니다.

    • Create

      • 버튼을 클릭하면 설정된 내용을 저장합니다.

AWS Integration

EC2 필터링

AWS Integration 후 Datadog Agent가 설치되지 않은 EC2의 수집으로 인한 과금을 피하기 위해서 Tag 기반의 필터링이 가능합니다.

AWS Integration 후 별도 과금 대상

  • AWS Integration으로 수집되는 EC2 인스턴스는 과금 대상이지만, EC2에 Datadog Agent가 설치된 경우 중복 과금되지 않습니다.

  • Fargate 및 Lambda가 포함된 경우 Datadog 비용 과금 가능합니다.

참고 페이지 링크

Limit Metric Collection to Specific Resources

  • EC2, Lambda 등 특정 서비스로부터 수집되는 AWS 지표를 tag 기반의 리소스로 필터링 지원 합니다.

  • 대상 서비스: EC2, Lambda, ELB, Application ELB, Network ELB, RDS, SQS, CloudWatch custom metrics

  • 설정 경로: Integrations > Amazon Web Services > Account 선택 > Metric Collection Tab

    image-20240228-045755.png
  • 설정 방법 : Blacklist와 Whitelist 방식으로 설정 가능

    • Blacklist 방식으로 설정: Tag를 포함한 리소스 제외.
      예시) !datadog:no

    • Whitelist방식으로 설정: Tag를 포함한 리소스 수집. 조건 추가 시 OR 형태로 반영
      예시) datadog:monitored,env:production,instance-type:c1.*

    • Blacklist와 whitelist 방식 혼합해 사용 가능합니다.

    • 대문자는 소문자로 공백은 _(밑줄)로 변경되어 인식됩니다. 예> Team:Frontend App의 Tag는 team:frontend_app로 적용 필요

이 답변이 유용합니까? 아니오

Send feedback
도움이 되어드리지 못해 죄송합니다. 아티클 개선을 위해 의견을 제공해 주시기 바랍니다.