2014-06-13 3 views
5

로그를 분석하려면 logstash, elasticsearchkibana을 사용하고 있습니다. 특정 문자열이 올 때 나는 logstash에 email 출력을 통해 로그에 이메일을 통해 경고하고있다 :임계 값을 초과하면 이메일 경고가 표시됩니다.

email { 
     match => [ "Session Detected", "logline,*Session closed*" ] 
........................... 
} 

이 잘 작동합니다. user 필드 인 경우

예, 나는 고유의 사용자 수보다 더 갈 때 경고 할 :

지금, 나는 (임계 값을 교차 ) 필드의 수에 경고 할 5.

email 로그 아웃으로 출력 할 수 있습니까 ??
도와주세요.

편집 : 는 @Alcanzar 내가 이런 짓을 이렇게 말했다 :

설정 파일 :

if [server] == "Server2" and [logtype] == "ABClog" { 

     grok{ 
     match => ["message", "%{TIMESTAMP_ISO8601:timestamp} %{HOSTNAME:server-name} abc\[%{INT:id}\]: 
\(%{USERNAME:user}\) CMD \(%{GREEDYDATA:command}\)"]  
     } 

     metrics { 
       meter => ["%{user}"] 
       add_tag => "metric" 
      } 

     } 

그래서 위의에 따라, server2abclog을 위해 내가 구문 분석에 대한 grok 수 패턴이 내 파일 및 user 필드에 grok에 의해 구문 분석 된 메트릭 적용됩니다.

나는 위와 같이 설정 파일에서 그랬지만 logstash console을 -vv으로 확인할 때 이상한 동작을 보입니다. 파일의 9 개 로그 라인이있는 경우는 통계 부분을 시작하지만 message 필드는 로그 파일에 logline이 아니라 내 PC의 사용자 이름의 그 후

은 그래서 먼저 9 구문 분석 따라서 _grokparsefailure이됩니다. 다음과 같이 입력하십시오 :

output received { 
    :event=>{"@version"=>"1", "@timestamp"=>"2014-06-17T10:21:06.980Z", "message"=>"my-pc-name", 
    "root.count"=>2, "root.rate_1m"=>0.0, "root.rate_5m"=>0.0, "root.rate_15m"=>0.0, 
    "abc.count"=>2, "abc.rate_1m"=>0.0, "abc.rate_5m"=>0.0, "abc.rate_15m"=>0.0, "tags"=>["metric", 
    "_grokparsefailure"]}, :level=>:debug, :file=>"(eval)", :line=>"137" 
    } 

도움이 되었습니까?

+0

당신이 적절한 해결책을 발견하는 경우, 당신은 otheres와 –

+0

@TzookBarNoy를 공유하시기 바랍니다 수 있습니다 : 나는 측정을 통해 적절한 솔루션을 가져올 수 없습니다 이엘 케이의 상단에

Logz.io 경고는 아래 블로그에서 제공됩니다 그래서 riemann 경고 도구 (http://riemann.io/) 시도하고 그것을 사용했다. –

답변

7

내가 필요한 것은 http://logstash.net/docs/1.4.1/filters/metrics입니다.

당신은 이벤트의 속도를 계산하는 metrics 태그를 사용하고 이메일 출력 주위 if 문에서 thing.rate_1m 또는 thing.rate_5m을 사용할 것

. 예를 들어

:

filter { 
    if [message] =~ /whatever_message_you_want/ { 
    metrics { 
     meter => "user" 
     add_tag => "metric" 
    } 
    } 
} 

output { 
    if "metric" in [tags] and [user.rate_1m] > 1 { 
    email { ... } 
    } 
} 
+0

위의 대답은 사용자 수를 계산하지만, (질문과 같이) UNIQUE 사용자 수를 초과하면 경고하고 싶습니다. 그 일을 할 수 있습니까 ?? –

+0

또한 질문 편집으로 확인하십시오. –

+0

고유 사용자의 비율을 측정하려면 사전 exsting 필터 중 어느 것도 사용자가 원하는대로 정확하게 수행 할 수 없기 때문에 상황에 맞는 사용자 정의 필터를 만들어야합니다. 필요. 도움이 될 수있는 스로틀 필터가 있지만 logstash가 할 수있는 것에 적합하지 않은 것으로 보입니다. – Alcanzar

0

logstash 측 집계는 상당히 제한된다. 또한 상태 크기가 증가하므로 메모리 소비가 증가 할 수 있습니다. Elasticsearch 레이어에서 실행되는 경고는 더 많은 자유와 가능성을 제공합니다. http://logz.io/blog/introducing-alerts-for-elk/

관련 문제