Heartbeat 快速入门:安装和配置

edit

Heartbeat 快速入门:安装和配置edit

本指南介绍如何快速开始收集有关主机正常运行时间的的数据。您将学习如何

  • 安装 Heartbeat
  • 指定要监控的协议
  • 将正常运行时间数据发送到 Elasticsearch
  • 在 Kibana 中可视化正常运行时间数据
Heartbeat HTTP monitoring dashboard

开始之前edit

您需要 Elasticsearch 来存储和搜索您的数据,以及 Kibana 来可视化和管理它。

为了快速入门,请启动我们 托管的 Elasticsearch 服务 的部署。Elasticsearch 服务在 AWS、GCP 和 Azure 上提供。 免费试用.

步骤 1:安装 Heartbeatedit

与您在边缘节点上安装的大多数 Beats 不同,您通常将 Heartbeat 安装为在单独的机器上运行的监控服务的组成部分,并且可能甚至在您要监控的服务所在的网络之外运行。

要下载和安装 Heartbeat,请使用适合您系统的命令

curl -L -O https://artifacts.elastic.co/downloads/beats/heartbeat/heartbeat-8.14.3-amd64.deb
sudo dpkg -i heartbeat-8.14.3-amd64.deb

显示的命令适用于 AMD 平台,但 ARM 包也可用。有关可用包的完整列表,请参阅 下载页面

其他安装选项edit

步骤 2:连接到 Elastic Stackedit

需要与 Elasticsearch 和 Kibana 建立连接才能设置 Heartbeat。

heartbeat.yml 中设置连接信息。要找到此配置文件,请参阅 目录布局

指定 cloud.id 的 Elasticsearch 服务,并将 cloud.auth 设置为有权设置 Heartbeat 的用户。例如

cloud.id: "staging:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyRjZWM2ZjI2MWE3NGJmMjRjZTMzYmI4ODExYjg0Mjk0ZiRjNmMyY2E2ZDA0MjI0OWFmMGNjN2Q3YTllOTYyNTc0Mw=="
cloud.auth: "heartbeat_setup:YOUR_PASSWORD" 

此示例显示了一个硬编码密码,但您应该在 密钥库 中存储敏感值。

要了解有关所需角色和权限的更多信息,请参阅 授予用户访问受保护资源的权限

您可以将数据发送到其他 输出,例如 Logstash,但这需要额外的配置和设置。

步骤 3:配置 Heartbeat 监控器edit

Heartbeat 提供监控器来以设定的间隔检查主机状态。Heartbeat 目前提供 ICMP、TCP 和 HTTP 的监控器(有关这些监控器的更多信息,请参阅 Heartbeat 概述)。

您分别配置每个监控器。在 heartbeat.yml 中,指定您要启用的监控器列表。列表中的每个项目都以短划线 (-) 开头。以下示例配置 Heartbeat 以使用三个监控器:一个 icmp 监控器、一个 tcp 监控器和一个 http 监控器。

heartbeat.monitors:
- type: icmp
  schedule: '*/5 * * * * * *' 
  hosts: ["myhost"]
  id: my-icmp-service
  name: My ICMP Service
- type: tcp
  schedule: '@every 5s' 
  hosts: ["myhost:12345"]
  mode: any 
  id: my-tcp-service
- type: http
  schedule: '@every 5s'
  urls: ["http://example.net"]
  service.name: apm-service-name 
  id: my-http-service
  name: My HTTP Service

icmp 监控器计划每 5 秒精确运行一次(10:00:00、10:00:05,依此类推)。schedule 选项使用基于 cronexpr 实现 的类似 cron 的语法。

tcp 监控器设置为从 Heartbeat 启动的时间开始每 5 秒运行一次。Heartbeat 将 @every 关键字添加到 cronexpr 包提供的语法中。

mode 指定是 ping 一个 IP (any) 还是所有可解析的 IP

service.name 字段可用于通过 Uptime UI 将 Heartbeat 与弹性 APM 集成。

要测试您的配置文件,请更改到安装 Heartbeat 二进制文件的目录,并使用以下指定的选项在前景中运行 Heartbeat:./heartbeat test config -e。确保您的配置文件位于 Heartbeat 预期的路径(请参阅 目录布局),或者使用 -c 标志指定配置文件的路径。

有关配置 Heartbeat 的更多信息,另请参阅

步骤 4:配置 Heartbeat 位置edit

