본문으로 건너뛰기

실시간 로그 이벤트

홈 > 프로젝트 선택 > 알림 아이콘 경고 알림 > 이벤트 설정 > 실시간 로그 탭

수집한 로그 데이터를 조건에 맞춰 필터링하려 경고 알림을 설정할 수 있습니다. 로그 이벤트를 사용하려면 로그 모니터링이 활성화되어야 합니다. 로그 모니터링 활성화에 대한 자세한 내용은 각 제품 로그 문서를 참고하세요.

  • 실시간 로그 이벤트: 실시간으로 수집한 로그에서 설정한 이벤트 조건이 충족되면 이벤트가 발생합니다.

기본 옵션​

  • 검색: 이벤트 이름 또는 이벤트 수신 태그를 선택해 원하는 이벤트 검색

  • JSON 다운로드/업로드: 이벤트 규칙은 JSON 편집기를 통해 바로 수정하거나, 파일로 다운로드하여 수정 후 다시 업로드 가능

  • 알림 메시지 설정: 수신할 메시지의 상세 항목 선택 및 항목 별 내용 편집

  • + 이벤트 추가: 새로운 로그 이벤트 추가

    표 | 실시간 로그 이벤트 목록 구성
    항목설명
    이벤트 이름알림 제목으로 사용되는 이벤트 이름
    - 최대 255byte까지 입력 가능
    카테고리로그 구분 명칭(로그 폴더명)
    검색 키로그 데이터에서 찾고 싶은 항목
    - 예: HTTP 응답 상태 코드를 나타내는 값에 접근하고자 할 경우 검색 키 status
    검색 값검색 키에 해당하는 실제 데이터로 로그에서 입력한 단어를 포함할 경우 경고 알림을 보냄
    - 예: 검색 키 status 검색 값 200을 설정한 경우 HTTP 응답 상태 코드 200을 포함하는 로그 데이터 수집 시 경고 알림 발생
    이벤트 발생 일시 중지이벤트 알림 발생 후, 같은 이벤트 발생을 일정 시간 동안 멈춤
    - 선택 가능 시간: 사용 안 함, 5분, 10분, 15분, 20분, 30분, 1시간, 2시간, 3시간, 6시간, 12시간, 1일
    - 해소된 알림이 활성화된 경우, 정상(RECOVERED) 상태 알림을 받은 후 선택한 시간 동안 같은 이벤트가 발생해도 알림이 발생하지 않음
    이벤트 대상 필터링이벤트가 적용될 대상의 조건
    - 대상 조건을 설정하지 않으면 수집되는 모든 데이터에 대해 알림 여부 판단
    - 선택 입력: 태그, 연산자, 값을 선택해 조건 구성
    - 직접 입력: 조건을 직접 입력해 대상 지정
    이벤트 수신 태그해당 이벤트 알림을 받을 사용자 또는 그룹(수신 태그)
    수정 아이콘이벤트 수정 및 삭제
    토글 비활성화 아이콘이벤트의 활성화 여부
    - 활성화: 조건을 충족하면 이벤트 발생
    - 비활성화: 이벤트가 동작하지 않으며, 조건을 검사하지 않음

이벤트 설정​

로그 이벤트는 실시간 로그 또는 일정 조건을 만족하는 로그가 누적될 때 경고 알림을 설정할 수 있는 기능입니다.

