星期三, 8月 05, 2020

使用 GCP Logs Viewer 與 gcloud logging read 查詢特定事件小記

使用 GCP Logs Viewer 與 gcloud logging read 查詢特定事件小記


之前有設定當 GCP IAM 內容有改變的時候, 使用 stackdriver 快訊通知


然後會到專案的首頁的活動進行查詢



但是如果專案的活動比較頻繁的時候, 就會發現比較不好過濾出相關事件


那要如何快速找出對應的活動呢?


可以利用以下 2 種方式達成


==== Logs Viewer ====


登入 GCP console


點選 紀錄 -- > 點選 紀錄檢視器



我是使用紀錄顯示器的預覽版

可點點選上方的下拉式選單 -- > 點選 預覽新版紀錄檢視器



那要如何知道如何對特定行爲下查詢呢?


最簡單的方式就是去觀察出現的 log, 他上面會標示一些行為

以設定 IAM 來說, 該 log 就會有 SetIamPolicy  標示出來



嘗試點選 SetIamPolicy

點選 顯示相符的項目



這個時候就可以觀察到相關查詢就會被加入到查詢產生器內

例如 protoPayload.serviceName=cloudresourcemanager.googleapis.com AND protoPayload.methodName=SetIamPolicy



就算查詢語法不熟也沒有關係, 可以多利用按鈕來達成 :)



這樣就可以快速查詢想要找的行為





==== gcloud 指令 ====


另外一種方式是透過 gcloud 指令來達成


# gcloud  logging  read  'protoPayload.serviceName=cloudresourcemanager.googleapis.com AND protoPayload.methodName=SetIamPolicy timestamp>="2020-07-15T23:59:59Z"'  --project  YOUR_PROJECT 


  • 這邊要注意的是, 不知道預設的搜尋時間區間是多長, 我猜應該是 1 小時, 所以如果要搜尋的話, 最好加上 timestamp



# gcloud  logging  read  'protoPayload.serviceName=cloudresourcemanager.googleapis.com AND protoPayload.methodName=SetIamPolicy timestamp>="2020-07-15T23:59:59Z"'  --project  YOUR_PROJECT  |  egrep  'methodName|principalEmail|bindingDeltas|action|member:|timestamp:'


  • 可以按照自己的需求 grep 要的資訊


輸出的結果參考



  • 時間的部分, 都是 UTC Time (時間結尾有 Z ), 所以要看當地時間進行調整, 台灣就是加上 8 小時


趁沒有忘記的時候趕快記下來

~ enjoy it



Reference

沒有留言: