2014-06-13 113 views
5

मैं logstash, elasticsearch और kibana उपयोग कर रहा हूँ मेरी लॉग का विश्लेषण करने के लिए। मैं logstash में email उत्पादन के माध्यम से लॉग में ईमेल के माध्यम से चेतावनी हूँ जब किसी विशेष स्ट्रिंग आता है:थ्रेसहोल्ड पार करने के बाद ईमेल अलर्ट, लॉगस्टैश?

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

यह ठीक काम करता है।

उदाहरण हैं user क्षेत्र है, मैं सचेत करने के लिए जब अद्वितीय उपयोगकर्ताओं की संख्या की तुलना में अधिक जाना चाहते हैं:

अब, मैं एक क्षेत्र की गिनती (जब एक सीमा पार कर जाता है) पर सचेत करना चाहते हैं 5.

इस logstash में 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" 
      } 

     } 

तो ऊपर के अनुसार, server2 और abclog के लिए मैं पार्स करने के लिए एक grok पैटर्न मेरी फ़ाइल और user फ़ील्ड पर grok द्वारा पार्स किया गया मैं चाहता हूं कि मीट्रिक लागू हो।

मुझे लगता है कि इसके बाद के संस्करण कॉन्फ़िग फ़ाइल में है, लेकिन मैं अजीब व्यवहार जब मैं -vv साथ logstash सांत्वना जाँच प्राप्त किया था।

तो अगर वहाँ फ़ाइल में 9 लॉग लाइनें हैं यह 9 पार्स पहले, उसके बाद यह मीट्रिक भाग शुरू होता है लेकिन वहाँ message क्षेत्र लॉग फ़ाइल में logline नहीं है बल्कि यह मेरे पीसी के उपयोगकर्ता नाम है , इस प्रकार यह _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:: मैं मैट्रिक्स के माध्यम से एक उचित समाधान नहीं मिल सका

ELK के शीर्ष पर

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

उपर्युक्त उत्तर उपयोगकर्ताओं की संख्या की गणना करेगा, लेकिन जब मैं अद्वितीय उपयोगकर्ताओं की संख्या (प्रश्न में) सीमा पार हो जाती है तो मैं सतर्क रहना चाहता हूं। क्या यह किया जा सकता है ?? –

+0

कृपया –

+0

पर दिए गए प्रश्नों को संपादित करें यदि आप अद्वितीय उपयोगकर्ताओं की दर को मापने के लिए हैं, तो आपको इसके लिए एक कस्टम फ़िल्टर बनाने की आवश्यकता होगी जो आपकी स्थिति के अनुरूप है क्योंकि प्री-एक्सस्टिंग फ़िल्टर में से कोई भी ठीक वही नहीं करेगा चाहते हैं। एक थ्रॉटल फ़िल्टर है जो आपकी मदद कर सकता है, लेकिन ऐसा लगता है कि आपकी आवश्यकताएं फिट नहीं होतीं कि लॉगस्टैश बॉक्स से क्या कर सकता है। – Alcanzar

0

logstash तरफ को समेकित करना काफी सीमित है। यह राज्य के आकार को भी बढ़ाता है इस प्रकार स्मृति खपत बढ़ सकती है। Elasticsearch परत पर चलने वाले अलर्ट अधिक स्वतंत्रता और संभावनाएं प्रदान करते हैं। http://logz.io/blog/introducing-alerts-for-elk/

संबंधित मुद्दे