簡體   English   中英

AWS CloudWatch | 將日志導出到EC2服務器

[英]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的對象列表。 firstEventTimestamplastEventTimestamp也很有用。

現在您有了日志流名稱,您可以使用

log_client.get_log_events(logGroupName='<name>',logStreamName='<name>'

響應包含nextForwardTokennextBackwardToken為分頁和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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM