HertzBeat赫兹跳动-高性能监控告警系统

发布一下 0 0

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的 HertzBeat赫兹跳动是一个易用友好的高性能监控告警系统。

HertzBeat赫兹跳动-高性能监控告警系统

项目介绍

HertzBeat 支持自定义监控 ,只用通过配置YML文件我们就可以自定义需要的监控类型和指标,来满足常见的个性化需求。
HertzBeat 模块化,manager, collector, scheduler, warehouse, alerter 各个模块解耦,方便理解与定制开发。
HertzBeat 支持更自由化的告警配置(计算表达式),支持告警通知,告警模版,邮件钉钉微信飞书等及时通知送达。

模块

  • manager 提供监控管理,系统管理基础服务

提供对监控的管理,监控应用配置的管理,系统用户租户后台管理等。

  • collector 提供监控数据采集服务

使用通用协议远程采集获取对端指标数据。

  • scheduler 提供监控任务调度服务

采集任务管理,一次性任务和周期性任务的调度分发。

  • warehouse 提供监控数据仓储服务

采集指标结果数据管理,数据落盘,查询,计算统计。

  • alerter 提供告警服务

告警计算触发,监控状态联动,告警配置,告警通知。

  • web-app 提供可视化控制台页面
HertzBeat赫兹跳动-高性能监控告警系统

快速开始

依赖服务部署

HertzBeat最少依赖于 关系型数据库MYSQL5+ 和 时序性数据库TDengine2+

HertzBeat安装

HertzBeat支持通过源码安装启动,Docker容器运行和安装包方式安装部署。

Docker方式快速安装

docker run -d -p 1157:1157 -v /opt/application.yml:/opt/hertzbeat/config/application.yml --name hertzbeat tancloud/hertzbeat:[版本tag]

通过安装包安装

  • 下载您系统环境对应的安装包
https://gitee.com/dromara/hertzbeat/releases
  • 配置HertzBeat的配置文件 hertzbeat/config/application.yml
  • 部署启动 $ ./startup.sh

自定义监控

配置自定义监控类型需新增配置两个YML文件

  • 用监控类型命名的监控配置定义文件 - 例如:example.yml 需位于安装目录 /hertzbeat/define/app/ 下
  • 用监控类型命名的监控参数定义文件 - 例如:example.yml 需位于安装目录 /hertzbeat/define/param/ 下
  • 重启hertzbeat系统,我们就适配好了一个新的自定义监控类型。

监控配置定义文件

样例:自定义一个名称为example的自定义监控类型,其使用HTTP协议采集指标数据。
文件名称: example.yml 位于 /define/app/example.yml

# 此监控类型所属类别:service-应用服务监控 db-数据库监控 custom-自定义监控 os-操作系统监控category: custom# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws...app: examplename:  zh-CN: 模拟应用类型  en-US: EXAMPLE APP# 参数映射map. 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换# type是参数类型: 0-number数字, 1-string明文字符串, 2-secret加密字符串# 强制固定必须参数 - hostconfigmap:  - key: host    type: 1  - key: port    type: 0  - key: username    type: 1  - key: password    type: 2# 指标组列表metrics:# 第一个监控指标组 cpu# 注意:内置监控指标有 (responseTime - 响应时间)  - name: cpu    # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集    # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度    priority: 0    # 指标组中的具体监控指标    fields:      # 指标信息 包括 field名称   type字段类型:0-number数字,1-string字符串   instance是否为实例主键   unit:指标单位      - field: hostname        type: 1        instance: true      - field: usage        type: 0        unit: '%'      - field: cores        type: 0      - field: waitTime        type: 0        unit: s# (非必须)监控指标别名,与上面的指标名映射。用于采集接口数据字段不直接是最终指标名称,需要此别名做映射转换    aliasFields:      - hostname      - core1      - core2      - usage      - allTime      - runningTime# (非必须)指标计算表达式,与上面的别名一起作用,计算出最终需要的指标值# eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime    calculates:      - hostname=hostname      - cores=core1+core2      - usage=usage      - waitTime=allTime-runningTime# 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk    protocol: http# 当protocol为http协议时具体的采集配置    http:      # 主机host: ipv4 ipv6 域名      host: ^_^host^_^      # 端口      port: ^_^port^_^      # url请求接口路径      url: /metrics/cpu      # 请求方式 GET POST PUT DELETE PATCH      method: GET      # 是否启用ssl/tls,即是http还是https,默认false      ssl: false      # 请求头内容      headers:        apiVersion: v1      # 请求参数内容      params:        param1: param1        param2: param2      # 认证      authorization:        # 认证方式: Basic Auth, Digest Auth, Bearer Token        type: Basic Auth        basicAuthUsername: ^_^username^_^        basicAuthPassword: ^_^password^_^      # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控      # todo xmlPath-xmlPath脚本,prometheus-Prometheus数据规则      parseType: jsonPath      parseScript: '$'  - name: memory    priority: 1    fields:      - field: hostname        type: 1        instance: true      - field: total        type: 0        unit: kb      - field: usage        type: 0        unit: '%'      - field: speed        type: 0    protocol: http    http:      host: ^_^host^_^      port: ^_^port^_^      url: /metrics/memory      method: GET      headers:        apiVersion: v1      params:        param1: param1        param2: param2      authorization:        type: Basic Auth        basicAuthUsername: ^_^username^_^        basicAuthPassword: ^_^password^_^      parseType: default

更多内容:https://gitee.com/dromara/hertzbeat

版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除

本文地址:http://0561fc.cn/71454.html