本文介绍如何通过阿里云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目前仅支持Aliyun Linux、RedHat和CentOS这三种操作系统。
  • 在目标ECS实例上安装云助手和Docker服务。

    详情请参见安装云助手客户端部署并使用Docker

操作步骤

  1. 登录阿里云Beats数据采集中心控制台
  2. 新建采集器区域中,单击Heartbeat
  3. 安装并配置采集器。
    详情请参见安装采集器采集器YML配置,本文使用的配置如下。heartbeat配置
    说明
    • 勾选启用Monitoring,系统会在Kibana控制台开启Heartbeat服务的监控。
    • 勾选启用Kibana Dashbord,系统会在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配置文档
  4. 选择采集器安装的ECS实例。
    选择采集器安装的实例

    所选择的ECS实例,需要满足上文的前提条件。

  5. 启动并查看采集器安装情况。
    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监控状态图