[ Datadog ] NTP Integration

Print

1. NTP Integration 설정

Linux / Windows 설정 방법

플랫폼

경로

Linux

/etc/datadog-agent/conf.d/ntp.d/conf.yaml

Windows

%ProgramData%\Datadog\conf.d\ntp.d\conf.yaml

Datadog Agent Manager 의 Checks 메뉴에서 Manage Checks의 ntp.d\conf.yaml 선택 후 설정

conf.yaml 설정

  • Local NTP 사용시

    init_config:
    instances:
      - use_local_defined_servers: true         ## Local NTP 사용 시 true 변경. (Default)false
  • 지정 NTP 서버 사용시

    init_config:
    instances:
        ## @param host - string - optional
        ## Single NTP server hostname or IP address to connect to.
      - host: OOO.OOO.OOO.OOO             ## NTP 주소를 직접 입력
  • 설정 후 Agent 재시작
    설정 변경 후 Datadog Agent 재시작을 해야 적용됩니다.

OS

Command

Linux

CentOs/Redhat

sudo systemctl restart datadog-agent

sudo restart datadog-agent

Ubuntu/Debian

sudo service datadog-agent restart

Windows

  • cmd에서 아래 command 실행
    "%ProgramFiles%\Datadog\Datadog Agent\bin\agent.exe" status

  • Datadog Agent Manager > Restart Agent

  • Windows Icon tray > Datadog Icon tray 마우스 우클릭 > restart

Local NTP 설정 시 참조 값

  • Linux(UNIX): /etc/ntp.conf 혹은 etc/xntp.conf 값 참조

  • Windows: HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer 참조

  • Local에서 OS의 위의 정보를 참조하지 않을 경우 Unknown으로 인식 합니다.

Kubernetes 설정 방법

Kubernetes managed service 로 생성된 노드가 Linux 및 Windows OS 여부에 따라 하기 경로에 ntp 관련 설정 값이 존재하는지 여부 및 각 Cloud provider의 Worker node 에서 공식적으로 로컬 NTP 서버를 지원하는지 Cloud provider를 통해 확인 필요

## For Unix system, the servers defined in "/etc/{ntp,xntp,ntpd,chrony}.conf" and "/etc/openntpd/ntpd.conf" are used.

## For Windows system, the servers defined in registry key HKLM\\SYSTEM\\CurrentControlSet\\Services\\W32Time\\Parameters\\NtpServer are used.

Datadog Agent Configmap 설정

  • Local NTP 사용시
    ‘use_local_defined_servers: true’ 설정 추가 하세요.

  • 지정 NTP 서버 사용시
    직접 NTP 서버 IP를 지정하려 하시는 경우 에는 ‘host: <IP정보>’ 설정을 추가 하시기 바랍니다.

Helm 배포 values.yaml 설정

  • Local NTP 사용시(Linux node 기준)

    confd: 
        ntp.yaml: |-
          init_config:
          instances:
            - use_local_defined_servers: true
    
    # agents.volumes -- Specify additional volumes to mount in the dd-agent container
    volumeMounts:
         - name: ntp
           mountPath: /etc/ntp.conf
      volumes:
         - name: ntp
           hostPath:
             path: /etc/ntp.conf
  • 지정 NTP 서버 사용시(Linux node 기준)

    confd: 
        ntp.yaml: |-
          init_config:
          instances:
            - host: OOO.OOO.OOO.OOO
  • 설정 후 helm chart upgrade (Agent pod 자동 재기동)

    helm upgrade -f values.yaml <RELEASE NAME> datadog/datadog

2. NTP 점검

NTP는 Datadog의 상태 점검 기능인 Service Check을 통해 수집 상태를 확인할 수 있으며, 수집되면 ntp.offset 메트릭이 수집됩니다.

Check Summary 상태 확인

image-20240307-013848.png
  • Check Summary는 전체 Service Check의 요약 정보를 보여주는 메뉴입니다.
    메뉴 경로: Monitors > Check Summary

  • ntp.in_sync 의 Status를 아래와 같이 확인 합니다.

    • OK : 상태 정상

    • Critical : NTP Offset이 차이 남

    • Unknown : ntp.offset 수집 안됨

ntp.offset 메트릭 확인

  • Metrics의 Summary 메뉴에서 ntp.offset 메트릭 수집 여부를 확인 할 수 있습니다.

    image-20240307-014017.png
  • Metrics의 Explorer 메뉴에서 ntp.offset 메트릭 값 확인 할 수 있습니다. . 수집주기는 15분입니다.

    image-20240307-014046.png
  • Monitors의 검색창에서 type:custom 이나 ntp로 검색을 하면 기본 NTP alert을 확인 가능 합니다.

  • 최근 2분동안의 NTP status 값을 근거로 알람 발생 합니다.

    image-20240307-014225.png
  • 현재 배포된 NTP alert rule의 경우 아래와 같이 Do not notify for Unknown status로 설정되어서 Unknown 상태 시에도 OK로 표시됩니다.

    image-20240307-014304.png

