本文介紹如何通過阿里云Heartbeat檢測ICMP及HTTP服務的狀態,并生成可視化圖表。
背景信息
Heartbeat是一個輕量級的守護程序,可以安裝在遠程服務器上,定期檢測服務狀態并確定它們是否可用。與Metricbeat不同,Metricbeat僅檢測服務器是啟動還是關閉,Heartbeat會檢測服務是否可以訪問。
與大多數需要安裝在邊緣節點的Beats不同,Heartbeat可以安裝為在單獨的計算機上,甚至可以處于監視服務運行的網絡之外。
目前Heartbeat支持以下三種監視器:
ICMP監視器(包括ICMPv4和ICMPv6):使用ICMP協議連接服務,通過發送ICMP請求,檢測服務是否可用(需要ROOT權限)。
TCP監視器:使用TCP協議連接服務,通過發送或者接收特定的負載,檢測服務是否可用及服務狀態是否正常。
HTTP監視器:使用HTTP協議連接服務,通過特定的狀態碼、響應頭或者內容,檢測服務是否可用及服務狀態是否正常。
說明TCP和HTTP監視器都支持SSL、TLS以及部分代理設置。
前提條件
創建阿里云Elasticsearch(簡稱ES)實例。
詳情請參見創建阿里云Elasticsearch實例。
開啟阿里云ES實例的自動創建索引功能。
出于安全考慮,阿里云ES默認不允許自動創建索引。但是Beats目前依賴該功能,因此如果采集器Output選擇為Elasticsearch,需要開啟自動創建索引功能,詳情請參見快速訪問與配置。
創建阿里云ECS實例,且該ECS實例與阿里云ES實例處于同一專有網絡VPC(Virtual Private Cloud)下。
詳情請參見自定義購買實例。
重要Beats目前僅支持Alibaba Cloud Linux (Alinux)、RedHat和CentOS這三種操作系統。
在目標ECS實例上安裝云助手和Docker服務。
詳情請參見安裝云助手Agent和部署并使用Docker。
操作步驟
- 登錄阿里云Elasticsearch控制臺。
在左側導航欄,單擊Beats數據采集中心。
在創建采集器區域中,單擊Heartbeat。
安裝并配置采集器。
詳情請參見采集ECS服務日志和采集器YML配置,本文使用的配置如下。
說明勾選啟用Monitoring,系統會在Kibana控制臺開啟Heartbeat服務的監控。
勾選啟用Kibana Dashboard,系統會在Kibana控制臺中生成圖表,無需額外配置Yml。由于阿里云Kibana配置在VPC內,因此需要先在Kibana配置頁面開通Kibana私網訪問功能,詳情請參見配置Kibana公網或私網訪問白名單。
配置采集器時,需要在heartbeat.yml中配置
heartbeat.monitors
參數設置監視器,本案例使用的配置如下。heartbeat.monitors: - type: icmp schedule: '*/5 * * * * * *' hosts: ["47.111.xx.xx"] - type: http # List or urls to query urls: ["https://es-cn-xxxxx.kibana.elasticsearch.aliyuncs.com:5601/"] # Configure task schedule schedule: '@every 10s' check.response.status: 200
參數
說明
type
指定監視器的類型。本文分別指定
icmp
和http
監視器。schedule
指定任務計劃。
schedule: '*/5 * * * * * *'
表示每5秒執行一次任務;schedule: '@every 10s'
表示從啟動Heartbeat任務起,每10秒執行1次任務。hosts
指定要檢測的主機列表。
urls
指定要檢測的URL列表。
check.response.status
指定要檢測的HTTP請求狀態。
check.response.status: 200
表示如果請求的返回結果是200
,那么服務是正常的。說明更多參數說明請參見官方Heartbeat配置文檔。
選擇采集器安裝的ECS實例。
所選擇的ECS實例,需要滿足上文的前提條件。
啟動并查看采集器安裝情況。
單擊啟動。
啟動成功后,系統彈出啟動成功對話框。
單擊前往采集中心查看,返回Beats數據采集中心頁面,在采集器管理區域中,查看啟動成功的Heartbeat采集器。
等待采集器狀態變為已生效1/1后,單擊右側操作欄下的查看運行實例。
在查看運行實例頁面,查看采集器安裝情況,當顯示為心跳正常時,說明采集器安裝成功。
查看結果
登錄目標阿里云ES實例的Kibana控制臺。
登錄控制臺的具體步驟請參見登錄Kibana控制臺。
在左側導航欄,單擊Discover,選擇預定義的heartbeat-*模式,并選擇一個時間段,查看對應時間段內Heartbeat收集的數據。
在左側導航欄,單擊Dashboard。
在Dashboard列表中,單擊Heartbeat HTTP monitoring,然后選擇一個時間段,查看該時間段內HTTP的狀態統計圖。