CloudWatch可能是AWS服務中最沒有充分利用的服務。以下來看看它如何能夠為企業的云計算基礎設施提供無與倫比的可見性。
Linkerd是用于云原生應用程序的開源服務網格。可以使用Linkerd和Kubernetes構建可伸縮的彈性應用程序的完整指南。
CloudWatch是AWS最為低估的服務。這就像一個無人的控制室。所有的數據都在那里,但沒有人在查看。
CloudWatch與IAM和VPC一起為現代基礎設施提供了依據。CloudWatch結合了廣泛的功能,也可以分為三個專用服務:度量標準,日志記錄和事件。以下解釋一下為什么人們應該更加認真對待CloudWatch,并充分利用這個控制室的原因。
度量
度量表示一個時間序列,如CPU利用率,網絡使用或AWS成本等,是一種度量值,可以存儲數字數據和時間戳。大多數AWS服務都會將數據報告給CloudWatch,并將其分時匯總持續存在。用戶可以按分鐘檢索數據,或者可以檢索統計信息,例如10分鐘總計,1天平均值,還可以檢索1小時的平均數。
CloudWatch管理控制臺提供了一種圖形化方式來表示圖表中的指標。下圖顯示了這樣的圖表。
除了向CloudWatch發送數據的許多AWS服務之外,用戶還可以發送以所謂的自定義指標存儲的數據。自定義指標與提供的AWS指標類似。唯一的區別是用戶發送的數據(例如使用SDK或CLI)。
在最初的15天中,CloudWatch保存數據的以分鐘來度量。接下來的48天,CloudWatch的度量值為5分鐘。在接下來的392天,CloudWatch的度量值保持為1小時。之后(總共455天),數據被刪除。
可用統計數據有:
·SampleCount:數據點數(實際值無關緊要)
·平均
·總和
·最小/最大
·百分位數(p0.0和p100之間的值)
p0.0應該是最小值
p50應該是中位數
p100應該是最大值
查看圖表可能會有所幫助,但用戶也可能希望自動執行此過程。
報警
CloudWatch警報會觀察到一個指標。一旦度量標準(或度量的統計量)越過閾值,報警觸發一個動作。一個流行的動作是向SNS主題發送消息。用戶可以通過電子郵件訂閱主題,以便在觸發警報時收到通知。用戶還可以觸發放大操作,以自動對容量短缺做出反應或在Lambda功能中執行更復雜的邏輯。
基本報警如下圖所示。
在定義警報時,用戶還可以設置比閾值更復雜的規則。例如,用戶可以指定必須連續多次達到閾值,以及如何解釋丟失的數據。假設一下發送自定義指標的機器,當機器中斷時,不再發布該指標,這應該是錯誤。另一方面,如果發生任何事情,用戶可能只會發布一個指標,其中沒有數據就意味著是零。
回到視覺效果,人類善于發現數據中的模式。讓我們探索更好的可視化度量方法。
儀表板
這么多指標存儲在CloudWatch中。但只有少數對用戶很重要。為什么不在一個地方保留最重要的指標?這個地方可以在用戶的團隊中分享,其團隊可以更好地了解運行中的基礎設施,這是真正的動機。CloudWatch儀表板是一個可以完全配置為顯示CloudWatch指標的24x24的電路板,可以顯示度量的最新值,一個或多個指標的簡單線形圖或多個指標的堆疊區域圖。所有指標都顯示相同的時間范圍。下圖顯示了一個儀表板。
用戶使用自定義指標和AWS提供的指標的組合。并與線圖和堆疊區域圖一起。
日志
CloudWatch Logs是一個存儲和索引所有日志的地方。用戶可以使用CloudWatchLogsAgent將EC2實例上的日志文件的內容直接傳輸到CloudWatch Logs中。日志被分組在所謂的組中,在一個組內,多個流捕獲實際的日志數據。用戶可以定義日志組的保留期限,以便在日志文件到期時刪除日志文件。
用戶可以使用全文搜索來搜索日志組,但如果知道日志的結構,還可以使用更多的結構化查詢。
如果用戶能自動觀察日志,那不是很好嗎?
度量過濾器
用戶可以使用應用于所有傳入日志數據的搜索查詢來定義度量標準過濾器。如果查詢與日志行匹配,則會為用戶自定義度量。看看循環如何關閉的?定義自定義指標的警報,如果日志行與搜索查詢匹配,用戶就可以收到警報。
訂閱過濾器
有時,度量標準過濾器的強度不夠強大。如果需要執行更復雜的邏輯,則可以訂閱日志組。查詢匹配的每個條目:
·調用Lambda函數
·存儲在Kinesis流中。用戶可以使用Kinesis客戶端庫或Spark等大數據工具分析流
·存放在Kinesis Firehose中。Firehose可以提供給S3或Elasti Search,用戶您可以在其中使用不同的工具來分析數據
事件
用戶的AWS基礎設施更改。一般總是資源被添加和刪除。CloudWatch事件提供了一種對這些更改做出反應的方法。它提供了用戶的AWS帳戶的事件流,其中許多AWS服務發布事件。例如,EC2在實例狀態發生變化(例如從運行到終止)時發布事件,管理控制臺發布登錄事件等等。
用戶可能會問這與CloudTrail有什么不同?CloudWatch事件要快得多。CloudTrail記錄用戶的AWS帳戶上的所有API活動,但只保證每15分鐘交付一次。
與自定義指標一樣,用戶也可以發布自定義事件。
規則
CloudWatch事件規則與報警類似。該規則定義了用戶感興趣的是什么類型的事件,以及如果某個事件到達匹配條件時觸發什么操作。用戶可以再次向SNS主題發送消息,但也會觸發Lambda函數來執行更嚴重的邏輯。
總線
CloudWatch事件總線是CloudWatch的最新的新功能。現在用戶可以從另一個AWS帳戶接收事件。發件人帳戶創建一個規則,將事件轉發到擁有總線的帳戶。總線在多帳戶設置中有意義。
概要
CloudWatch提供對運行基礎設施的洞察。
·指標由AWS服務或用戶的應用程序發布。它們可以包含附加到時間戳的各種數值。
·如果達到閾值,則警報將觀察指標并觸發操作。
·儀表板顯示一組指標。
·日志將日志文件存儲在一個中心位置。
·過濾器對日志執行連續查詢,如果發現匹配,則觸發操作。
·訂閱過濾器提供了一種將日志轉發到其他服務以進行分析的方法,例如Kinesis或Lambda。
·事件在用戶的AWS帳戶中提供近乎實時的更改流程
·如果事件與模式匹配,則規則觸發操作
·總線可以從其他AWS帳戶接收事件
·CloudWatch不處理通知和升級。用戶需要第三方解決方案
希望用戶現在坐在自己的AWS控制室內,查看它的價值。