1. NTP 설정 필요 배경
NTP Offset 값의 차이로 인해 모니터링 불가 및 오탐 등의 이슈가 발생가능하며, 최근 관련 문의가 많이 발생 함에 따라 확인 된 NTP 설정 변경 안내를 드립니다.
Datadog NTP 관련 문의 사례
네트워크, 방화벽 작업이 없었는데 모니터링 중이던 host가 안보이는 현상 발생
Datadog으로 API 호출했을 때 NTP 문제로 인한 Metric 정보 누락 현상 확인
Datadog Agent가 설치된 host에서 datadog NTP 데이터를 수집할 수 없어 host monitor의 오탐 발생
서버 시간이 현재 시간보다 빠를 경우 Datadog 모니터링 문의
NTP 관련 Docs 내용
Datadog 서비스와 모니터링 대상 Host 간 Agent 시간이 15초 이상 차이 날 경우 아래 현상을 경험할 수 있습니다.(원문 : When the local Agent’s time is more than 15 seconds off from the Datadog service and other hosts you are monitoring, you may experience )
Incorrect alert triggers (오알람 발생)
Metric delays (메트릭 지연)
Gaps in graphs of metrics (메트릭 그래프의 차이)
※ NTP 참고 URL: Datadog NTP Integration 가이드
Datadog의 NTP 참조 순서
Datadog Agent가 실행되는 CSP의 사설 NTP를 감지하는 경우, CSP NTP 참조
감지가 안되는 경우 Datadog NTP 값 참조. 0~3.datadog.pool.ntp.org 까지 4개의 Domain 제공
※ Note: NTP 요청은 Proxy 설정을 지원 하지 않습니다.Proxy 서버 사용, On-premise 및 내부 폐쇄망 구조 등 Datadog NTP 참조가 안되는 사이트의 경우 NTP 설정 변경이 필요합니다.
2. NTP 점검
NTP는 Datadog의 상태 점검 기능인 Service Check을 통해 수집 상태를 확인할 수 있으며, 수집되면 ntp.offset 메트릭이 수집됩니다.
Check Summary 상태 확인
Check Summary는 전체 Service Check의 요약 정보를 보여주는 메뉴입니다.
메뉴 경로 : Monitors > Check Summaryntp.in_sync 의 Status를 아래와 같이 확인 합니다.
OK : 상태 정상
Critical : NTP Offset이 차이 남
Unknown : ntp.offset 수집 안됨
ntp.offset 메트릭 확인
Metrics의 Summary 메뉴에서 ntp.offset 메트릭 수집 여부를 확인 할 수 있습니다.
Metrics의 Explorer 메뉴에서 ntp.offset 메트릭 값 확인 할 수 있습니다. . 수집주기는 15분입니다.
Monitors의 검색창에서 type:custom 이나 ntp로 검색을 하면 기본 NTP alert을 확인 가능 합니다.
최근 2분동안의 NTP status 값을 근거로 알람 발생 합니다.
현재 배포된 NTP alert rule의 경우 아래와 같이 Do not notify for Unknown status로 설정되어서 Unknown 상태 시에도 OK로 표시됩니다.
3. NTP 설정 변경
Proxy 사용, On-premise/내부망 사용 환경에서 NTP 설정 점검 결과 Unknown 상태로 나오는 경우는 아래와 같이 Local NTP로 변경 설정합니다.
Local NTP 설정을 했으나, 정상적으로 동작하지 않아 Unknown 상태로 나오는 경우, NTP 서버 IP를 지정하여 설정할 수 있습니다.
NTP Integration 설정
Linux / Windows 설정 방법
플랫폼 | 경로 |
---|---|
Linux |
|
Windows |
|
|
conf.yaml 설정
Local NTP 사용시
지정 NTP 서버 사용시
설정 후 Agent 재시작
설정 변경 후 Datadog Agent 재시작을 해야 적용됩니다.
OS | Command | |
---|---|---|
Linux | CentOs/Redhat |
|
Ubuntu/Debian |
| |
Windows |
|
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에 ‘use_local_defined_servers: true’ 설정 추가 하세요.
※ 직접 NTP 서버 IP를 지정하려 하시는 경우 에는 Datadog Agent Configmap에
'use_local_defined_servers:ture'설정이 아닌 ‘host: <IP정보>’ 설정을 추가 하시기 바랍니다.Helm 배포 values.yaml 설정 예(Linux node 기준)
Local NTP 사용시
지정 NTP 서버 사용시
설정 후 helm chart upgrade (Agent pod 자동 재기동)
4. NTP Alert 설정
Monitors > New Monitor > Service Check 메뉴에서 설정 가능하며, 기본으로 제공되는 ‘Clock in sync with NTP’ Monitor를 수정 해 사용 가능합니다.
Service Check Monitor 구성
① Pick a Service Check
- 모니터링 가능한 Service Check 대상 선택. 이 경우 ntp.in_sync 선택 합니다.
② Pick monitor scope: Tag 기반의 범위 설정- 모니터링 범위 설정
: 동일 Service Check이 갖고 있는 전체 host부터 tag 기반의 범위 선택 지원 합니다.
Scope의 조건을 선택 시는 AND 조건의 로직으로 동작 합니다.
전체 host를 대상으로 할 시 ‘All Monitored Hosts’로 선택 하시면 됩니다.
- Excluding 조건 적용
: Tag 기반의 제외 범위 선택을 지원 합니다.
Excluding 조건 적용 시에는 OR 조건의 로직으로 동작 합니다.
③ Set alert conditions: alert 발생 조건 설정
▶ 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: 전파 설정
▶ 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▶ Restrict editing 설정
- Alert에 대한 수정 권한을 설정합니다.
Role 선택시 해당 role을 가진 User들은 모두 수정이 가능합니다
▶ Test Notifications
- 버튼을 클릭하면 설정된 내용을 선택한 채널로 Test 알람을 발송합니다.
▶ Create
- 버튼을 클릭하면 설정된 내용을 저장합니다.