前言
當企業的系統架構越來越龐大,加上企業分工造成許多系統分散管理,找問題的困難度也會跟提高,溝通的時間也隨之拉長。但對用戶的感受上,就只有一個字,慢,但資訊人員可能需要在茫茫大海中,尋找關鍵原因。
問題描述
每到出帳日,系統的處理時間往往都是 12 小時起跳,到底是哪邊出了問題?
是程式 Bug 造成效率低落? 需要優化程式?
如果真的需要追根究柢,會遇到什麼樣的問題?
- 部門間的跨組別溝通上的時間成本
- 資料庫、API、前端、Server,不同層面的問題需要一一檢查
- 不同領域都有不同的負責人員,資訊相對都很局部且破碎
- 很多日常的工作需要處理,查問題的時間較少
- 發生 Error 的狀況很難立刻找到對應的 Log
解決方案
我們必需將這些分散在各地的資料做有效的收集且分析,讓往後的追蹤不在是一件麻煩事。
首先使用 Logstash 收集重要訊息,不管是什麼樣的 Log 通通都能收集進來。
- Server 的效能資訊 ( 如 Memory、I/O、CPU )
- Web Host Log ( 如 IIS、NGINX )
- AP 自行產出的 Log
- DB Log
當大量的 Log 資料藉由 Logstash 自動化的進到 Elasticsearch 後,我們需要
Kibana 進行資料的分析。透過與企業內部進行需求訪談,希望可以從大量的資料中,得到哪些有用的資訊,並客製化成視覺化儀表版,以利日後的數據觀察。因為我們整合了所有伺服器上的
Logs,並利用強大的 Kibana Discover
查詢,我們可以藉此看到多台伺服器間的先後關係,不管是 AP、DB、Web
Server,我們可以在 Kibana 的查詢介面一目了然。