heatbeat各种场景的备用配置

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: heatbeat各种场景的备用配置



引言

      Heartbeat 是一个用于监控集群健康状态的开源工具,它能够检测集群中的节点是否正常运行,并在节点出现故障时采取相应的措施。在配置 Heartbeat 时,了解和理解各种配置选项是至关重要的。本文将深入介绍 Heartbeat 的配置选项,帮助用户更好地配置和管理 Heartbeat。

1. 安装和基本配置

首先,我们需要安装 Heartbeat,并进行基本的配置。在安装完成后,通常需要配置 Heartbeat 的一些基本参数,例如集群名称、节点名称、监听地址等。以下是一个简单的 Heartbeat 配置示例:

heartbeat:
  monitors:
    - type: icmp
      hosts: ["192.168.1.1", "192.168.1.2"]
      schedule: "@every 10s"

在这个配置中,我们定义了一个 ICMP 类型的监控器,用于检测指定主机的健康状态。监控器将每隔 10 秒执行一次检测。

2. 配置选项详解

2.1 监控器类型(type)

Heartbeat 支持多种类型的监控器,用于检测不同类型的服务或资源。常见的监控器类型包括 ICMP、TCP、HTTP、DNS 等。用户可以根据需要选择合适的监控器类型。

2.2 监控目标(hosts)

监控目标指定了需要监控的主机或资源。可以指定单个主机,也可以指定多个主机或 IP 地址。在配置时,需要确保监控目标是可达的。

2.3 监控调度(schedule)

监控调度指定了监控器执行的时间间隔和频率。可以使用 Cron 表达式或预定义的间隔表达式(如 "@every 10s" 表示每隔 10 秒执行一次)来定义监控的执行频率。

2.4 监控超时(timeout)

监控超时指定了监控器执行的超时时间。如果监控器在指定的超时时间内未能完成检测,将视为检测失败。用户可以根据网络环境和监控对象的特性调整超时时间。

2.5 故障检测(detection)

故障检测指定了节点故障的判定条件。例如,用户可以定义当连续几次检测失败后,才将节点标记为故障。这样可以防止短暂的网络中断或节点临时故障误报为真实故障。

2.6 响应动作(action)

响应动作指定了在节点故障时采取的行动。可以选择发送警报、执行自动恢复操作或触发其他事件。根据具体的应用场景和需求,可以选择合适的响应动作。

3. 高级配置选项

除了上述基本配置选项外,Heartbeat 还提供了许多高级配置选项,用于定制化和优化监控流程。这些高级配置选项包括但不限于以下几点:

  • 证书和密钥配置:用于安全连接和身份验证。
  • 代理配置:用于通过代理服务器执行监控。
  • 事件和警报配置:用于定义监控事件和警报的行为。
  • 资源和性能优化:用于调整资源占用和性能表现。

Heartbeat 是一个强大的集群监控工具,通过合理的配置可以实现对集群健康状态的实时监控和响应。在配置 Heartbeat 时,了解和熟悉各种配置选项是至关重要的,这有助于确保监控系统的稳定性和可靠性。通过本文的介绍,读者可以深入了解 Heartbeat 的配置选项,更好地配置和管理 Heartbeat,并有效地监控集群健康状态,提高系统的可用性和性能。

4. 示例配置

为了更好地理解 Heartbeat 的配置选项,下面给出一个示例配置,展示了如何使用各种配置选项来实现对集群的监控:

heartbeat:
  monitors:
    - type: icmp
      hosts: ["192.168.1.1", "192.168.1.2"]
      schedule: "@every 10s"
      timeout: "5s"
      detection:
        retries: 3
        interval: "1s"
      action:
        notify:
          email:
            to: "admin@example.com"
            from: "heartbeat@example.com"
            subject: "Node Down Alert"
            body: "Node {{ .Name }} is down."

      在这个示例配置中,我们配置了一个 ICMP 类型的监控器,用于检测两个主机的健康状态。监控器将每隔 10 秒执行一次检测,超时时间为 5 秒。如果连续 3 次检测失败,则将节点标记为故障。一旦节点被标记为故障,将触发一个邮件通知,通知管理员该节点已经宕机。

5. 结论

通过本文的介绍,读者对 Heartbeat 的配置选项有了更深入的了解。了解和熟悉各种配置选项是使用 Heartbeat 的关键,它可以帮助用户更好地配置和管理 Heartbeat,并实现对集群健康状态的实时监控。希望本文能够对读者有所帮助,使其能够更好地利用 Heartbeat 来提高系统的可用性和性能。

写在最后:

        最后给大家附上一份非常全面的heartbeat配置文件,常用的应用场景可以照搬

