Apache HertzBeat国产化适配实践:操作系统与数据库

Apache HertzBeat国产化适配实践:操作系统与数据库

在企业级监控系统的搭建过程中,国产化适配已成为不可忽视的重要环节。Apache HertzBeat(incubating)作为一款开源的实时监控系统,凭借其无代理、高性能集群、Prometheus兼容等特性,在国产化环境中展现出独特优势。本文将深入探讨HertzBeat在操作系统与数据库层面的国产化适配实践,为企业级监控提供全方位解决方案。

国产化适配概述

Apache HertzBeat(incubating)是一款易用、开源、实时的监控系统,支持无代理、高性能集群、Prometheus兼容,并提供强大的自定义监控和状态页面构建能力。其设计理念是将监控、告警和通知功能集于一体,支持对Web服务、程序、数据库、缓存、操作系统、Web服务器、中间件、大数据、云原生、网络等多种目标进行监控。

国产化适配是HertzBeat项目的重要组成部分,旨在满足国内企业对自主可控、安全可靠的监控解决方案的需求。目前,HertzBeat已在操作系统和数据库两个关键层面实现了全面的国产化支持,为用户提供了完整的国产化监控生态。

HertzBeat架构

操作系统适配实践

HertzBeat对主流国产操作系统进行了深度适配,通过SSH协议实现对系统性能指标的全面监控。其中,对欧拉操作系统(EulerOS)的支持尤为突出,体现了HertzBeat在国产化适配方面的技术实力。

EulerOS适配实现

HertzBeat通过SSH协议对EulerOS操作系统的通用性能指标进行采集监控,包括系统信息、CPU、内存、磁盘、网卡、文件系统、TOP资源进程等。这种无代理的监控方式不仅简化了部署流程,还降低了对被监控系统的资源占用。

EulerOS监控的核心配置文件为manager/src/main/resources/define/app-euleros.yml,其中定义了监控的各个方面:

  1. 基本信息采集:通过执行uname -rhostname等命令获取系统版本、主机名和运行时间。

  2. CPU信息采集:使用lscpuvmstat等工具获取CPU型号、核心数、负载、中断数、上下文切换和使用率等关键指标。

  3. 内存信息采集:通过free -m命令获取内存总量、使用量、空闲量、缓存占用和可用内存等信息,并计算内存使用率。

  4. 磁盘信息采集:利用vmstat命令获取磁盘数量、分区数量、读写块数和速率等指标。

  5. 网卡信息采集:通过/proc/net/dev文件获取各个网卡的入站和出站数据流量。

  6. 文件系统信息采集:使用df -mP命令获取文件系统的使用情况,包括已使用量、可用量、使用率和挂载点。

  7. 进程信息采集:通过ps aux命令获取CPU和内存占用最高的进程信息,帮助用户快速定位资源瓶颈。

适配优势

  1. 全面覆盖:监控指标涵盖了系统运行的各个方面,为管理员提供全方位的性能视图。

  2. 灵活配置:支持SSH账户密码或密钥认证,用户可根据实际需求选择合适的认证方式。

  3. 低侵入性:无代理设计减少了对被监控系统的干扰,降低了资源消耗。

  4. 实时性强:通过定时执行采集命令,确保监控数据的实时性和准确性。

数据库适配实践

在数据库层面,HertzBeat对主流国产数据库进行了深度适配,包括达梦数据库(DM)和华为高斯数据库(OpenGauss),为用户提供了全面的国产化数据库监控解决方案。

DM数据库适配

HertzBeat通过JDBC协议对DM达梦数据库的通用性能指标进行采集监控,支持版本为DM8+。核心配置文件为manager/src/main/resources/define/app-dm.yml

关键监控指标包括:

  1. 基本信息:数据库版本、实例名称、主库标志、启动时间等。

  2. 连接状态:活跃会话数、最大会话数、会话使用率等。

  3. SQL执行情况:SQL执行总数、SELECT/INSERT/UPDATE/DELETE语句数量等。

  4. 缓存使用情况:共享池命中率、数据缓冲区命中率等。

  5. 锁等待情况:锁等待数量、锁等待时间等。

监控实现的核心是通过执行特定的SQL查询来获取这些指标,例如:

