全部產品
Search
文件中心

Elasticsearch:通過Heartbeat檢測ICMP及HTTP服務

更新時間:Nov 16, 2024

本文介紹如何通過阿里雲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執行個體處於同一Virtual Private Cloud(Virtual Private Cloud)下。

    詳情請參見自訂購買執行個體

    重要

    Beats目前僅支援Alibaba Cloud Linux (Alinux)、RedHat和CentOS這三種作業系統。

  • 在目標ECS執行個體上安裝雲助手和Docker服務。

    詳情請參見安裝雲助手Agent部署並使用Docker

操作步驟

  1. 登入Elasticsearch控制台
  2. 在左側導覽列,單擊Beats資料擷取中心

  3. 建立採集器地區中,單擊Heartbeat

  4. 安裝並配置採集器。

    詳情請參見採集ECS服務日誌採集器YML配置,本文使用的配置如下。heartbeat配置

    說明
    • 勾選啟用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

    指定監視器的類型。本文分別指定icmphttp監視器。

    schedule

    指定任務計劃。 schedule: '*/5 * * * * * *'表示每5秒執行一次任務;schedule: '@every 10s'表示從啟動Heartbeat任務起,每10秒執行1次任務。

    hosts

    指定要檢測的主機列表。

    urls

    指定要檢測的URL列表。

    check.response.status

    指定要檢測的HTTP請求狀態。check.response.status: 200表示如果請求的返回結果是200,那麼服務是正常的。

    說明

    更多參數說明請參見官方Heartbeat配置文檔

  5. 選擇採集器安裝的ECS執行個體。

    所選擇的ECS執行個體,需要滿足上文的前提條件。

  6. 啟動並查看採集器安裝情況。

    1. 單擊啟動

      啟動成功後,系統彈出啟動成功對話方塊。

    2. 單擊前往採集中心查看,返回Beats資料擷取中心頁面,在採集器管理地區中,查看啟動成功的Heartbeat採集器。

    3. 等待採集器狀態變為已生效1/1後,單擊右側操作欄下的查看運行執行個體

    4. 查看運行執行個體頁面,查看採集器安裝情況,當顯示為心跳正常時,說明採集器安裝成功。

查看結果

  1. 登入目標阿里雲ES執行個體的Kibana控制台。

    登入控制台的具體步驟請參見登入Kibana控制台

  2. 在左側導覽列,單擊Discover,選擇預定義的heartbeat-*模式,並選擇一個時間段,查看對應時間段內Heartbeat收集的資料。

    Heartbeat收集的資料

  3. 在左側導覽列,單擊Dashboard

  4. Dashboard列表中,單擊Heartbeat HTTP monitoring,然後選擇一個時間段,查看該時間段內HTTP的狀態統計圖。

    HTTP監控狀態圖