關注公衆號:AWS愛好者(iloveaws)
文 | 沉默惡魔(禁止轉載,轉載請先經過作者同意)
網站:www.iloveaws.cn
【 Domain 1的組織複雜性設計(Design for Organizational Complexity)】——-將LINUX系統日誌內容推送至CloudWatch(Pushing Linux system logs to CloudWatch)
Hello大家好,歡迎回來,我們今天的課程內容是CloudWatch日誌。在這節課我們進行實操演示,推送LINUX系統的系統日誌內容至CloudWatch的日誌組。
我們開始今天的課程內容。
在演示之前,先介紹下後面演示的架構。
我們已經在東京區域啓動了一臺EC2,我們後面要將這臺EC2的系統messages日誌內容,發送至位於中央區域的CloudWatch日誌組,這樣的話,研發人員或者需要訪問這個日誌的人員,只需要訪問CloudWatch日誌組,就可以查看/檢索EC2的messages日誌內容,當然,我們只是拿messages日誌舉例,您同樣可以配置將運行在EC2中的應用程序的日誌內容推送至CloudWatch日誌組。
爲了達到這個目的,我們需要完成以下配置:
- 首先,爲EC2分配IAM角色,作用是允許EC2創建日誌組且將日誌內容發送至日誌組等權限。
- 其次,在EC2上安裝和配置CloudWatch logs代理。
- 最後,啓動CloudWatch logs代理。
以上都完成後,EC2的messages日誌自動從實例流向您在安裝代理時創建的日誌流。代理會確認它已啓動,並保持運行狀態,直到您禁用它爲止,之後就可以在CloudWatch日誌組中查看到EC2的messages日誌的內容了。
那我們就開始配置吧,第一步,爲EC2分配IAM角色,以允許EC2創建日誌組且將日誌發送至日誌組等權限。
第一步:爲EC2分配IAM角色
首先讓我們先來到東京EC2的管理控制檯,可以看到目前我們將要用於測試的這臺EC2是沒有分配IAM角色的,所以現在我們要爲它分配IAM角色。
訪問IAM控制檯,角色-創建角色,然後附加策略,搜索CloudWatchAgentServerPolicy,然後附加到角色。然後爲角色起個名稱,我們就叫做CloudWatchAgentServerRole,然後完成創建角色,這樣的話IAM角色就創建完成了。
然後我們回到EC2管理控制檯,將創建的這個角色附加到EC2上。我們選擇EC2,然後實例設置,附加IAM角色,完成附加角色。
我們看下角色附加的這個策略的內容,CreatLogGroup,允許創建日誌組以及PutLogEvents允許將日誌內容從操作系統推送至創建的日誌組等等。
好的,我們現在就完成了第一步的配置,爲EC2分配IAM角色,以允許EC2創建日誌組且將日誌發送至日誌組等權限。
我們繼續第二步配置,,在EC2上安裝和配置CloudWatch logs代理。
在此之前,我們先訪問下cloudwatch控制檯,東京區域,可以看到目前是沒有日誌組的。
接下來切換到終端,開始第二步配置,在EC2上安裝和配置CloudWatch logs代理,代理的作用的推送EC2日誌內容至Cloudwatch。
第二步:在EC2上安裝和配置CloudWatch logs代理
切換到終端,登陸東京EC2,我使用的是amazon linux 2操作系統,所以可以使用yum安裝cloudwatch logs 代理。
如果您使用的是其他版本的linux,安裝 CloudWatch Logs 代理的過程取決於EC2 實例是運行 Amazon Linux、Ubuntu、CentOS 還是 Red Hat。請根據實例上的 Linux 版本採用適當的步驟,這些步驟可通過查閱AWS官方的文檔獲得。
我們繼續,通過yum方式安裝cloudwatch logs 代理,輸入命令yum install -y awslogs,awslogs是代理程序的軟件包名稱。現在awslogs這個代理已經安裝完成了。
下一步,我們就要對 CloudWatch Logs 代理進行配置,首先我們先來到awslogs配置文件的目錄 /etc/awslogs/ ,我們主要需要關注awscli.conf awslogs.conf這兩個配置文件,首先我們先來看一下awscli.conf 這個文件,這裏可以指定創建日誌組的aws區域,我們將其修改爲東京區域ap-northeast-1,然後保存退出。
我們在看一下另一個配置文件 awslogs.conf,vim awslogs.conf ,然後我們看下最後面的內容,默認有一個/var/log/messages配置,這個配置會建立一個日誌組,名稱爲/var/log/messages,這個日誌組對應的文件是系統的messages日誌,這是默認就存在的配置,當然您也可以在這裏添加更多的日誌,比如應用程序日誌,將其相應的信息填到此配置文件中,CloudWatch Logs 代理就會將其內容推送至cloudwatch控制檯。
我們這個演示不在添加日誌了,就使用默認配置,將EC2系統中的messages日誌內容推送至cloudwatch日誌組。
第三步:啓動CloudWatch logs代理
好,第二步完成了,我們進行最後一步,運行CloudWatch Logs 代理,systemctl start awslogsd,然後看下運行情況,現在代理已經是running的狀態了
CloudWatch Logs 代理程序啓動後生成的日誌文件在/var/log/awslogs.log,可以通過tail -f 來查看。
好的,現在已經完成了配置並啓動了CloudWatch Logs 代理程序,現在讓我們切換到cloudwatch控制檯,進入到日誌組。
查看CloudWatch 日誌組
目前我們可以看到一個名爲/var/log/messages的日誌組,EC2系統的messages日誌內容已經成功發送過來了。
這個日誌組就是之前我們在CloudWatch Logs 代理配置文件awslogs.conf中那個默認的日誌組,讓我們在切換到終端,看下CloudWatch Logs 代理的配置文件awslogs.conf,如果您還需要將應用程序日誌內容推送至cloudwatch,只需要在這裏新增配置內容,將應用程序日誌內容配置成推送至不同名稱的日誌組,比如applications日誌組。
這樣的話在cloudwatch控制檯(切換到cloudwatch控制檯),就會生成不同的日誌組,您就可以針對不同的日誌組分配權限,比如應用程序日誌組分配給對應研發權限,方便研發人員排查BUG;而系統messages日誌組,您可以將其查看權限分配給對應運維人員。通過將不同的日誌內容推送到不同的日誌組然後將查看不同的日誌組權限分配給不同的人員,這是一個很好的實踐。
好的,以上就是今天的內容,我們進行實操演示,推送LINUX系統的系統日誌內容至CloudWatch的日誌組,希望對您有所幫助。
希望此係列教程能爲您通過 AWS解決方案架構師認證 Professional 認證考試帶來幫助,如您有任何疑問
關注公衆號:AWS愛好者(iloveaws)
文 | 沉默惡魔(禁止轉載,轉載請先經過作者同意)
網站:www.iloveaws.cn