Heartbeat 快速入门:安装和配置

编辑

Heartbeat 快速入门:安装和配置

编辑

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

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

开始之前

编辑

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

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

步骤 1:安装 Heartbeat

编辑

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

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

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

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

其他安装选项

编辑

步骤 2:连接到 Elastic Stack

编辑

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

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

指定 Elasticsearch 服务的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字段可用于通过正常运行时间 UI 将心跳与弹性 APM 集成。

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

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

步骤 4:配置 Heartbeat 位置

编辑

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

要配置 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. 在侧边导航中,单击发现。要查看 Heartbeat 数据,请确保已选择预定义的 heartbeat-* 数据视图。

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

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

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

接下来做什么?

编辑

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

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

    Elastic Beat 用于捕获

    Metricbeat

    基础设施指标

    Filebeat

    日志

    Winlogbeat

    Windows 事件日志

    APM

    应用程序性能指标

    Auditbeat

    审计事件

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

    Elastic 应用程序 用于

    指标应用程序

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

    日志应用程序

    实时跟踪相关日志数据

    正常运行时间应用程序

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

    APM 应用程序

    监控应用程序性能

    SIEM 应用程序

    分析安全事件