通过Uptime实时监控阿里云Elasticsearch服务

Heartbeat支持通过HTTP/HTTPS、TCP和ICMP服务,定期检测网络端点状态,并将采集的检测数据,输出到Kibana的Uptime应用中,实时监控应用程序及服务的可用性和响应时间,在业务受到影响前检测出问题。本文介绍如何通过Uptime实时监控阿里云Elasticsearch服务。

背景信息

Uptime需要与以下服务结合使用:

  • Heartbeat

  • 阿里云Elasticsearch

  • Kibana

说明

您还可以通过Kibana 7.7的Alerting and Actions实现监控报警通知。

部署架构

  • 单实例部署

    单个Heartbeat实例部署在单个监控位置,监控单个服务。Heartbeat发送监控数据给阿里云Elasticsearch,与此同时,可以使用Kibana Uptime查看心跳数据并确定服务状态。单实例部署

  • 多实例部署

    两个Heartbeat部署在不同的监控位置,监控同一个服务。Heartbeat发送监控数据给阿里云Elasticsearch,与此同时,可以使用Kibana Uptime查看心跳数据并确定服务状态。当某个区域的Heartbeat发生故障,多个监视位置可以帮助您定位Heartbeat故障的区域。多实例部署

更多部署架构,请参见Deployment Architecture

准备工作

  1. 创建阿里云Elasticsearch实例,并开启自动创建索引功能。

  2. 创建ECS实例,作为Heartbeat的部署机器。要求该ECS实例与阿里云Elasticsearch实例处于同一专有网络下。

    具体操作,请参见自定义购买实例

    重要

    在创建ECS实例时,需要选择Alibaba Cloud Linux、RedHat和CentOS这三种操作系统,因为Beats(包含Heartbeat)目前仅支持这三种操作系统。

  3. 在ECS实例上安装云助手和Docker服务。

    具体操作,请参见安装云助手Agent部署并使用Docker

创建Heartbeat采集器

  1. 登录阿里云Elasticsearch控制台
  2. 在左侧导航栏,单击Beats数据采集中心

  3. 创建采集器区域,单击Heartbeat

  4. 安装并配置采集器。

    具体操作,请参见采集ECS服务日志采集器YML配置

    本文配置的heartbeat.yml中的heartbeat.monitors参数说明如下:

    image

    参数

    说明

    type

    本文指定为http

    说明

    Heartbeat支持检查HTTP/HTTPS、TCP和ICMP服务。例如使用HTTP/HTTPS监视器,可以检查响应代码(code)、正文(body)和头信息(header); 使用TCP监视器,可以检查端口和字符串。

    urls

    待检查的URL列表,可以指定多个HTTP服务。本文以检查阿里云Elasticsearch服务为例,此处需要配置为待检查实例的私网访问地址。

    schedule

    检查间隔。@every 10s表示每10s检查一次。

  5. 单击下一步

  6. 在ECS实例列表中,选中采集器安装实例。

  7. 单击启动,启动采集器。

    采集器状态已生效,且操作列的查看运行实例采集器安装情况显示为心跳正常时,说明采集器安装成功。

查看Uptime监控信息

  1. 登录Kibana控制台。

    此Kibana控制台为:创建采集器时,采集器Output指定的阿里云Elasticsearch实例对应的Kibana控制台。具体操作,请参见登录Kibana控制台

  2. 在左侧导航栏,单击Uptime,查看监控数据。

    查看Uptime监控信息

    • 红色:异常状态,请检查Heartbeat通信或阿里云Elasticsearch状态。

    • 蓝色:正常状态。