通过Heartbeat检测ICMP及HTTP服务

本文介绍如何通过阿里云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

操作步骤

  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监控状态图