好的手冊在當警報觸發時,便於快速定位問題。在更復雜的環境中,團隊中的每一個人都不會對每一個系統都有所瞭解,並且Runbook是傳播這些知識的一個載體,更是好方法。web
手冊 == RunBook, 請了解。數據庫
爲特定服務編寫了一個好的Runbook,大體須要一下幾點:flask
對於每一個警報,咱們能夠包含指向該服務的Runbook的連接。當有人響應警報時,他們將打開Runbook並瞭解正在發生的事情,警報的含義以及潛在的補救步驟。緩存
與許多好東西同樣,Runbook很容易被濫用。若是警報的補救步驟與複製粘貼命令同樣簡單,那麼說明已經開始濫用Runbook。對於上面說的狀況應該自動執行該修復或解決基礎問題,而後徹底刪除警報。服務器
Runbook用於解決某些問題時須要人工判斷和診斷的時間。架構
固然,這是一個示例,你徹底能夠根據你的狀況進行完善與調整。下面咱們來看下Demo。app
服務名:Demo App框架
Demo App 是經過Python框架Flask進行開發,主要做用是Blog信息展現;服務主要依賴組件有Redis(緩存),MySQL(數據存儲);服務採用Uwsgi+Nginx形式做爲部署架構。性能
Metadata日誌
代碼庫位於http://10.0.0.1/app/blog
。
服務責任人:Evan
。
問題升級
若是須要協助來解決此服務的問題,則服務全部者沒法協助,問題升級聯繫備用人員XX。有關聯繫說明,請參閱公司聯繫表。
外部依賴
依賴公共Js庫mount.js來實現國際化時間;
依賴外部CDN進行加速,CDH域名:XXXX,CDH服務商:XXX。
內部依賴性
Nginx服務,運行在10.0.0.7的服務器上;
Redis服務,運行在10.0.0.7的服務器上,DB庫是:3
;
MySQL服務,運行在10.0.0.8(Master),10.0.0.9(Slave);數據庫名稱:flask_blog
;
技術棧
監控指標與日誌
指標以下:
應用日誌內容:
警報
問題:用戶登陸失敗率
緣由:當用戶登陸失敗率在5m時間內超過5%時,此警報將觸發。可能的緣由是部署不當(檢查最近的部署)或暴力攻擊(檢查用戶登陸日誌是否有攻擊跡象)。
問題:用戶登陸時間過長
緣由:當用戶登陸所需的時間超過一秒時,將觸發此警報。檢查最近的錯誤部署或MySQL性能問題。
問題:發佈時間太長
緣由:當用戶建立帖子所需的時間超過一秒時,將觸發此警報。檢查最近的錯誤部署或MySQL性能問題。
問題:評論創造時間太長
緣由:當用戶建立評論所需的時間超過一秒時,將觸發此警報。校驗對於最近的錯誤部署或MySQL性能問題。
上面就是Demo了,能夠根據你們的需求進行調整。