上次週報快速地介紹Elastic公司的Heartbeat套件,本次帶大家看實作結果。
2018/10/08先前議題連結:
《Elastic Stack-Heartbeat 主機服務監控》
環境架構
Kibana: 5.6.3
Elasticsearch: 5.6.3
Logstash: 2.4.1 (本次用不到)
Heartbeat實做架構 |
安裝環境選定
官方提供不同環境的安裝程式,包含Linux、MAC、Windows等都可作為Heartbeat服務機器。安裝Heartbeat的主機扮演發出偵測指令的角色,依照配置監控對象偵測,蒐集結果後統計送到後端,後端可以直接是Elasticsearch,也可以先送給Logstash處理再由Logstash送到Elasticsearch。在正式環境中建議在Linux環境配置服務,而本次實做先以Windows環境為範例。
Windows安裝步驟
- 透過powershell進行服務安裝,個人習慣解壓縮到C:\Program Files\heartbeat\
- 以管理權限啟動powershell,切換到Heartbeat目錄。
- 使用以下命令安裝:
PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-heartbeat.ps1
.
使用powershell安裝heartbeat |
透過services.msc可看到Heartbeat以服務形式安裝 |
標的設定
裝好服務後,要告訴Heartbeat監控主機有哪些,如前篇介紹提到可以用ping、http等協定進行偵測,組態配置檔案在解壓縮目錄下的heartbeat.yml,透過文字編輯器打開即可編輯。
一般概念
一般配置在heartbeat.monitors段落中,完整配置方法與參數可以參考官方網站,以監控http://www.google.com、www.hinet.net,監控頻率為60秒、逾時80秒為例,使用以下配置:
heartbeat.monitors:
- type: http
urls: ["http://www.google.com","http://www.hinet.net"]
schedule: '@every 60s'
timeout: 80s
認證資訊
萬一碰到需要登入的網站怎麼辦?Heartbeat支援基本的HTTP authentication,組態中定義帳號密碼即可:
type: http
urls: ["http://www.needlogin.com"]
username: "username"
password: "password"
schedule: '@every 60s'
timeout: 80s
檔尾配置
除了在heartbeat.monitors配置監控標的外,還要配置setup.kibana以及output.elasticsearch(或output.logstash),這幾段配置很直覺,直接把IP、port填入即可。填好資訊就存檔離開,然後回到services.msc,啟動heartbeat服務!啟動過程中如果順利表示組態檔填寫正確,如果啟動跳出錯誤訊息,就回去檢查 heartbeat.yml檔案。
匯入儀表
到這邊會有疑惑,Heartbeat啟動之後呢?Elastic已經很貼心地預先定義好視覺分析的儀表板,透過以下命令讓Heartbeat透過Kibana API把儀表建立:
.\heartbeat.exe setup --dashboards
結果
開啟瀏覽器,連線到kibana,點選Dashboard裡面的Heartbeat HTTP monitoring,就會看到預先定義好的儀表,包含以下分析項目:
- HTTP monitors
- HTTP monitors status
- HTTP up status
- HTTP ping times
- HTTP duration heatmap
Heartbeat儀表1 |
Heartbeat儀表2 |
HTTP monitors status則是用圓餅圖的方式看目前各網站up/down狀態,以及HTTP response code呈現。
HTTP up status是叢時間軸的方式單純看所有監控標的的up/down狀態,可以觀測特定時間點網站正常服務的比例,例如是多層服務,可以看到所有主機的正常比例等。
HTTP ping times、HTTP duration heatmap是把監控效能指標圖形化,透過這些視覺化方法,都能讓我們從綜觀的角度做監控。
延伸
另外,筆者在很多的Beats中發現,都是以純文字編輯yaml檔案進行配置,過程還有點不人性化,如果能結合Kibana透過網頁直接透過圖形介面配置,相信操作會更友善,或許這可以當作未來一個開發的題目。
凱迪 2018/10/30
Email: kedy.ch@udngroup.com
有任何想法、心得,歡迎討論。