Heartbeat 快速入门:安装和配置

编辑

Heartbeat 快速入门:安装和配置

编辑

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

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

开始之前

编辑

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

要快速开始,请启动我们 托管的 Elasticsearch Service 部署。Elasticsearch Service 可在 AWS、GCP 和 Azure 上使用。免费试用

步骤 1:安装 Heartbeat

编辑

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

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

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

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

其他安装选项

编辑

步骤 2:连接到 Elastic Stack

编辑

需要连接到 Elasticsearch 和 Kibana 才能设置 Heartbeat。

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

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

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

此示例显示了硬编码的密码,但您应将敏感值存储在密钥存储区中。

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

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

步骤 3:配置 Heartbeat 监控器

编辑

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 与 elastic APM 集成。

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

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

步骤 4:配置 Heartbeat 位置

编辑

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:设置资产

编辑

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

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

    heartbeat setup -e

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

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

需要连接到 Elasticsearch(或 Elasticsearch Service)才能设置初始环境。如果您使用不同的输出,例如 Logstash,请参阅手动加载索引模板

步骤 6:启动 Heartbeat

编辑

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

要启动 Heartbeat,请运行:

sudo service heartbeat-elastic start

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

另请参阅 Heartbeat 和 systemd

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

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

编辑

Heartbeat 带有预构建的 Kibana 仪表板和 UI,用于可视化您的服务状态。这些仪表板可在 uptime-contrib GitHub 存储库中找到。

如果您之前加载了仪表板,请立即打开它们。

要打开仪表板:

  1. 启动 Kibana。

    1. 登录到您的 Elastic Cloud 帐户。
    2. 导航到您部署中的 Kibana 端点。
  2. 在侧边导航栏中,单击 Discover。要查看 Heartbeat 数据,请确保已选择预定义的 heartbeat-* 数据视图。

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

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

这些仪表板仅作为示例提供。我们建议您 自定义 它们以满足您的需求。

接下来是什么?

编辑

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

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

    Elastic Beats 用来捕获

    Metricbeat

    基础设施指标

    Filebeat

    日志

    Winlogbeat

    Windows 事件日志

    APM

    应用程序性能指标

    Auditbeat

    审计事件

  2. 使用 Kibana 中的可观察性应用来搜索您的所有数据

    Elastic 应用 用于

    指标应用

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

    日志应用

    实时跟踪相关日志数据

    正常运行时间应用

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

    APM 应用

    监控应用程序性能

    SIEM 应用

    分析安全事件