[英]AWS CloudWatch | Export logs to EC2 server
我有“ cloudwatch”服務來監視EC2運行實例的日志。 但是ColudWatch Web控制台似乎沒有按鈕可讓您從中下載/導出日志數據。
有什么想法可以通過CLI或GUI實現此目標嗎?
使用boto3(Python)以編程方式,
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的UI非常直觀,即使您不學習其查詢語言也可以得到結果。
您可以使用控制台或AWS CLI將CloudWatch日志下載到Amazon S3。 您確實需要知道日志組的名稱,從&到日志中的時間戳,目標存儲區和前綴。 Amazon建議您為日志使用一個單獨的S3存儲桶。 一旦有了存儲桶,就可以創建導出任務,在(控制台中)導航-日志-選擇日志組-操作-將數據導出到S3-填寫導出詳細信息-選擇導出數據。 亞馬遜的文檔對此進行了很好的解釋: http : //docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3Export.html 。 如果您想使用它,還可以使用CLI指示。 我想通過CLI也可以編寫導出腳本,但是您必須以某種方式定義變量,以免覆蓋現有的導出。
如果這是您整個AWS災難恢復計划的一部分,則您可能需要查看一些技巧和最佳實踐,例如Amazon的AWS災難恢復白皮書以及NetApp關於使用雲進行災難恢復的討論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.