3. NTP Alert 설정

Monitors > New Monitor > Service Check 메뉴에서 설정 가능하며, 기본으로 제공되는 ‘Clock in sync with NTP’ Monitor를 수정 해 사용 가능합니다.

  • Service Check Monitor 구성

    image-20240223-050235.png

    ① Pick a Service Check
    - 모니터링 가능한 Service Check 대상 선택. 이 경우 ntp.in_sync 선택 합니다.

    image-20240307-044926.png

    ② Pick monitor scope: Tag 기반의 범위 설정

    image-20240223-055442.png

    - 모니터링 범위 설정
    : 동일 Service Check이 갖고 있는 전체 host부터 tag 기반의 범위 선택 지원 합니다.
    Scope의 조건을 선택 시는 AND 조건의 로직으로 동작 합니다.
    전체 host를 대상으로 할 시 ‘All Monitored Hosts’로 선택 하시면 됩니다.
    - Excluding 조건 적용
    : Tag 기반의 제외 범위 선택을 지원 합니다.
    Excluding 조건 적용 시에는 OR 조건의 로직으로 동작 합니다.

    ③ Set alert conditions: alert 발생 조건 설정

    image-20240307-045224.png

    ▶ Aelrt 발생 조건 설정
    - SSH Check를 Monitor를 설정 시에는 Check Alert으로 선택 합니다.
    a. Check Alert : 단일 Service 별 alert 발생 조건 설정. 연속 alert 실패 회수로 조정.
    b. Cluster Alert : Cluster 그룹 내 Service Check 실패 비율로 alert 발생 조건 설정
    ▶ Alert 발생 group by 조건 설정.
    - Host를 선택합니다.
    ▶ Alert 발생 및 해소 조건 설정
    - Warning/Critical/OK 상태가 되는 조건 설정 합니다.
    - Warning/Critical에는 연속 실패 횟수를, OK에는 성공 횟수를 선택 합니다.
    - Do not notify / Notify for Unknown status 설정은 Unknown으로 모니터링 되는 항목이 있는 경우
    Alert을 발생하여 인지할 수 있도록 Notify를 선택해 사용합니다.
    ▶ Do not notify / Notify 설정
    - 데이터 수집이 없을 시 알림에 대한 설정 입니다.
    - Default는 ‘Do not notify’ 이며, Nofiy 로 설정 시 설정된 시간 동안 데이터가 없는 경우
    Nodata 알람이 발생합니다.
    ▶ Alert 자동 Resolve 설정
    - Alert 발생 후 상황이 해제되어 resolve가 되지 않아 Alert 상태가 지속되는 경우
    설정된 시간이 지나면 자동적으로 resolve 처리를 하는 기능입니다.
    - Default는 ‘Never’로 자동 resolve를 하지 않습니다. 자동 resolve 처리를 하시려면
    시간을 선택하시면 됩니다.

    ④ Notify your team: 전파 설정

    image-20240307-050324.png

    ▶ Alert Title
    - 알람 발생시 전파되는 Message의 제목입니다.
    ▶ Alert Message
    - 알람 발생시 전파되는 Message의 내용입니다.
    ▶ Use Message Template Variables
    - Alert title과 Message 본문에 사용 가능한 Template 및 변수 사용법을 확인할 수 있습니다.
    ▶ 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 설정
    - SSH check 대상 host 별로 알람을 발생시키므로 Multi Alert - Host 가 선택되어야 합니다.
    ▶ Renotification 설정
    - Alert(Warning) 혹은 Nodata가  지속될 경우 선택한 시간마다 재알람을 전파합니다.
    ▶ Tags 설정
    - Manage Monitors 에서 조회시, Downtime schedule 설정시 사용가능한 moniotor를 위한 Tag를
    설정합니다.
    ▶ Priority 설정
    - P1~P5로 알람의 심각도(중요도) 등을 설정합니다.

    ⑤ Define permission and audit notifications

    image-20240307-050759.png

    ▶ Restrict editing 설정
    - Alert에 대한 수정 권한을 설정합니다.
    Role 선택시 해당 role을 가진 User들은 모두 수정이 가능합니다
    ▶ Test Notifications
    - 버튼을 클릭하면 설정된 내용을 선택한 채널로 Test 알람을 발송합니다.
    ▶ Create
    - 버튼을 클릭하면 설정된 내용을 저장합니다.

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

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