실시간 로그 이벤트 추가​

  1. 경고 알림 > 이벤트 설정의 실시간 로그 탭을 클릭하세요.

  2. 화면 오른쪽의 [ + 이벤트 추가 ] 버튼을 클릭하세요.

  3. 이벤트 규칙 추가 창에서 로그 이벤트 조건을 설정하세요.

    • 이벤트 이름: 이벤트 제목으로 사용할 이름을 입력하세요.

    • 이벤트 활성화: 토글 버튼 활성화 시, 토글 버튼 활성화 시, 조건을 충족하면 이벤트 발생합니다.

    • 레벨: 이벤트 레벨(Critical, Warning, Info)을 선택하세요.

    • 메시지: 이벤트 발생 시 전달받을 알림 메시지를 입력하세요. 메시지에 변수를 사용하여 이벤트 발생 시점의 실제 값을 포함할 수 있습니다.

      팁

      변수 사용 규칙

      • 변수 형식: ${지표명}
      • 설정한 카테고리와 동일한 카테고리 내 지표만 변수로 사용할 수 있습니다.
      • 여러 변수를 조합해 상세한 메시지를 구성할 수 있습니다.
      • 사용 가능한 변수 목록은 메트릭스 조회에서 확인할 수 있습니다.
    • 카테고리: 로그 구분 명칭(로그 폴더명)을 목록에서 선택하거나 직접 입력하세요. 카테고리를 선택해야 검색 키와 검색 값을 입력할 수 있습니다.

    • 검색 키: 로그 데이터에서 찾고 싶은 항목을 입력하세요.

      • 예: HTTP 응답 상태 코드를 나타내는 값에 접근하고자 할 경우 검색 키 status
    • 검색 값: 검색 키에 해당하는 실제 데이터를 입력하세요. 로그에서 입력한 단어를 포함할 경우 경고 알림을 보냅니다.

      • 예: 검색 키 status 검색 값 200을 설정한 경우 HTTP 응답 상태 코드 200을 포함하는 로그 데이터 수집 시 경고 알림 발생
    • 이벤트 대상 필터링: 이벤트가 적용될 대상의 조건을 입력하세요. 입력값이 없으면, 수집되는 모든 데이터에 대해 알림 여부 판단합니다.

      • 선택 입력: 태그, 연산자, 값을 선택해 대상 조건을 설정하세요.

        노트

        조건식 작성 방법과 지원되는 연산자는 조건 설정 가이드를 참고하세요.

      • 직접 입력: 조건을 직접 입력하세요.

    • 이벤트 발생 일시 중지: 알림을 일시 중지할 시간을 선택하세요. 이벤트 발생 후 설정한 시간 동안 동일한 이벤트가 발생하지 않습니다.

      • 선택 가능 시간: 사용 안 함, 1분, 2분, 3분, 5분, 10분, 20분, 30분, 1시간, 3시간, 6시간, 12시간
    • 이벤트 동작 시간: 이벤트가 특정 시간대(근무/비근무/점검 시간 등)에 동작하도록 태그를 설정하세요. 태그를 설정하지 않으면 이벤트가 활성화된 상태에서 24시간 상시 동작합니다.

      1. + 추가를 클릭하세요.
      2. 이벤트 동작 시간에서 +새로운 태그 생성을 클릭하세요.
      3. 이벤트 동작 시간 태그 생성에서 태그 이름, 요일, 시간, 색상을 선택하고 [ 적용 ] 버튼을 클릭하세요.
      4. 생성한 태그는 태그 목록에서 확인할 수 있으며, 체크 박스를 선택하면 적용됩니다.
      5. 수정 또는 삭제할 태그의 수정 아이콘 아이콘을 클릭해 이벤트 동작 시간 태그 수정에서 태그를 수정하거나 태그 삭제할 수 있습니다.
      주의

      태그 삭제 시 해당 태그가 적용된 모든 사용자의 태그가 제거됩니다. 단, 이벤트 규칙에서 사용 중인 태그는 삭제할 수 없습니다.

    • 이벤트 수신 태그: 이벤트에 수신 태그를 설정하면, 해당 태그를 가진 프로젝트 멤버에게 알림을 전송합니다. 수신자 태그를 설정하지 않으면 프로젝트 내 모든 사용자에게 알림이 전송됩니다.

      1. + 태그 추가 또는 +를 클릭하세요.
      2. 이벤트 수신 태그 창 아래의 + 새 태그 생성을 클릭하세요.
      3. 태그 생성 창에서 태그 이름을 입력하고, 색상을 선택한 후, [ 태그 생성 ] 버튼을 클릭해 태그를 생성하세요.
      4. 생성된 태그는 태그 목록의 수정 아이콘 아이콘을 클릭해 수정 또는 삭제하세요.
      5. 이벤트 수신 태그 창의 태그 목록에서 원하는 태그를 선택하면 적용됩니다.
      팁

      이벤트 설정 시 이벤트 수신 태그를 선택하여 해당 태그를 가진 프로젝트 멤버와 3rd-party 플러그인에 알림을 전송할 수 있습니다. 경고 알림 > 이벤트 수신 설정에서 프로젝트 멤버와 3rd-party 플러그인에 각각 태그를 지정할 수 있습니다.

  4. 이벤트 규칙 추가 창에서 설정이 완료되면 [ 저장 ] 버튼을 클릭하세요.

이벤트 수정/삭제​

  1. 경고 알림 > 이벤트 설정의 실시간 로그 탭으로 이동하세요.

  2. 로그 이벤트 목록에서 수정 또는 삭제하려는 이벤트의 수정 아이콘 아이콘을 클릭하세요.

  3. 이벤트 설정 화면에서 옵션을 수정하고, [ 저장 ] 버튼을 클릭하세요.

    a. 선택한 이벤트를 삭제하려면 이벤트 설정 화면의 오른쪽 위의 [ 삭제 ] 버튼을 클릭하세요.

이벤트 공유​

메트릭스 이벤트 설정을 JSON 파일로 저장해 다른 사용자와 설정을 공유하거나 다른 사용자의 설정을 가져올 수 있습니다.

  • JSON 파일명: event-rules-YYYYMMDD.json