select PARA_NAME, PARA_VALUE from SYS."V$DM_INI" where PARA_NAME = 'MAX_SESSIONS'or PARA_NAME = 'CTL_PATH' or PARA_NAME = 'PORT_NUM';

这条SQL语句用于获取DM数据库的最大会话数、控制文件路径和端口号等关键配置信息。

OpenGauss数据库适配

HertzBeat同样通过JDBC协议对OpenGauss数据库进行监控,支持版本为PostgreSQL10+。核心配置文件为manager/src/main/resources/define/app-opengauss.yml

OpenGauss监控涵盖以下关键指标:

  1. 基本信息:数据库版本、启动时间、当前连接数等。

  2. 状态信息:事务数量、已提交事务数、回滚事务数等。

  3. 活动会话:活跃会话数量、等待事件等。

  4. 性能统计:SQL执行次数、逻辑读、物理读等。

  5. 资源使用:CPU使用率、内存使用情况等。

与DM数据库类似,OpenGauss的监控也是通过执行特定的SQL查询来实现的,这些查询针对OpenGauss的系统视图和函数进行了优化,确保能够高效、准确地获取所需指标。

数据库适配优势

  1. 深度集成:针对国产数据库的特性进行了专门优化,确保监控的准确性和全面性。

  2. 性能优化:精心设计的SQL查询在获取必要指标的同时,最大限度地减少了对数据库性能的影响。

  3. 灵活扩展:用户可以根据实际需求,通过修改配置文件来自定义监控指标和告警阈值。

  4. 统一平台:将国产数据库监控与其他监控目标集成在同一平台,简化了运维复杂度。

部署与使用指南

HertzBeat提供了多种部署方式,包括Docker、包安装、Docker Compose和Kubernetes Helm Charts等,用户可以根据实际环境选择最合适的部署方式。

快速部署

对于国产化环境,推荐使用Docker Compose方式部署,这种方式可以一键部署HertzBeat及其依赖的数据库和时序数据库:

git clone https://gitcode.com/GitHub_Trending/her/hertzbeat
cd hertzbeat/script/docker-compose/hertzbeat-mysql-iotdb
docker-compose up -d

详细的部署步骤可以参考script/docker-compose/README.md

配置国产化监控

  1. 登录HertzBeat Web界面,默认账户为admin/hertzbeat。

  2. 在左侧导航栏中选择"新增监控",然后选择对应的国产操作系统或数据库类型。

  3. 填写监控目标的连接信息,如主机名、端口、用户名、密码等。

  4. 配置监控周期和告警阈值。

  5. 保存配置,HertzBeat将开始对目标进行监控。

监控指标查看

HertzBeat提供了丰富的可视化图表,帮助用户直观地了解被监控目标的性能状况:

  1. 在"监控概览"页面查看所有监控目标的状态。

  2. 点击具体监控目标,进入详情页面查看各项指标的历史趋势。

  3. 使用"告警中心"查看和处理触发的告警。

  4. 利用"仪表盘"功能自定义监控视图,聚焦关键指标。

总结与展望

Apache HertzBeat在国产化适配方面展现出强大的实力,通过对EulerOS、DM、OpenGauss等国产操作系统和数据库的深度支持,为国内企业提供了一套完整的监控解决方案。其无代理的设计、丰富的监控指标和灵活的部署方式,使其成为构建自主可控IT基础设施的理想选择。

未来,HertzBeat将继续加强国产化适配工作,计划增加对更多国产操作系统、数据库和中间件的支持,同时优化监控算法,提高监控的准确性和实时性。此外,HertzBeat还将加强与国内云厂商的合作,提供更加全面的云原生监控能力。

通过持续的技术创新和生态建设,HertzBeat致力于成为国内领先的开源监控平台,为企业的数字化转型和国产化替代提供有力支持。

HertzBeat监控界面

参与贡献

HertzBeat是一个开源项目,欢迎各界开发者参与贡献。如果您在使用过程中发现问题或有改进建议,欢迎提交Issue或Pull Request。详细的贡献指南可以参考CONTRIBUTING.md

让我们共同努力,打造更加完善的国产化监控生态!

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值