Heartbeat 可以部署在多个位置,这样您就可以检测到这些位置之间的可用性和响应时间差异。配置 Heartbeat 位置以允许 Kibana 在 Uptime 地图上显示特定于位置的信息,并根据位置执行 Uptime 异常检测。

要配置 Heartbeat 实例的位置,请修改 heartbeat.yml 中的 add_observer_metadata 处理器。以下示例将 add_observer_metadata 处理器的 geo.name 指定为 us-east-1a

# ============================ Processors ============================

processors:
  - add_observer_metadata:
      # Optional, but recommended geo settings for the location Heartbeat is running in
      geo: 
        # Token describing this location
        name: us-east-1a 
        # Lat, Lon "
        #location: "37.926868, -78.024902" 

取消注释 geo 设置。

取消注释 name 并分配 Heartbeat 服务器位置的名称。

可以选择取消注释 location 并分配纬度和经度。

要测试您的配置文件,请更改到安装 Heartbeat 二进制文件的目录,并使用以下指定的选项在前景中运行 Heartbeat:./heartbeat test config -e。确保您的配置文件位于 Heartbeat 预期的路径(请参阅 目录布局),或者使用 -c 标志指定配置文件的路径。

有关配置 Heartbeat 的更多信息,另请参阅

步骤 5:设置资产edit

Heartbeat 附带用于解析、索引和可视化数据的预定义资产。要加载这些资产

  1. 确保 heartbeat.yml 中指定的用户 有权设置 Heartbeat
  2. 从安装目录中,运行

    heartbeat setup -e

    -e 是可选的,并将输出发送到标准错误而不是配置的日志输出。

此步骤加载用于写入 Elasticsearch 的推荐 索引模板。它不会安装 Heartbeat 仪表板。Heartbeat 仪表板和安装步骤可在 uptime-contrib GitHub 存储库中找到。

需要与 Elasticsearch(或 Elasticsearch 服务)建立连接才能设置初始环境。如果您使用的是其他输出,例如 Logstash,请参阅 手动加载索引模板

步骤 6:启动 Heartbeatedit

在启动 Heartbeat 之前,请修改 heartbeat.yml 中的用户凭据,并指定 有权发布事件 的用户。

要启动 Heartbeat,请运行

sudo service heartbeat-elastic start

如果您使用 init.d 脚本启动 Heartbeat,则无法指定命令行标志(请参阅 命令参考)。要指定标志,请在前景中启动 Heartbeat。

另请参阅 Heartbeat 和 systemd

Heartbeat 现在已准备好检查您的服务的状况并将事件发送到您定义的输出。

步骤 7:在 Kibana 中查看您的数据edit

Heartbeat 提供预构建的 Kibana 仪表盘和 UI 用于可视化服务状态。这些仪表盘可在 uptime-contrib GitHub 仓库中找到。

如果您之前已加载仪表盘,现在可以打开它们。

要打开仪表盘:

  1. 启动 Kibana

    1. 登录您的 Elastic Cloud 帐户。
    2. 导航到您部署中的 Kibana 终端节点。
  2. 在侧边导航栏中,点击 发现。要查看 Heartbeat 数据,请确保已选择预定义的 heartbeat-* 索引模式。

    如果您在 Kibana 中没有看到数据,请尝试将时间过滤器更改为更大的范围。默认情况下,Kibana 显示最近 15 分钟的数据。

  3. 在侧边导航栏中,点击 仪表盘,然后选择您要打开的仪表盘。

这些仪表盘是示例,我们建议您根据需要 定制它们。

下一步:编辑

现在您已经将正常运行时间数据流式传输到 Elasticsearch,了解如何统一您的日志、指标、正常运行时间和应用程序性能数据。

  1. 通过安装和配置其他 Elastic Beats 来摄取来自其他来源的数据

    Elastic Beats 用于捕获

    Metricbeat

    基础架构指标

    Filebeat

    日志

    Winlogbeat

    Windows 事件日志

    APM

    应用程序性能指标

    Auditbeat

    审核事件

  2. 使用 Kibana 中的可观察性应用程序跨所有数据进行搜索

    Elastic 应用程序 用于

    指标应用程序

    探索有关整个生态系统中的系统和服务的指标

    日志应用程序

    实时跟踪相关日志数据

    正常运行时间应用程序

    监控您应用程序和服务中的可用性问题

    APM 应用程序

    监控应用程序性能

    SIEM 应用程序

    分析安全事件