내보내기

  1. 화면 오른쪽 위에 [ JSON 내보내기 아이콘 ] 버튼을 클릭하세요.
  2. JSON 편집 창이 나타나면 [ 내보내기 아이콘 내보내기 ] 버튼을 클릭하세요.
    • 이벤트를 검색 후 내보내기 기능을 이용하면 검색한 목록만 JSON 파일로 다운받을 수 있습니다.
  3. JSON 파일이 다운로드되면 공유할 다른 사용자에게 전달하세요.

가져오기

  1. 화면 오른쪽 위에 [ 가져오기 아이콘 ] 버튼을 선택하세요.
  2. 내보내기 기능을 통해 다운로드한 JSON 파일을 선택하세요.
  3. JSON 편집 창이 나타나면 [ 목록에 추가하기 ] 또는 [ 덮어쓰기 ] 버튼을 선택하세요.
주의

같은 종류의 제품 간에 이용할 것을 권장합니다. 다른 제품의 프로젝트로부터 이벤트 설정을 가져올 수는 있지만 정상 작동하지 않습니다.

Json 형식으로 수정하기​

  1. 화면 오른쪽 위에 [ JSON 내보내기 아이콘 ] 버튼을 클릭하세요.

  2. 편집 창이 나타나면 JSON 형식에 맞춰 내용을 수정하세요.

  3. 수정을 완료하면 화면 아래 [ 저장 ] 버튼을 선택하세요.

노트

수정한 내용이 JSON 형식에 맞지 않으면 화면 아래에 에러 메시지가 표시되며, 저장할 수 없습니다. 표시되는 에러 메시지는 형식에 따라 다를 수 있습니다.

JSON error


부록​

발생 조건, 대상 선택 가이드​

메트릭스 경고 알림의 이벤트 발생 조건과 이벤트 대상 선택은 동일한 문법을 사용합니다. 단, 이벤트 발생 조건은 필드(Field)의 Key를 변수로 사용하고, 이벤트 대상 선택은 태그(Tag)의 Key를 변수로 사용합니다.

레벨 동작 가이드​

이벤트 레벨은 위험(Critical)과 경고(Warning), 정상(Info)으로 구분합니다.

  1. 우선순위 기반 이벤트 발생

    여러 레벨의 조건을 동시에 충족할 경우, 가장 높은 우선순위의 이벤트만 발생합니다.

    예시
    설정:
    - Warning: CPU > 70%
    - Critical: CPU > 90%

    현재 상태: CPU 95%
    → 결과: Critical 이벤트만 발생 (Warning은 억제됨)
  2. 레벨 상승

    진행중 상태를 갖는 이벤트에서 낮은 레벨 이벤트가 진행 중일 때 높은 레벨 조건을 충족하면, 두 레벨 모두 진행 중 상태가 됩니다.

    예시
    설정:
    - Warning: CPU > 70%
    - Critical: CPU > 90%

    시나리오:
    1) CPU 80% → Warning 발생 (진행 중)
    2) CPU 95% → Warning (진행 중), Critical (진행 중)
  3. 레벨 하강

    진행중 상태를 갖는 이벤트에서 높은 레벨에서 낮은 레벨로 전환되면 높은 레벨은 해소되고 낮은 레벨이 유지됩니다.

    예시
    설정:
    - Warning: CPU > 70%
    - Critical: CPU > 90%

    시나리오:
    1) CPU 97% → Critical 발생
    2) CPU 85% → Critical 해소, Warning 유지
    3) CPU 65% → Warning 해소
  4. 동작 흐름도

    - Warning: CPU > 70%
    - Critical: CPU > 90%

    메트릭 값: 60% → 75% → 92% → 85% → 60%
    상태: 정상 Warning Critical Warning 정상
    (발생) (발생) (유지) (해소)
    Warning
    (유지)
노트

진행 중 상태를 갖는 이벤트는 조건이 충족되는 동안 계속 활성화 상태를 유지하며, 조건이 해제될 때까지 지속됩니다.

조건 설정 가이드​

주의

