필드 값을 기준으로 vRealize Log Insight Linux 에이전트에서 수집된 모든 로그 이벤트를 필터링하여 선택하거나 삭제할 로그 이벤트를 지정할 수 있습니다. whitelistblacklist 수집기 옵션을 사용하여 필터를 정의할 수 있습니다.

팁: 기본적으로 vRealize Log Insight Linux 에이전트는 프로그램 또는 편집기가 생성한 숨겨진 파일을 수집합니다. 숨겨진 파일 이름은 마침표로 시작합니다. vRealize Log Insight Linux 에이전트가 숨겨진 파일을 수집하지 않도록 지정하기 위해 제외 exclude=.* 매개 변수를 추가할 수 있습니다.

각 로그 이벤트에 대해 수집기는 whitelistblacklist 필터 식을 평가합니다. whitelist 식이 true로 평가되고 blacklist 식이 false로 평가되거나 평가할 수 없는 경우 이벤트는 추가 처리를 위해 대기열로 이동합니다. 다른 경우 수집기는 이벤트를 삭제합니다. whitelist 식의 기본값은 true이고, blacklist 식의 기본값은 false입니다.

팁: Filelog 수집기는 필터링을 위해 더 적은 수의 필드를 제공합니다. 필터링할 필드를 가져오기 위해 로그를 구문 분석할 수 있습니다. 자세한 내용은 로그 구문 분석 항목을 참조하십시오.

whitelist 또는 blacklist 필터는 단일 논리 값 또는 정수 값으로 평가되는 변수, 리터럴 및 연산자의 집합입니다. 로그 이벤트 필드는 변수로, 큰따옴표로 묶은 문자열 및 숫자는 리터럴로 사용합니다. 필터 식에서 사용할 수 있는 연산자에 대한 자세한 내용은 이벤트 필드 및 연산자 항목을 참조하십시오.

참고:
  • 숫자를 문자열과 비교하거나 비교에 문자열 형식으로 된 숫자를 포함하는 경우, 각 문자열은 하나의 숫자로 변환되어 수치로 비교됩니다. 예:

    • whitelist = 123.0 == "000123"은 true로 평가됩니다.
    • whitelist = "00987" == "987.00"은 true로 평가됩니다.
    • whitelist = response_size >= "12.12"에서 response_size 필드에 숫자 값이 있는 경우 이 식은 수치로 평가됩니다. 응답 크기가 12.12보다 큰 경우 식은 true이고, 그렇지 않으면 false입니다.
    • whitelist = "09123" < "234"에서 문자 리터럴은 모두 숫자 값으로 변환되고 식은 false로 평가됩니다.
  • 문자열 피연산자 중 하나를 숫자 값으로 변환할 수 없는 경우 두 피연산자 모두 문자열로 변환됩니다. 대/소문자를 구분하는 간단한 사전 비교를 수행합니다. 예:

    • whitelist = "1234a" == "1234A"는 문자열 비교이며 false로 평가됩니다.
    • whitelist = 4 < "four"에서 4가 "4"로 변환되어 true로 평가됩니다.
    • whitelist = response_size > "thousand"에서 response_size 필드의 값이 문자열 값으로 변환되어 식이 false로 평가됩니다.
  • 필터 식이 정수 값으로 평가되는 경우 0일 때는 false이고, 그렇지 않은 경우에는 true로 처리됩니다.

    예를 들어, whitelist = some_integer & 1 식은 some_integer 필드에 최하위 비트 집합이 있는 경우 true로 평가되고, 그렇지 않으면 false로 평가됩니다.

로그 이벤트 필드 및 연산자의 전체 목록은 로그 파일에서 로그 이벤트 수집 항목을 참조하십시오.

이 예에서는 /var/log/httpd/access 파일에서 Apache 액세스 로그를 수집합니다. 파일의 일부 샘플 로그는 다음과 같습니다.
  • 127.0.0.1 - frank [10/Oct/2016:13:55:36 +0400] "GET /apache_pb.gif HTTP/1.0" 200 2326
  • 198.51.100.56 - john [10/Oct/2016:14:15:31 +0400] "GET /some.gif HTTP/1.0" 200 8270
  • 198.51.100.12 - smith [10/Oct/2016:14:15:31 +0400] "GET /another.gif HTTP/1.0" 303 348
  • 198.51.100.32 - test [10/Oct/2016:15:22:55 +0400] "GET /experimental_page.gif HTTP/1.0" 400 46374
  • 127.0.0.1 - test [10/Oct/2016:15:22:57 +0400] "GET /experimental_page2.gif HTTP/1.0" 301 100

