本文介绍如何通过阿里云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的状态统计图。