5

मेरे पास बहु-पंक्ति लॉग विवरण वाले दो लॉग फ़ाइलें हैं। उनमें से प्रत्येक के पास प्रत्येक लॉग स्टेटमेंट की शुरुआत में समान डेटाटाइम प्रारूप होता है। विन्यास इस तरह दिखता है:क्लाउडवॉच लॉग अजीब अभिनय

state_file = /var/lib/awslogs/agent-state 

[/opt/logdir/log1.0] 
datetime_format = %Y-%m-%d %H:%M:%S 
file = /opt/logdir/log1.0 
log_stream_name = /opt/logdir/logs/log1.0 
initial_position = start_of_file 
multi_line_start_pattern = {datetime_format} 
log_group_name = my.log.group 


[/opt/logdir/log2-console.log] 
datetime_format = %Y-%m-%d %H:%M:%S 
file = /opt/logdir/log2-console.log 
log_stream_name = /opt/logdir/log2-console.log 
initial_position = start_of_file 
multi_line_start_pattern = {datetime_format} 
log_group_name = my.log.group 

cloudwatch लॉग एजेंट cloudwatch पर मेरी लॉग समूह के लिए log1.0 लॉग भेज रहा है सही ढंग से, हालांकि, इसके log2-console.log के लिए लॉग फाइल नहीं भेज रहा।

awslogs.log का कहना है:

2016-11-15 08:11:41,308 - cwlogs.push.batch - WARNING - 3593 - Thread-4 - Skip event: {'timestamp': 1479196444000, 'start_position': 42330916L, 'end_position': 42331504L}, reason: timestamp is more than 2 hours in future. 
2016-11-15 08:11:41,308 - cwlogs.push.batch - WARNING - 3593 - Thread-4 - Skip event: {'timestamp': 1479196451000, 'start_position': 42331504L, 'end_position': 42332092L}, reason: timestamp is more than 2 hours in future. 

हालांकि सर्वर समय सही है। इसके अलावा अजीब बात यह है कि start_position में उल्लिखित रेखा संख्याएं और end_position वास्तविक लॉग फ़ाइल में धक्का दिया जा रहा है।

कोई और इस समस्या का सामना कर रहा है?

+0

मेरे पास एक ही प्रभाव है और अभी भी एक समाधान की तलाश है। सेवा को पुनरारंभ करने में मदद नहीं मिली। बीटीडब्ल्यू: start_position और end_position लाइन संख्याएं नहीं हैं लेकिन बाइट स्थितियां हैं। –

उत्तर

8

मैं इसे ठीक करने में सक्षम था।

awslogs की स्थिति टूट गई थी। राज्य को एक varlite डेटाबेस में/var/awslogs/राज्य/एजेंट-स्थिति में संग्रहीत किया जाता है। आप

sudo sqlite3 /var/awslogs/state/agent-state 

सूडो को लेखन पहुंच के लिए आवश्यक है।

सूची

select * from stream_state; 

के साथ सभी धाराओं अपनी लॉग धारा को फिर से देखें और ध्यान दें SOURCE_ID जो वी स्तंभ में json डेटा संरचना का हिस्सा है।

फिर, push_state तालिका

select * from push_state where k="7675f84405fcb8fe5b6bb14eaa0c4bfd"; 

जिसके परिणामस्वरूप रिकॉर्ड v स्तंभ है जो एक batch_timestamp शामिल में एक json डेटा संरचना है में इस SOURCE_ID साथ सभी रिकॉर्ड की सूची (मेरे मामले में यह 7675f84405fcb8fe5b6bb14eaa0c4bfd था)। और यह batch_timestamp seams गलत होने के लिए। यह अतीत में था और किसी भी नए (2 घंटे से अधिक) लॉग प्रविष्टियों को अब संसाधित नहीं किया गया था।

समाधान इस रिकॉर्ड को अद्यतन करने के लिए है। v स्तंभ की प्रतिलिपि बनाएँ,

sudo /etc/init.d/awslogs restart 

मुझे आशा है कि यह आप के लिए काम करता है के साथ

update push_state set v='... insert new value here ...' where k='7675f84405fcb8fe5b6bb14eaa0c4bfd'; 

पुनः प्रारंभ सेवा वर्तमान टाइमस्टैम्प और कुछ के साथ अद्यतन के साथ batch_timestamp की जगह!

+0

मेरे मामले में push_state तालिका खाली है - मैं क्या करूँ? – Andrey

+0

लेकिन आपको चेतावनी मिलती है "... कारण: टाइमस्टैम्प भविष्य में 2 घंटे से अधिक है।" "Sudo /etc/init.d/awslogs पुनरारंभ" सहायता के साथ सेवा को पुनरारंभ करना है? –

+0

अरे क्या आपके पास रीसेट क्लाउडवॉच लॉग को मजबूर करने का कोई तरीका है? ऐसा लगता है कि मुझे कई मशीनों पर यह समस्या है और मैं वास्तव में हर मशीन में लॉग इन नहीं कर सकता और प्रति-उदाहरण करता हूं। मैं पहले गैर सिंक्रनाइज़ लॉग खोने के साथ ठीक हूँ। जब ऐसी समस्याएं होती हैं तो मेरी डिस्क स्पेस हर घंटे 1 जीबी तक भरती प्रतीत होती है, इसलिए मेरी वेब सेवा सिर्फ रात भर मर जाती है ... –

0

हमारे पास एक ही समस्या थी और निम्नलिखित चरणों ने इस मुद्दे को ठीक किया। भागो ये कदम:

लॉग समूहों नवीनतम घटनाओं के साथ अद्यतन करने नहीं कर रहे हैं

  1. awslogs सेवा रोक दी गई
  2. हटाए गए फ़ाइल /var/awslogs/राज्य/एजेंट राज्य
  3. /var/awslogs/etc/awslogs अपडेट किया गया। उदाहरण आईडी पूर्व करने के लिए hostaname से विन्यास conf:

    log_stream_name = {hostname} to log_stream_name = {instance_id} 
    
  4. awslogs सेवा शुरू कर दिया।

    1. sudo यम awslogs
    2. sudo सेवा awslogs पुनः आरंभ

    इस विधि/var में मेरे config फाइल को बरकरार रखा पुनः स्थापित:

0

मैं द्वारा अमेज़न लिनक्स पर इस समस्या को हल करने में सक्षम था/awslogs /, हालांकि आप पुनर्स्थापित करने से पहले उन्हें वापस लेना चाहते हैं।

नोट: मेरी समस्या निवारण में, मैंने एडब्ल्यूएस कंसोल के माध्यम से अपना Log Group भी हटा दिया था। सभी ऐतिहासिक लॉगों को पूरी तरह से पुनः लोड करें, लेकिन वर्तमान टाइमस्टैम्प पर, जो कम मूल्य का है। लॉग इन समूह को हटाने पर मुझे यकीन नहीं है कि इस विधि के लिए काम करना आवश्यक था। आप पुनरारंभ करने से पहले initial_position कॉन्फ़िगरेशन को end_of_file पर सेट करना चाहते हैं।

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