我有「cloudwatch」服務來監視我的EC2運行實例的日誌。但ColudWatch Web控制檯似乎沒有按鈕可讓您從中下載/導出日誌數據。AWS CloudWatch |將日誌導出到EC2服務器
任何想法如何通過CLI或GUI實現此目標?
我有「cloudwatch」服務來監視我的EC2運行實例的日誌。但ColudWatch Web控制檯似乎沒有按鈕可讓您從中下載/導出日誌數據。AWS CloudWatch |將日誌導出到EC2服務器
任何想法如何通過CLI或GUI實現此目標?
編程,使用boto3(蟒蛇),
log_client=boto3.client('logs')
result_1=log_client.describe_log_streams(logGroupName='<NAME>')
(我不知道是什麼日誌組名字EC2實例樣子;對於LAMBDA他們是形式'/aws/lambda/FuncName'
的嘗試抓住你看到的名稱在控制檯中)。
result_1
包含兩個有用的鍵:logStreams
(你想要的結果)和nextToken
(對於分頁,我會讓你查看使用情況)。
現在result_1['logStreams']
是包含logStreamName
的對象列表。 firstEventTimestamp
和lastEventTimestamp
也是有用的。
現在,你有日誌流的名稱,你可以使用
log_client.get_log_events(logGroupName='<name>',logStreamName='<name>'
的響應包含要在日誌事件分頁nextForwardToken
和nextBackwardToken
和events
。每個事件包含一個timestamp
和一個message
。
我會留給你看看API來看看其他參數對你有用。順便說一下,控制檯可讓您將日誌流式傳輸到S3存儲桶或AWS的ElasticSearch服務。 ElasticSearch使用起來很愉快,Kibana的用戶界面非常直觀,即使不學習查詢語言,也可以得到結果。
您可以使用控制檯或AWS CLI將CloudWatch日誌下載到Amazon S3。您需要知道日誌組名稱,從&到日誌中的時間戳,目標存儲桶和前綴。亞馬遜爲您的日誌建議一個單獨的S3存儲桶。一旦你有一個桶,你創建一個導出任務,在(在控制檯中)導航 - 日誌 - 選擇你的日誌組 - 操作 - 導出數據到S3 - 填寫你的導出細節 - 選擇導出數據。亞馬遜的文檔解釋得非常好:http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3Export.html。如果你想使用它,CLI命令也在那裏。我想象用CLI你也可以編寫你的導出腳本,但是你必須以某種方式定義變量,所以你不要覆蓋現有的導出。
如果這是您的整體AWS災難恢復計劃的一部分,您可能需要查看一些技巧&最佳實踐,例如Amazon關於AWS災難恢復的白皮書以及NetApp關於使用cloud for disaster recovery的討論。