2015-01-21 7 views
16

मैंने एडब्ल्यूएस क्लाउडवॉच लॉग एजेंट का उपयोग कर अपने एप्लिकेशन लॉग को एडब्ल्यूएस क्लाउडवॉच पर धक्का दिया है। लेकिन ColudWatch वेब कंसोल आपको एक बटन प्रदान करने के लिए प्रतीत नहीं होता है जिससे आप लॉग डेटा को डाउनलोड/निर्यात कर सकते हैं।एडब्ल्यूएस क्लाउडवॉच लॉग - क्या इससे मौजूदा लॉग डेटा निर्यात करना संभव है?

कोई विचार मैं इस लक्ष्य को कैसे प्राप्त कर सकता हूं?

उत्तर

12

नवीनतम एडब्ल्यूएस CLI एक CloudWatch लॉग्स CLI, कि तुम JSON, पाठ फ़ाइल या किसी अन्य उत्पादन एडब्ल्यूएस CLI द्वारा समर्थित के रूप में लॉग डाउनलोड करने के लिए अनुमति देता है।

उदाहरण किसी पाठ फ़ाइल में समूह A में धारा a से पहले 10,000 लॉग प्रविष्टियों पाने के लिए के लिए, चलाएँ:

aws logs get-log-events --log-group-name A --log-stream-name a \ 
    --output text > a.log 

आदेश वर्तमान में अनुरोध के अनुसार 10,000 रिकॉर्ड की एक अधिकतम करने के लिए सीमित है, और अगर --next-token पैरामीटर का उपयोग करके आपको अपने स्वयं के पेज स्टेपिंग तंत्र को लागू करने की आवश्यकता है। मैं उम्मीद करता हूं कि भविष्य में सीएलआई एक ही कमांड में पूर्ण डंप की अनुमति भी देगा।

2

स्पष्ट रूप से एडब्ल्यूएस कंसोल से बाहर का एक बॉक्स तरीका नहीं है जहां आप क्लाउडवॉचलॉग डाउनलोड कर सकते हैं। शायद आप क्लाउडवॉचलोग्स को एसडीके/एपीआई का उपयोग करके लाने के लिए एक स्क्रिप्ट लिख सकते हैं।

क्लाउडवॉचलॉग्स के बारे में अच्छी बात यह है कि आप अनंत समय के लिए लॉग बनाए रख सकते हैं (कभी नहीं); क्लाउडवॉच के विपरीत जो सिर्फ 14 दिनों के लिए लॉग रखता है। जिसका अर्थ है कि आप ऑन-डिमांड की बजाय मासिक/त्रैमासिक आवृत्ति में स्क्रिप्ट चला सकते हैं।

CloudWatchLogs API के बारे में अधिक जानकारी, http://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/Welcome.html http://awsdocs.s3.amazonaws.com/cloudwatchlogs/latest/cwl-api.pdf

12

वहाँ भी, एक अजगर परियोजना awslogs कहा जाता है लॉग प्राप्त करने की अनुमति:

सूची लॉग समूहों: https://github.com/jorgebastida/awslogs

वहाँ तरह बातें कर रहे हैं

$ awslogs groups 

सूची दी लॉग समूह के लिए धाराओं :

$ awslogs streams /var/log/syslog 

लो सभी धाराओं से छ रिकॉर्ड:

$ awslogs get /var/log/syslog 

विशिष्ट धारा से लॉग रिकॉर्ड मिलता है:

$ awslogs get /var/log/syslog stream_A 

और भी बहुत कुछ (समय अवधि के लिए छानने, लॉग धाराओं देख ...

मुझे लगता है, यह टूल आपको जो भी चाहिए वो करने में मदद कर सकता है।

0

ऐसा लगता है कि एडब्ल्यूएस ने पूरे लॉग समूह को एस 3 में निर्यात करने की क्षमता को जोड़ा है।

Export to S3 menu

Export to S3 Form

आप cloudwatch अपने बाल्टी नीति के लिए निम्न जोड़कर बाल्टी में लिखने के लिए अनुमति देने के लिए S3 बाल्टी पर सेटअप अनुमतियों की आवश्यकता होगी आपके क्षेत्र और साथ क्षेत्र की जगह अपने बाल्टी नाम के साथ बाल्टी नाम।

{ 
     "Effect": "Allow", 
     "Principal": { 
      "Service": "logs.us-east-1.amazonaws.com" 
     }, 
     "Action": "s3:GetBucketAcl", 
     "Resource": "arn:aws:s3:::tsf-log-data" 
    }, 
    { 
     "Effect": "Allow", 
     "Principal": { 
      "Service": "logs.us-east-1.amazonaws.com" 
     }, 
     "Action": "s3:PutObject", 
     "Resource": "arn:aws:s3:::tsf-log-data/*", 
     "Condition": { 
      "StringEquals": { 
       "s3:x-amz-acl": "bucket-owner-full-control" 
      } 
     } 
    } 

विवरण Step 2 of this AWS doc

में पाया जा सकता
संबंधित मुद्दे