場景:
- 背景一
- 在一個歡快假期中的夜深人靜的享受着各自屬於自己夜生活的時候。突然,電話響了!公司的領導讓你馬上處理線上系統問題。
- 此時此刻,你的臉可能是這樣的。 (ΩДΩ) o((⊙﹏⊙))o
- 靈魂三問在你的腦海裏迴響着。
- 我是誰?
- 哪個系統出問題了?
- 我該怎麼辦?
- 背景二
- 在一個歡快假期中的夜深人靜的享受着各自屬於自己夜生活的時候。突然,電話響了!N個業務人員告訴你,系統無法操作了,點什麼都沒反應。
- 此時此刻,你的臉可能是這樣的。 ┓(;´_`)┏
- 開始忙碌起來了。
- 收集物證
- 接聽各自電話
- 向上反饋
- 默默安慰用戶與等待處理。
- 背景三
- 在一個歡快假期中的夜深人靜的享受着各自屬於自己夜生活的時候。突然,企業微信響了,異常聊天羣裏面滿滿的都是運維人員反饋的各種異常問題。
- 此時此刻,你的臉可能是這樣的。(>﹏<) 不~
- 開始忙碌起來了。
- 聯繫項目負責人
- 聯繫技術負責人
- 聯繫 1 或 N個 服務負責人
- 聯繫1 或者 N 個開發
- 聯繫 1 或 N個 服務負責人
- 聯繫技術負責人
- 聯繫技術負責人
- 聯繫 1 或 N個 服務負責人
- 聯繫1 或者 N 個開發
- 聯繫 1 或 N個 服務負責人
- 開始協調各自資源與默默等待處理。
- 聯繫項目負責人
- 場景回到 背景一。
問題:
- 問題是我們都是知道用戶操作的系統出了問題了,但是不知道是系統哪裏出了問題。
- 從開始異常到各自通知溝通,再到研發開發開始定位問題,時間已經過去了很久。
- 核心問題點是
- 異常自動感知,不需要等待用戶反饋。
- 研發人員可以快速定位問題。
- 爲什麼是快速定位問題?
- 絕大部分的服務都不是新上線的服務,是經過嚴格測試與實際運行的。代碼邏輯錯誤的可能性是最低的。
- 爲什麼是快速定位問題?
如何解決問題:
- 從上訴來看,我們定位了問題的核心點。
- 服務異常感知,我們有各自的監控方案並且也在逐步完善與整合。但是目前缺少一個從服務自身爲維度,進行檢查的監控方案。
- 服務定期自檢,反饋是否正常
- 提高研發人員定位問題的速度
- 覆盤我們出現問題,研發人員需要做哪些步驟,做哪些處理。優化簡化流程。
- 不光研發可以定位處理問題,在常見情況下,其他人員也可以定位問題。
- 出現問題的情況收集,當看到異常感知報錯的信息後,對比異常消息,直接定位到異常問題。進行鍼對解決。
- 服務異常感知,我們有各自的監控方案並且也在逐步完善與整合。但是目前缺少一個從服務自身爲維度,進行檢查的監控方案。
解決方案
整體思維導圖
介紹
- 報錯通知
- DB
- DB
- Hystrix
問題排查
- hystrix
- 日誌
動態日誌級別調整
- 使用場景
- 線上問題排查。
- 使用方式
- 直接調整單個運行的節點的日誌級別獲取更詳細的日誌信息。
- 使用效果
- 無需重啓服務即可打印詳細日誌。
- 單節點調整,不會影響其他節點。
歷史狀態日誌
- 查看一定時間內的微服務狀態信息
- 上線下情況
- 訪問情況
- 異常情況及其詳細信息
- 狀態變化時間點
實際案例
- 微服務執行對應數據庫測試語句失敗。
- 監控頁面微服務對應顏色從綠色變成紅色。
- 觸發企業微信通知
- 相關人員獲知微服務出現的異常情況與原因
- 解決問題
- 可以通過異常信息直接判斷異常原因
- 直接進行相關處理。
- 通過異常信息無法判斷異常原因
- 直接訪問該微服務的異常節點查看相關日誌。
- 可以通過異常信息直接判斷異常原因
低版本問題
- 低版本的配置中心會每次檢查都會訪問一次配置中心數據
- 解決方案
- 升級爲部門標準版本
- 高版本優化
- 加入緩存
- 解決方案