본문 바로가기
WIKI 기술 지식 베이스

인덱스

원문 보기 위키 갱신

로그 인덱스는 데이터를 가치 그룹으로 세분화해 보존, 할당량, 사용량 모니터링, 청구를 다르게 할 수 있게 해주므로 Log Management 예산을 세밀하게 제어할 수 있어요. 인덱스는 Configuration 페이지의 Indexes 섹션에 있어요. 인덱스를 더블 클릭하거나 edit 버튼을 클릭하면 지난 3일 동안 인덱싱된 로그 수와 해당 로그의 보존 기간에 대한 정보를 볼 수 있어요.

인덱스된 로그는 패싯 검색, 패턴, 분석, 모니터링에 사용할 수 있어요.

출처: 문서

본문

여러 인덱스

기본적으로 각 새 계정은 모든 로그의 모놀리식 집합을 나타내는 단일 인덱스를 가져요. 다음이 필요하다면 여러 인덱스 사용을 권장해요:

  • 여러 보존 기간
  • 더 세밀한 예산 관리를 위한 여러 일일 할당량

Log Explorer는 여러 인덱스에 걸친 쿼리를 지원해요.

인덱스 추가

New Index 버튼을 사용해 새 인덱스를 만드세요. 계정마다 만들 수 있는 인덱스 수에는 기본적으로 100으로 설정된 최대값이 있어요.

참고: 인덱스 이름은 문자로 시작해야 하며 소문자, 숫자 또는 - 문자만 포함할 수 있어요.

{% alert level="info" %} 계정의 최대 인덱스 수를 늘려야 한다면 Datadog 지원팀에 문의하세요. {% /alert %}

인덱스 삭제

조직에서 인덱스를 삭제하려면 인덱스 액션 트레이에서 Delete 아이콘을 사용하세요. Logs delete data 권한이 있는 사용자만 이 옵션을 사용할 수 있어요.

{% alert level="danger" %} 삭제된 인덱스와 같은 이름으로 인덱스를 다시 만들 수 없어요. {% /alert %}

참고: 삭제된 인덱스는 더 이상 새 수신 로그를 받지 않아요. 삭제된 인덱스의 로그는 더 이상 쿼리할 수 없어요. 모든 로그가 적용 보존 기간에 따라 수명을 다하면 인덱스는 Index 페이지에 더 이상 표시되지 않아요.

인덱스 필터

인덱스 필터를 사용하면 어떤 로그가 어떤 인덱스로 흘러 들어갈지 동적으로 제어할 수 있어요. 예를 들어 첫 번째 인덱스를 status:notice 속성으로 필터링하고, 두 번째 인덱스를 status:error 속성으로 필터링하고, 마지막 인덱스를 필터 없이(*에 해당) 만들면 모든 status:notice 로그는 첫 번째 인덱스로, 모든 status:error 로그는 두 번째 인덱스로, 나머지는 마지막 인덱스로 갈 거예요.

참고: 로그는 필터와 일치하는 첫 번째 인덱스로 들어가요, 인덱스 목록에서 드래그 앤 드롭을 사용해 사용 사례에 맞게 재정렬하세요.

제외 필터

기본적으로 로그 인덱스에는 제외 필터가 없어요. 즉 Index Filter와 일치하는 모든 로그가 인덱싱돼요.

하지만 모든 로그가 똑같이 가치 있는 것은 아니므로, 제외 필터는 인덱스로 흐르는 로그 중 어떤 것을 제거해야 할지 제어해요. 제외된 로그는 인덱스에서 버려지지만 여전히 Livetail을 통해 흐르며 메트릭 생성과 아카이빙에 사용할 수 있어요.

제외 필터를 추가하려면:

  1. Log Indexes로 이동하세요.
  2. 제외 필터를 추가하려는 인덱스를 펼치세요.
  3. Add an Exclusion Filter를 클릭하세요.

제외 필터는 쿼리, 샘플링 규칙, 활성/비활성 토글로 정의돼요:

  • 기본 query는 *이며, 이는 인덱스로 흐르는 모든 로그가 제외된다는 뜻이에요. 로그 쿼리로 제외 필터 범위를 로그 하위 집합으로 좁히세요.
  • 기본 sampling rule은 쿼리와 일치하는 Exclude 100% of logs예요. 샘플링 비율을 0%에서 100%로 조정하고, 샘플링 비율이 개별 로그에 적용될지 아니면 어떤 속성의 고유 값으로 정의된 로그 그룹에 적용될지 결정하세요.
    • 샘플링 비율이 개별 로그에 적용되면 로그에 트레이스 ID가 있는 경우 그 존재에 대해 샘플링이 수행돼요. 이 시나리오에서 샘플링된 로그는 통합 텔레메트리 데이터를 촉진하기 위해 샘플링된 트레이스와 상관될 가능성이 높아져요.
    • 샘플링에 트레이스 ID의 고유 값을 선택하면 동작은 개별 로그와 동일해요.
  • 기본 toggle은 활성이며, 이는 인덱스로 흐르는 로그가 제외 필터 구성에 따라 실제로 버려진다는 뜻이에요. 이 토글을 비활성으로 바꾸면 새로 인덱스로 흐르는 로그에 이 제외 필터를 무시해요.

