Apache HertzBeat国产化适配实践:操作系统与数据库
在企业级监控系统的搭建过程中,国产化适配已成为不可忽视的重要环节。Apache HertzBeat(incubating)作为一款开源的实时监控系统,凭借其无代理、高性能集群、Prometheus兼容等特性,在国产化环境中展现出独特优势。本文将深入探讨HertzBeat在操作系统与数据库层面的国产化适配实践,为企业级监控提供全方位解决方案。
国产化适配概述
Apache HertzBeat(incubating)是一款易用、开源、实时的监控系统,支持无代理、高性能集群、Prometheus兼容,并提供强大的自定义监控和状态页面构建能力。其设计理念是将监控、告警和通知功能集于一体,支持对Web服务、程序、数据库、缓存、操作系统、Web服务器、中间件、大数据、云原生、网络等多种目标进行监控。
国产化适配是HertzBeat项目的重要组成部分,旨在满足国内企业对自主可控、安全可靠的监控解决方案的需求。目前,HertzBeat已在操作系统和数据库两个关键层面实现了全面的国产化支持,为用户提供了完整的国产化监控生态。
操作系统适配实践
HertzBeat对主流国产操作系统进行了深度适配,通过SSH协议实现对系统性能指标的全面监控。其中,对欧拉操作系统(EulerOS)的支持尤为突出,体现了HertzBeat在国产化适配方面的技术实力。
EulerOS适配实现
HertzBeat通过SSH协议对EulerOS操作系统的通用性能指标进行采集监控,包括系统信息、CPU、内存、磁盘、网卡、文件系统、TOP资源进程等。这种无代理的监控方式不仅简化了部署流程,还降低了对被监控系统的资源占用。
EulerOS监控的核心配置文件为manager/src/main/resources/define/app-euleros.yml,其中定义了监控的各个方面:
-
基本信息采集:通过执行
uname -r、hostname等命令获取系统版本、主机名和运行时间。 -
CPU信息采集:使用
lscpu、vmstat等工具获取CPU型号、核心数、负载、中断数、上下文切换和使用率等关键指标。 -
内存信息采集:通过
free -m命令获取内存总量、使用量、空闲量、缓存占用和可用内存等信息,并计算内存使用率。 -
磁盘信息采集:利用
vmstat命令获取磁盘数量、分区数量、读写块数和速率等指标。 -
网卡信息采集:通过
/proc/net/dev文件获取各个网卡的入站和出站数据流量。 -
文件系统信息采集:使用
df -mP命令获取文件系统的使用情况,包括已使用量、可用量、使用率和挂载点。 -
进程信息采集:通过
ps aux命令获取CPU和内存占用最高的进程信息,帮助用户快速定位资源瓶颈。
适配优势
-
全面覆盖:监控指标涵盖了系统运行的各个方面,为管理员提供全方位的性能视图。
-
灵活配置:支持SSH账户密码或密钥认证,用户可根据实际需求选择合适的认证方式。
-
低侵入性:无代理设计减少了对被监控系统的干扰,降低了资源消耗。
-
实时性强:通过定时执行采集命令,确保监控数据的实时性和准确性。
数据库适配实践
在数据库层面,HertzBeat对主流国产数据库进行了深度适配,包括达梦数据库(DM)和华为高斯数据库(OpenGauss),为用户提供了全面的国产化数据库监控解决方案。
DM数据库适配
HertzBeat通过JDBC协议对DM达梦数据库的通用性能指标进行采集监控,支持版本为DM8+。核心配置文件为manager/src/main/resources/define/app-dm.yml。
关键监控指标包括:
-
基本信息:数据库版本、实例名称、主库标志、启动时间等。
-
连接状态:活跃会话数、最大会话数、会话使用率等。
-
SQL执行情况:SQL执行总数、SELECT/INSERT/UPDATE/DELETE语句数量等。
-
缓存使用情况:共享池命中率、数据缓冲区命中率等。
-
锁等待情况:锁等待数量、锁等待时间等。
监控实现的核心是通过执行特定的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监控涵盖以下关键指标:
-
基本信息:数据库版本、启动时间、当前连接数等。
-
状态信息:事务数量、已提交事务数、回滚事务数等。
-
活动会话:活跃会话数量、等待事件等。
-
性能统计:SQL执行次数、逻辑读、物理读等。
-
资源使用:CPU使用率、内存使用情况等。
与DM数据库类似,OpenGauss的监控也是通过执行特定的SQL查询来实现的,这些查询针对OpenGauss的系统视图和函数进行了优化,确保能够高效、准确地获取所需指标。
数据库适配优势
-
深度集成:针对国产数据库的特性进行了专门优化,确保监控的准确性和全面性。
-
性能优化:精心设计的SQL查询在获取必要指标的同时,最大限度地减少了对数据库性能的影响。
-
灵活扩展:用户可以根据实际需求,通过修改配置文件来自定义监控指标和告警阈值。
-
统一平台:将国产数据库监控与其他监控目标集成在同一平台,简化了运维复杂度。
部署与使用指南
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。
配置国产化监控
-
登录HertzBeat Web界面,默认账户为admin/hertzbeat。
-
在左侧导航栏中选择"新增监控",然后选择对应的国产操作系统或数据库类型。
-
填写监控目标的连接信息,如主机名、端口、用户名、密码等。
-
配置监控周期和告警阈值。
-
保存配置,HertzBeat将开始对目标进行监控。
监控指标查看
HertzBeat提供了丰富的可视化图表,帮助用户直观地了解被监控目标的性能状况:
-
在"监控概览"页面查看所有监控目标的状态。
-
点击具体监控目标,进入详情页面查看各项指标的历史趋势。
-
使用"告警中心"查看和处理触发的告警。
-
利用"仪表盘"功能自定义监控视图,聚焦关键指标。
总结与展望
Apache HertzBeat在国产化适配方面展现出强大的实力,通过对EulerOS、DM、OpenGauss等国产操作系统和数据库的深度支持,为国内企业提供了一套完整的监控解决方案。其无代理的设计、丰富的监控指标和灵活的部署方式,使其成为构建自主可控IT基础设施的理想选择。
未来,HertzBeat将继续加强国产化适配工作,计划增加对更多国产操作系统、数据库和中间件的支持,同时优化监控算法,提高监控的准确性和实时性。此外,HertzBeat还将加强与国内云厂商的合作,提供更加全面的云原生监控能力。
通过持续的技术创新和生态建设,HertzBeat致力于成为国内领先的开源监控平台,为企业的数字化转型和国产化替代提供有力支持。
参与贡献
HertzBeat是一个开源项目,欢迎各界开发者参与贡献。如果您在使用过程中发现问题或有改进建议,欢迎提交Issue或Pull Request。详细的贡献指南可以参考CONTRIBUTING.md。
让我们共同努力,打造更加完善的国产化监控生态!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