heartbeat.monitors:
- type: http
  # Set enabled to true (or delete the following line) to enable this monitor
  enabled: true
  # ID used to uniquely identify this monitor in Elasticsearch even if the config changes
  id: ipu-cbs-server-test
  # Human readable display name for this service in Uptime UI and elsewhere
  name: ipu-cbs-server-test
  # List of URLs to query
  urls: ["http://192.168.122.251:10002/healthCheck/ready"]
  # Configure task schedule
  schedule: '@every 30s'
  check.response.status: [200]
  ipv4: true
  ipv6: true
  mode: any
- type: http
  enabled: true
  id: ipu-cbs-server-dev
  name: ipu-cbs-server-dev
  urls: ["http://192.168.122.239:10002/healthCheck/ready"]
  schedule: '@every 30s'
  check.response.status: [200]
  ipv4: true
  ipv6: true
  mode: any
- type: http
  enabled: true
  id: kibana-118
  name: kibana-118
  enabled: true
  schedule: '@every 30s' # 定期检查间隔
  urls: ["http://192.168.122.118:5601/login"]
  check.response.status: 200
  check.response.body: "kibana" # 检查响应体中是否包含指定的字符串
- type: http
  enabled: true
  id: kibana-119
  name: kibana-119
  enabled: true
  schedule: '@every 30s' # 定期检查间隔
  urls: ["http://192.168.122.119:5601/login"]
  check.response.status: 200
  check.response.body: "kibana" # 检查响应体中是否包含指定的字符串
- type: http
  enabled: true
  id: logstash-226
  name: logstash-226
  urls: ["http://192.168.122.226:9600/_node"]
  schedule: '@every 30s'
  check.response.status: [200]
  ipv4: true
  ipv6: true
  mode: any
- type: http
  enabled: true
  id: logstash-98
  name: logstash-98
  urls: ["http://192.168.122.98:9600/_node"]
  schedule: '@every 30s'
  check.response.status: [200]
  ipv4: true
  ipv6: true
  mode: any
- type: tcp
  id: es-161
  name: es-161
  schedule: '@every 30s'
  hosts: ["192.168.10.161:9200"]
  ssl:
    certificate_authorities: ["/opt/module/metricbeat-8.11.0/certs/elasticsearch-ca.pem"]
    certificate: "/opt/module/metricbeat-8.11.0/certs/instance.crt"
    key: "/opt/module/metricbeat-8.11.0/certs/instance.key"
- type: tcp
  id: es-162
  name: es-162
  schedule: '@every 30s'
  hosts: ["192.168.10.162:9200"]
  ssl:
    certificate_authorities: ["/opt/module/metricbeat-8.11.0/certs/elasticsearch-ca.pem"]
    certificate: "/opt/module/metricbeat-8.11.0/certs/instance.crt"
    key: "/opt/module/metricbeat-8.11.0/certs/instance.key"
- type: tcp
  id: es-163
  name: es-163
  schedule: '@every 30s'
  hosts: ["192.168.10.163:9200"]
  ssl:
    certificate_authorities: ["/opt/module/metricbeat-8.11.0/certs/elasticsearch-ca.pem"]
    certificate: "/opt/module/metricbeat-8.11.0/certs/instance.crt"
    key: "/opt/module/metricbeat-8.11.0/certs/instance.key"
- type: tcp
  id: redis-28
  name: redis-28
  enabled: true
  schedule: '@every 10s'
  hosts: ["192.168.122.28:6379"]
  check.send: "AUTH Redis@123456\r\n"
- type: tcp
  schedule: '@every 10s'
  hosts: ["192.168.10.159:3306"]
  check.send: "SELECT 1;"
  enabled: true
  name: "mysql-159"
  id: "mysql-159"
  timeout: 10s
  max_retries: 10
  username: "tm_aseanbank_dev"
  password: "tm_aseanbank_dev"
  on_response_error:
    - action: log
      max_size: 10000
      keep_source: true
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
传感器 虚拟化
故障案例-ESXI6.5主机无法发生重启,并有发生网卡无故UP DOWN的事件
VSAN环境下的一台ESXI6.5主机无法发生重启,并发生网卡无故UP DOWN的事件.以下是故障分析过程和解决方法
3086 0
|
4月前
|
消息中间件 运维 监控
中间件故障转移主-备配置
【7月更文挑战第25天】
39 2
|
NoSQL Redis 容器
Redis集群更换节点IP后如何恢复集群并保留完整集群数据
Redis集群更换节点IP后如何恢复集群并保留完整集群数据
183 0
|
存储 运维 负载均衡
RH236配置IP故障转移--CTDB
RH236配置IP故障转移--CTDB
906 0
RH236配置IP故障转移--CTDB
|
存储 运维 网络协议
RH236配置IP故障转移--配置NFS Ganesha
RH236配置IP故障转移--配置NFS Ganesha
393 0
RH236配置IP故障转移--配置NFS Ganesha
|
网络协议 关系型数据库 MySQL