참고: 로그의 인덱스 필터는 일치하는 첫 번째 활성 제외 필터로만 처리돼요. 로그가 제외 필터와 일치하면(로그가 샘플링 아웃되지 않더라도) 시퀀스의 이후 모든 제외 필터를 무시해요.

사용 사례에 따라 제외 필터 목록에서 드래그 앤 드롭을 사용해 재정렬하세요.

예시

끄고 켜기

플랫폼에서 사고가 발생할 때까지 또는 애플리케이션의 중요한 버전 배포를 주의 깊게 관찰할 때까지 DEBUG 로그가 필요 없을 수 있어요. status:DEBUG에 100% 제외 필터를 설정하고, 필요할 때 Datadog UI 또는 API를 통해 켜고 끄세요.

추세 주시하기

웹 액세스 서버 요청의 모든 로그를 보관하고 싶지 않다면? 모든 3xx, 4xx, 5xx 로그는 인덱싱하되 2xx 로그의 95%는 제외할 수 있어요: source:nginx AND http.status_code:[200 TO 299]로 추세를 추적할 수 있어요. 팁: 로그에서 생성한 메트릭으로 웹 액세스 로그를 요청 수를 세고 상태 코드, 브라우저, 국가로 태그된 의미 있는 KPI로 변환하세요.

상위 수준 엔티티와 일관되게 샘플링

매일 수백만 명의 사용자가 웹사이트에 연결돼요. 모든 개별 사용자에 대한 관측 가능성이 필요하지는 않지만 일부 사용자의 전체 그림은 유지하고 싶을 수 있어요. 모든 프로덕션 로그(env:production)에 적용되는 제외 필터를 설정하고 @user.email의 90%에 대한 로그를 제외하세요.

APM을 Logs와 함께 사용할 수 있어요(로그에 트레이스 ID 주입 덕분에). 사용자와 마찬가지로 모든 로그를 보관할 필요는 없지만 트레이스에 항상 전체 그림을 주는지 확인하는 것은 문제 해결에 중요해요. 계측된 서비스(service:my_python_app)의 로그에 적용되는 제외 필터를 설정하고 Trace ID의 50%에 대한 로그를 제외하세요 — 파이프라인에서 상류에 트레이스 ID 리매퍼를 사용해야 해요.

여러 인덱스에서 샘플링 일관성을 보장하려면:

  1. 각 인덱스에 하나의 제외 규칙을 만드세요.
  2. 모든 제외 규칙에 같은 샘플링 비율과 상위 수준 엔티티를 정의하는 같은 속성을 사용하세요.
  3. 제외 규칙, 필터, 각각의 순서를 다시 확인하세요(로그는 일치하는 첫 번째 제외 규칙만 통과함).

다음 예시에서:

  • 일반적으로 특정 request_id를 가진 모든 로그는 보관되거나 제외돼요(50% 확률로).
  • threat:true 또는 compliance:true 태그가 있는 로그는 request_id와 무관하게 보관돼요.
  • DEBUG 로그는 request_id 샘플링 규칙과 일관되게 인덱싱되며, 디버그 로그 제외 필터가 활성화되어 있으면 그 규칙에 따라 샘플링돼요.
  • 실제 request_id가 있는 2XX 웹 액세스 로그의 50%가 보관돼요. 다른 모든 2XX 웹 액세스 로그는 90% 제외 필터 규칙에 따라 샘플링돼요.

로그 보존 갱신

인덱스 보존 설정은 로그가 Datadog에 저장되고 검색 가능한 기간을 결정해요. 계정 구성에서 허용되는 값으로 보존 기간을 설정할 수 있어요.

현재 계약에 없는 추가 보존을 활성화하려면 [email protected]으로 고객 성공팀에 문의하세요. 추가 보존이 활성화된 후에는 인덱스의 보존 기간을 갱신해야 해요.

참고: 현재 계약에 없는 보존을 사용하려면 옵션이 조직 설정에서 관리자에 의해 활성화되어야 해요.

일일 할당량 설정

일일 할당량을 설정해 인덱스에 하루에 저장되는 로그 수를 하드 리밋할 수 있어요. 이 할당량은 저장되었어야 할 모든 로그(예: 제외 필터 적용 후)에 적용돼요. 일일 할당량에 도달하면 로그는 더 이상 인덱싱되지 않지만 livetail에서 계속 사용 가능하고 아카이브로 보내지며, 로그에서 메트릭을 생성하는 데 사용돼요.

인덱스를 편집할 때 언제든 이 할당량을 구성하거나 제거할 수 있어요:

  • 백만 단위 로그로 일일 할당량 설정
  • (선택 사항) 사용자 정의 재설정 시간 설정. 기본적으로 인덱스 일일 할당량은 2:00pm UTC에 자동 재설정돼요.
  • (선택 사항) 일일 할당량의 백분율로 경고 임계값 설정(최소 50%)

참고: 일일 할당량과 경고 임계값의 변경은 즉시 적용돼요.

일일 할당량 또는 경고 임계값에 도달하면 이벤트가 생성돼요.

사용량 모니터링·알림 방법은 로그 사용량 모니터링을 참고하세요.

더 알아보기 (Learn more)