지표명이 숫자로 시작하거나 특수문자가 포함된 경우 ${지표명} 형태로 작성해야 합니다.

  • 괄호 ( ), [ ]
  • 연산자 +, -, *, /, %
  • 구분자 :, @, #, ,,(공백)
  • 기타 특수문자 !, ^, &, |, ~, ```, =

${}사용 예시:

${cpu(xos)} > 50
${mem[0]} >= 100
${cpu-usage} > 80
${namespace:cpu} > 70
${metric name} > 60
${4xx_error} > 10

${} 없이 사용 가능: 영문자, 언더스코어(_), 점(.)만 포함된 경우

cpu > 80
cpu_usage > 50
CPUUtilization.Average > 0.8
  1. 비교 연산자

    숫자 비교
        크다:           cpu > 80
    크거나 같다: cpu >= 80
    작다: memory < 1000
    작거나 같다: memory <= 1000
    같다: status == 200
    같지 않다: error != 0
    문자열 비교
        status == 'OK'
    region == "us-east-1"
  2. 산술 연산자

    • 기본 산술 연산

      덧셈:    cpu + 10 >= 90
      뺄셈: memory - 100 >= 500
      곱셈: cpu * 2 >= 100
      나눗셈: disk / 1024 >= 100
      나머지: value % 10 == 0
    • 괄호를 이용한 우선순위 제어

      (cpu + memory) * 2 >= 200
      (disk - used) / total >= 0.2
      ((cpu + memory) / 2) >= 50
    • 음수 표현

      cpu > -100
  3. 논리 연산자

    • AND 연산 (&&)

      cpu > 80 && memory > 1000
      ${cpu(xos)} > 50 && ${mem(xos)} > 60
    • OR 연산 (||)

      cpu > 90 || memory > 90
      disk < 10 || network > 1000
    • 복합 논리 연산

      (cpu > 50 && memory > 50) || disk < 20
      cpu > 80 && (memory > 1000 || disk > 500)
  4. 패턴 매칭 연산자

    • LIKE 연산자

      oname like 'prod-*'
      url like '*error*'
      message like 'WARN%'
    • NOT LIKE 연산자

      oname not like 'test-*'
      url not like '*debug*'
  5. 내장 함수

    • Null 체크 함수

      isNull(value)             # null인지 확인
      isNotNull(value) # null이 아닌지 확인
      nvl(value, 0) # null이면 기본값 반환
      isEmpty(str) # 빈 문자열인지 확인
      isNotEmpty(str) # 빈 문자열이 아닌지 확인
    • 집계 함수

      sum(cpu, memory, disk)              # 합계
      avg(cpu, memory) # 평균
      max(cpu, memory, disk) # 최대값
      min(cpu, memory, disk) # 최소값
      count(value1, value2, value3) # 개수
    • 수학 함수

      round(cpu, 2)             # 반올림 (소수점 2자리)
    • 문자열 함수

      length(str)                # 문자열 길이
      startsWith(str, 'prefix') # 접두사 확인
      endsWith(str, 'suffix') # 접미사 확인
      indexOf(str, 'search') # 문자열 위치
      substring(str, 0, 10) # 부분 문자열
      trim(str) # 공백 제거
      replace(str, 'old', 'new') # 문자열 치환
      hasStr(str, 'search') # 문자열 포함 여부

      문자열 함수

      equalsIgnoreCase(str, 'match_text')     # 대소문자를 구분하지 않는 일치 비교
      notEqualsIgnoreCase(str, 'match_text') # 대소문자를 구분하지 않는 불일치 비교

      == 와 != 는 대소문자를 구분하므로 WebServer 와 webserver 를 다른 값으로 판단합니다. 표기가 일정하지 않은 태그나 필드를 비교할 때 위 두 함수를 사용하면 대소문자 차이를 무시하고 값을 맞출 수 있습니다.

      예시
      equalsIgnoreCase(okindName, 'WebServer')
      notEqualsIgnoreCase(container, 'PROD.billing')

      이벤트 발생 조건과 이벤트 대상 선택은 같은 문법을 사용하므로 두 함수를 양쪽 조건식에 모두 작성할 수 있습니다.

    • 조건 함수

      • if: 조건식이 참(true)이면 true값을 반환하고, 거짓(false)이면 false값을 반환하는 조건 함수
      형식
      if(조건, true값, false값)
      예시
      if(value >= 90, 'High', 'Medium') == 'High'
      • decode: 값과 조건을 비교하여 일치하는 조건의 결과를 반환, 없으면 기본값 반환
      형식
      decode(값, 조건1, 결과1, 조건2, 결과2, ..., 조건N, 결과N, 기본값)
      예시
      decode(value, 1, 'Low', 2, 'Medium', 3, 'High', 'Unknown') == 'Unknown'
      • in: 값이 지정한 후보값 중 하나와 일치하면 true, 아니면 false
      형식
      in(값, 후보값1, 후보값2, ..., 후보값N)
      예시
      in(status, 200, 201, 204) == false
    주의

    작성 시 주의사항

    • 권장사항

      • 간단한 변수명은 ${} 없이 사용 (예: cpu, memory)
      • 특수문자 포함 시 반드시 ${} 사용
      • 복잡한 연산은 괄호로 명확하게 구분
      • 함수명은 정확히 입력 (대소문자 구분)
    • 피해야 할 사항

      • 불완전한 표현식 작성 (예: cpu >, memory &&)
      • 괄호 미스매칭 (예: (cpu > 80 && cpu > 70))
      • 연속된 연산자 사용 (예: cpu >> 80, cpu >< 80)