2

我正試圖找到集中的解決方案來移動我的應用程序從數據庫(RDS)中記錄日誌。AWS CloudWatchLog限制

我想用CloudWatchLog但注意到,有對PutLogEvents請求限制:

一個PutLogEvents請求的最大速率是每秒 5只要求每個日誌流。

即使我將我的日誌分成許多流(基於EC2,日誌類型 - 錯誤,信息,警告,調試)5個請求的限制。每秒對活動應用程序仍然是非常嚴格的限制條件。

另一種解決方案是以某種方式累積日誌併發送帶日誌記錄批處理的PutLogEvents,但它意味着然後我被迫使用數據庫來累積該記錄。

所以問題是:

  1. 可能是我錯了,5個REQ的限制。每秒不是那麼嚴格?
  2. 是否有其他解決方案,我應該考慮,例如DynamoDB?

回答

0

我的建議是在AWS實例上使用Logstash解決方案。

或者,您可以在另一個現有實例或容器上運行logstash。

https://www.elastic.co/products/logstash

它是專爲這個範圍,它奇妙地。

Cloudwatch,並非主要爲您的需要而設計。

我希望這有助於某種方式。

+0

非常感謝Maurizio,它確實有幫助,但我更喜歡不需要管理的解決方案。再次感謝 – Observer

+0

我明白你的意思。 你有沒有試圖看看這個官方亞馬遜博客條目? https://aws.amazon.com/blogs/aws/cloudwatch-log-service/ –

1

PutLogEvents旨在根據定義放置幾個事件(按照名稱:PutLogEvent「S」):) Cloudwatch日誌代理正在完成此操作,您不必擔心這一點。

但是請注意:我不建議您生成多個日誌(例如,不要在生產中運行調試模式),因爲隨着日誌量不斷增加,cloudwatch日誌可能會變得非常昂貴。

+0

感謝您的回答Tom,請您澄清一下: 「Cloudwatch日誌代理正在自行完成,您不必擔心這一點。「 我從我的應用程序中直接調用PutLogEvents,是否有任何其他方式將我的應用程序日誌發送到CloudWatchLog? – Observer

+0

是的,您可以安裝cloudwatch日誌代理並指定要推送到AWS的文件。在這裏看到文檔http://docs.aws.amazon.com/fr_fr/AmazonCloudWatch/latest/DeveloperGuide/QuickStartEC2Instance.html – Tom

+0

我明白了,這意味着我應該登錄到一個文件(文件系統)。目前我正在尋找基於API調用(服務)解決方案。感謝您的輸入。 – Observer

0

如果您直接從您的應用程序調用此API:簡短的答案是,您需要批量記錄事件(PutLogEvent爲s)。

如果你正在寫的日誌磁盤之後,你正在推動他們已經有一個知道如何把日誌(http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/QuickStartEC2Instance.html

代理

元:我建議你原型這一點,並確保它適用於您擁有的日誌卷。另外,請記住,由於cloudwatch api的工作方式,每次只有一個應用程序/用戶可以推送到日誌流(請參閱您必須傳入的令牌),以便您可能需要使用多個流,每個用戶一個/可能每個日誌類型以確保您的應用程序不會競爭日誌。

Meta Meta:思考如果日誌子系統發生故障,並且您可以忍受丟失日誌的可能性,那麼您的應用程序的行爲如何(例如,對於您總是/始終保證您將獲得日誌?)。這可能會推動你做什麼/你最終選擇什麼解決方案。