AWS CodeDeploy Log 的探討與呈現

2017-07-14 AWS

昨天有同事問到 CodeDeploy 的 Log 怎麼看,CodeDeploy 在 Manager console 只能看到 return,如果想要知道執行的過程的話,只能跑到 Instance 裡面去看 Log,遇到在 debug CodeDeploy 的話是有點棘手 … 但可以透過 CloudWatch 把 Log 丟出去 (口袋夠深的話)

 

CodeDeploy Log in Instance 分為以下幾種:

 

CodeDeploy Agent 本身的 run Log

/var/log/aws/codedeploy-agent/codedeploy-agent.log

 

CodeDeploy Agent 升級或安裝 Log (應該不需要被記錄)

/tmp/codedeploy-agent.update.log

 

比較詳細的 deployments Log

/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log

 

Appspec 執行 script 的 stdout, stderr Log

/opt/codedeploy-agent/deployment-root/deployment-group-ID/deployment-ID/logs/scripts.log

 

AWS DevOps Blog 有提到關於 CodeDeploy Log 怎麼拋出來「View AWS CodeDeploy logs in Amazon CloudWatch console」,很直覺是用 CloudWatch agent 去做,但是這僅只適用於 “前三項” 如果你想要看到的是 scripts 執行的 stdout, stderr 的話就無法了,因為 CloudWatch agent 並沒有辦法針對 deployment-group-ID 和 deployment-ID 去動態處理

 

 

針對前三項的 Log 你可以在 CloudWatch agent 的 awslogs.conf 這樣寫:

[codedeploy-agent-logs]
datetime_format = %Y-%m-%d %H:%M:%S
file = /var/log/aws/codedeploy-agent/codedeploy-agent.log
log_stream_name = {instance_id}-codedeploy-agent-log
log_group_name = codedeploy-agent-log

[codedeploy-updater-logs]
file = /tmp/codedeploy-agent.update.log
log_stream_name = {instance_id}-codedeploy-updater-log
log_group_name = codedeploy-updater-log

[codedeploy-deployment-logs]
file = /opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log
log_stream_name = {instance_id}-codedeploy-deployments-log
log_group_name = codedeploy-deployments-log

 

如果要 script run log 目前暫時沒有,你只能 Login 到 Instance 去查看 (AWS 不是推行 Prod 無 key 登入嗎 … orz)。

 

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