사전 요구 사항

  • 루트로 로그인하거나 sudo를 사용하여 콘솔 명령을 실행합니다.
  • vRealize Log Insight Linux 에이전트를 설치한 Linux 시스템에 로그인하고, 콘솔을 연 후 pgrep liagent를 실행하여 vRealize Log Insight Linux 에이전트가 설치되어 실행 중인지 확인합니다.

프로시저

  1. 다음 코드 조각과 같이 로그에 대한 파서를 정의합니다.
    [parser|apache-access]
    base_parser=clf
    format=%h %l %u %t \"%r\" %s %b
    정의한 파서는 /var/log/httpd/access 파일에서 수집된 모든 로그 이벤트에 대해 remote_host, remote_log_name, remote_auth_user, timestamp, request, status_coderesponse_size 필드를 추출합니다. 이러한 필드를 사용하여 이벤트를 필터링할 수 있습니다.
  2. 텍스트 편집기에서 /var/lib/loginsight-agent/liagent.ini 파일을 엽니다.
  3. 다음 코드 조각과 같이 파일에서 Filelog 섹션을 정의하여 로그를 수집하고 구문을 분석합니다.
    [filelog|apache-access]
    directory = /var/log/httpd/
    include = access
    parser = apache-access
  4. 요구 사항에 따라 로그 이벤트를 필터링합니다.
    • HTTP 상태가 200인 로그를 수집하려면 다음 코드 조각과 같이 Filelog 섹션에서 whitelist를 정의할 수 있습니다.

      [filelog|apache-access]
      directory = /var/log/httpd/
      include = access
      parser = apache-access
      whitelist = status_code == 200

      whitelist 식은 샘플 로그의 첫 번째와 두 번째 로그 이벤트에 대해서만 true로 평가되고 수집기는 이러한 이벤트를 선택합니다.

      status_code 필드가 로그에 없거나 구문 분석되지 않았기 때문에 로그 이벤트에 존재하지 않는 경우, whitelist 식을 평가할 수 없습니다. 즉, false로 평가되며 수집기는 이벤트를 삭제합니다.

    • 관심 없는 로그 이벤트를 삭제하려면 blacklist 옵션을 사용할 수 있습니다. 예를 들어 로컬 트래픽에 관심이 없는 경우 다음 코드 조각과 같이 로컬 IP를 차단할 수 있습니다.

      [filelog|apache-access]
      directory = /var/log/httpd/
      include = access
      parser = apache-access
      blacklist = remote_host == "127.0.0.1"

      수집기는 샘플 로그에서 두 번째, 세 번째 및 네 번째 로그 이벤트를 선택합니다.

    • 둘 이상의 조건자를 기준으로 로그 이벤트를 필터링하려면 orand 연산자를 사용할 수 있습니다. 예를 들어, 다음 코드 조각과 같이 호스트에서 테스트 사용자가 생성한 이벤트 또는 로컬 IP에서 생성되었으나 필요하지 않은 이벤트를 삭제할 수 있습니다.

      [filelog|apache-access]
      directory = /var/log/httpd/
      include = access
      parser = apache-access
      blacklist = remote_host == "127.0.0.1" or remote_auth_user == "test"

      or 연산자를 사용하면 blacklist 식이 true로 평가되어 원치 않는 로그 이벤트가 무시됩니다. 이 식은 remote_host 필드 값이 "127.0.0.1"이거나 remote_auth_user 필드 값이 "test"인 경우 수집기에 이벤트를 삭제하도록 지시합니다.

      수집기는 샘플 로그에서 두 번째 및 세 번째 로그 이벤트를 선택합니다.

    • 테스트 사용자가 로컬 IP에서 생성한 로그 이벤트를 삭제하려면 다음 코드 조각과 같이 blacklist 식에서 and를 사용하면 됩니다.

      [filelog|apache-access]
      directory = /var/log/httpd/
      include = access
      parser = apache-access
      blacklist = remote_host == "127.0.0.1" and remote_auth_user == "test"

      수집기는 샘플 로그에서 다섯 번째 로그 이벤트를 삭제합니다.

    • whitelistblacklist 필터는 함께 사용할 수 있습니다. 예를 들어, 응답 크기가 1024바이트보다 큰 로그 이벤트가 필요하지만 로컬 호스트에서 생성된 이벤트가 필요하지 않은 경우 다음 코드 조각을 사용할 수 있습니다.

      [filelog|apache-access]
      directory = /var/log/httpd/
      include = access
      parser = apache-access
      whitelist = response_size > 1024
      blacklist = remote_host == "127.0.0.1" or remote_host == "localhost"

      수집기는 샘플 로그에서 두 번째 로그 이벤트를 선택합니다.