2015-12-18 7 views
5

मैं कुछ युग timestamps पार्स करने के लिए कुछ और पठनीय होने के लिए कोशिश कर रहा हूँ कन्वर्ट करने के लिए।Logstash युग टाइमस्टैम्प

मैं कैसे एक सामान्य समय में उन्हें पार्स करने के लिए के लिए चारों ओर देखा, और से मैं सभी क्या समझ मैं क्या करना है चाहिए कुछ इस तरह है:

mutate 
{ 
    remove_field => [ "..."] 
} 

grok 
{ 
    match => { 'message' => '%{NUMBER:time}%{SPACE}%{NUMBER:time2}...' } 
} 

date 
{ 
    match => [ "time","UNIX" ] 
} 

संदेश का एक उदाहरण है: 1410811884.84 1406931111.00 .... पहले दो मान यूनिक्स समय मान होना चाहिए।

मेरा ग्रोक काम करता है, क्योंकि सभी फ़ील्ड अपेक्षित मूल्यों के साथ किबाना में दिखाए जाते हैं, और मेरे द्वारा हटाए गए सभी मूल्य फ़ील्ड वहां नहीं हैं इसलिए उत्परिवर्तन भी काम करता है। दिनांक खंड कुछ भी नहीं लगता है।

जो मैं समझता हूं उससे match => [ "time","UNIX" ] मुझे जो चाहिए वह करना चाहिए (उचित मूल्य प्रारूप होने के लिए समय का मूल्य बदलें, और इसे एक क्षेत्र के रूप में किबाना पर दिखाएं।)। तो जाहिर है मैं इसे समझ नहीं रहा हूँ।

उत्तर

7

दिनांक {} फ़िल्टर प्रदान किए गए डेटा के साथ @ टिमस्टैम्प के मान को प्रतिस्थापित करता है, इसलिए आपको [टाइम] फ़ील्ड के समान मूल्य के साथ @ टिमस्टैम्प देखना चाहिए। वहाँ प्रचार, प्रसंस्करण में कुछ देरी है, और लॉग के भंडारण, इसलिए का उपयोग कर घटना के अपने समय पसंद किया जाता है के बाद से यह आमतौर पर उपयोगी है।

के बाद से आप एक से अधिक दिनांक फ़ील्ड है, तो आप पार्स तारीख से गंतव्य, जैसे निर्दिष्ट करने के लिए तिथि फिल्टर की 'लक्ष्य' पैरामीटर का उपयोग करना चाहते हैं:

date { 
    match => [ "time","UNIX" ] 
    target => "myTime" 
} 

यह बदल जाएगा स्ट्रिंग फ़ील्ड [टाइम] नामक एक दिनांक क्षेत्र में [myTime] नाम दिया गया। किबाना जानता है कि तारीख फ़ील्ड कैसे प्रदर्शित करें, और आप किबाना सेटिंग्स में इसे कस्टमाइज़ कर सकते हैं।

जब से तुम शायद दोनों एक स्ट्रिंग एक ही डेटा के नवीनतम संस्करण की जरूरत नहीं है, आप रूपांतरण के भाग के रूप स्ट्रिंग संस्करण निकाल सकते हैं:

date { 
    match => [ "time","UNIX" ] 
    target => "myTime" 
    remove_field => [ "time" ] 
} 
+0

यह पूरी तरह से काम किया। धन्यवाद। –

2

भी मिलीसेकंड के लिए UNIX_MS साथ की कोशिश कर रहा पर विचार करें।

date { 
    timezone => "UTC" 
    match => ["timestamp", "UNIX_MS"] 
    target => "@timestamp" 
} 
संबंधित मुद्दे