> 技术文档 > 【金仓数据库征文】KingbaseES+Nagios监控实战:手把手教你从零搭建数据库监控体系的完整指南_人才金仓数据库监控

【金仓数据库征文】KingbaseES+Nagios监控实战:手把手教你从零搭建数据库监控体系的完整指南_人才金仓数据库监控

在这里插入图片描述
在这里插入图片描述

文章目录

  • 一、引言
  • 二、环境准备:安装核心组件
    • 2.1 安装Nagios Core(监控端)
    • 2.2 安装Nagios Plugins(监控端与被监控端均需安装)
    • 2.3 安装NRPE(监控端与被监控端均需安装)
  • 三、基础配置 :构建监控体系
    • 3.1 创建用户、用户组与权限
    • 3.2 核心配置文件结构
    • 3.3 禁用默认配置并创建自定义文件
  • 四、金仓数据库专属监控脚本
    • 4.1 自定义数据库监控指标
    • 4.2 脚本部署与权限配置
    • 4.3 金仓数据库监控指标
  • 五、配置监控规则:Nagios 与 NRPE 联动
    • 5.1 定义监控命令(commands.cfg)
    • 5.2 配置主机与服务(hosts.cfg)
    • 5.3 定义监控服务(services.cfg)
  • 六、验证与展示:实时监控数据
    • 6.1 测试配置
    • 6.2 Web 界面查看监控状态
  • 互动

KES+Nagios监控实战:手把手教你从零搭建数据库监控体系的完整指南!Nagios作为开源监控领域的标杆工具,被誉为网络监控的“万能钥匙”,能实时监测数据库状态、资源使用及关键指标,帮助运维团队快速发现并解决问题。当前,金仓数据库已实现和Nagios的深度适配,以全栈国产化方案为用户提供高可靠、易扩展的数据库监控解决方案。

一、引言

    📣 今天,我们将手把手教你通过Nagios搭建高效、可靠的金仓数据库(KingbaseES)监控体系!从基础环境配置到关键指标采集💡(如连接数、缓存命中率、锁等待等),再到告警规则设定与可视化展示,一步步带您实现从零到一的完整监控方案。🌞无论您是运维新手还是资深DBA,都能轻松掌握如何实时掌握数据库健康状态,提前发现潜在风险,确保业务稳定运行。✨跟着教程走,30分钟即可构建企业级监控防护网!

二、环境准备:安装核心组件

    Nagios监控体系由三大核心组件构成,需分别部署在监控服务器(监控端)和被监控数据库服务器(被监控端):

  • Nagios Core:主监控程序
  • Nagios Plugins:提供基础监控功能
  • NRPE:实现远程监控

2.1 安装Nagios Core(监控端)

# 下载并解压Nagios Core > wget https://github.com/NagiosEnterprises/nagioscore/archive/refs/tags/nagios-4.5.9.tar.gz > tar -zxf nagios-4.5.9.tar.gz && cd nagioscore-nagios-4.5.9 # 编译安装(需root权限) > ./configure && make all && make install 

2.2 安装Nagios Plugins(监控端与被监控端均需安装)

# 下载并解压插件 wget https://github.com/nagios-plugins/nagios-plugins/archive/refs/tags/release-2.4.12.tar.gz tar -zxf release-2.4.12.tar.gz && cd nagios-plugins-release-2.4.12 # 编译安装 ./configure && make && make install 

2.3 安装NRPE(监控端与被监控端均需安装)

# 监控端仅安装check_nrpe插件(用于通信) # 下载并解压NRPE > wget https://github.com/NagiosEnterprises/nrpe/archive/refs/tags/nrpe-4.1.3.tar.gz tar -zxf nrpe-4.1.3.tar.gz && cd nrpe-nrpe-4.1.3 > ./configure && make all && make install-plugin # 被监控端需完整安装(含守护进程) > wget https://github.com/NagiosEnterprises/nrpe/archive/refs/tags/nrpe-4.1.3.tar.gz > tar -zxf nrpe-4.1.3.tar.gz && cd nrpe-nrpe-4.1.3 > ./configure && make all && make install-plugin && make install-daemon && make install-daemon-config

三、基础配置 :构建监控体系

3.1 创建用户、用户组与权限

# 创建Nagios专用用户及组 useradd -m nagios groupadd nagcmd # 将nagios用户和Web服务用户加入监控组 usermod -a -G nagcmd nagios usermod -a -G nagcmd apache # 若通过Web访问Nagios 

3.2 核心配置文件结构

    Nagios的配置文件位于/usr/local/nagios/etc目录下。通过编辑这些配置文件,可以定义需要监控的主机、服务和告警规则。

  • nagios.cfg:主配置文件,控制Nagios的全局设置。
  • nrpe.cfg:被监控端配置文件,定义可执行的监控命令(部署于被监控服务器)。
  • objects/:存放主机、服务、命令等配置文件。commands.cfg:监控命令定义
  • localhost.cfg:存放本地主机的服务以及主机相关配置
  • services.cfg:定义需要监控的具体服务(如金仓数据库用户数监控),需要用户创建并赋权。
  • hosts.cfg:记录被监控主机的IP、别名等信息,需要用户创建并赋权。
  • templates.cfg:内置通用模板(如generic-service),简化配置。

3.3 禁用默认配置并创建自定义文件

    在远程监控场景下,需要在nagios.cfg中注释掉默认localhost.cfg配置:

cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

    创建自定义配置文件services.cfg存放服务相关配置以及hosts.cfg存放主机相关配置(基于默认模板初始化):

cd /usr/local/nagios/etc/objects #创建hosts.cfg配置文件head -51 localhost.cfg > hosts.cfg chown -R nagios.nagios hosts.cfg#创建services.cfg配置文件touch services.cfg chown -R nagios.nagios services.cfg

四、金仓数据库专属监控脚本

4.1 自定义数据库监控指标

    通过Shell脚本调用金仓数据库命令,将结果输出为Nagios可读格式。

    脚本示例:查询数据库用户数

#!/bin/bashhost=\"192.168.55.33\"port=\"54327\"user=\"system\"passwd=\"system\"database=\"test\"sql=\"select count(1) as user_num from sys_catalog.sys_user\"result=$(/home/KESV9/Kingbase/Server/bin/ksql -h ${host} -p ${port} -U ${user} -d ${database} -c \"${sql}\" 2>&1)if [ $? -ne θ ];thenecho \"connect failed,because:$result\"exit 1fiecho \"$result\"

4.2 脚本部署与权限配置

  • 上传脚本到被监控端

    将check_kes.sh 放置在 /usr/local/nagios/libexec/ 目录,并赋予执行权限:

chmod +x /usr/local/nagios/libexec/check_kes.sh
  • 配置NRPE允许执行脚本

    在被监控端nrpe.cfg中注册命令(重要!):

command[check_kes]=/usr/local/nagios/libexec/check_kes.sh

    然后 重启NRPE服务 使配置生效。

4.3 金仓数据库监控指标

    类似于上述check_kes.sh查询数据库用户数指标,金仓当前可提供50+相关数据库监控指标脚本,覆盖数据库监控全场景。

清单如下:

license_validdays.shqps.shsys_class.shsys_class_age.shsys_database_age.shsys_database_size.shsys_is_in_recovery.shsys_last_xact_replay.shsys_lock.shsys_ls_wal_dir.shsys_post_master_start_time.shsys_replication_slots.shsys_settings.shsys_stat_activity.shsys_stat_archiver.shsys_stat_bgwriter.shsys_stat_database.shsys_stat_database_conflicts.shsys_stat_instevent.shsys_stat_replication.shsys_stat_sqlio.shsys_stat_sqltime_xact.shsys_stat_statements_blk_time.shsys_stat_statements_calls.shsys_stat_statements_local_blks.shsys_stat_statements_local_blksio.shsys_stat_statements_max_time.shsys_stat_statements_mean_time.shsys_stat_statements_min_time.shsys_stat_statements_percen_time.shsys_stat_statements_shared_blks.shsys_stat_statements_shared_blksio.shsys_stat_statements_stddev_plan.shsys_stat_statements_temp_blks.shsys_stat_statements_tops.shsys_stat_statements_total_time.shsys_stat_sys_indexes.shsys_stat_sys_tables.shsys_stat_user_functions.shsys_stat_user_indexes.shsys_stat_user_indexes_use_less.shsys_stat_user_tables.shsys_stat_wal_receiver.shsys_stat_xact_sys_tables.shsys_stat_xact_user_functions.shsys_stat_xact_user_tables.shsys_statio_sys_indexes.shsys_statio_sys_sequences.shsys_statio_sys_tables.shsys_statio_user_indexes.shsys_statio_user_sequences.shsys_statio_user_tables.shsys_tablespace.shsys_user.shtps.shversion.sh

    此外,金仓技术团队还将定期迭代脚本,用户可通过社区反馈定制需求。

五、配置监控规则:Nagios 与 NRPE 联动

5.1 定义监控命令(commands.cfg)

在监控端的commands.cfg中添加:

define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ # $USER1$ 指向Nagios插件目录(默认/usr/local/nagios/libexec/) # $HOSTADDRESS$ 自动获取hosts.cfg中定义的主机IP }

5.2 配置主机与服务(hosts.cfg)

define host{ use  linux-server  # 使用Nagios内置Linux主机模板 host_name kingbase-server # 唯一标识(需与services.cfg一致) alias Kingbase Database # 友好名称(显示在Web界面) address  192.168.55.33 # 数据库服务器实际IP max_check_attempts 5 # 最大检测重试次数(默认5次)  } 

5.3 定义监控服务(services.cfg)

define service{ use  generic-service # 使用默认服务模板 host_name  kingbase-server # 关联主机名称 service_description Kingbase User Count # 服务名称 check_command  check_nrpe!check_kes # 调用监控命令(格式:check_nrpe!自定义指标名) check_interval 5  # 监控间隔(分钟) retry_interval 1  # 重试间隔(分钟) max_check_attempts 3  # 最大重试次数 } 

六、验证与展示:实时监控数据

6.1 测试配置

# 在监控端执行,验证命令是否生效check_nrpe -H 192.168.55.33 -c check_kes

6.2 Web 界面查看监控状态

  • 1.访问Nagios Web控制台:http://监控服务器IP/nagios

【金仓数据库征文】KingbaseES+Nagios监控实战:手把手教你从零搭建数据库监控体系的完整指南_人才金仓数据库监控

  • 2.使用默认账号登录:nagiosadmin/nagiosadmin(首次登录请修改密码)
  • 3.进入ServicesKingbase DatabaseKingbase User Count,查看实时状态:

【金仓数据库征文】KingbaseES+Nagios监控实战:手把手教你从零搭建数据库监控体系的完整指南_人才金仓数据库监控

状态标识:

  • OK:指标正常(用户数在阈值内)
  • WARNING:指标接近阈值(需关注)
  • CRITICAL:指标超限(触发邮件 / 短信告警,需立即处理)

作为国产数据库领军企业,金仓数据库始终致力于构建开放兼容的技术生态,通过与 Nagios 的深度集成,不仅实现了对自身核心指标(用户数、连接数、事务性能等)的精细化监控,更通过工具链协同降低了运维门槛。今后,金仓数据库将持续优化生态适配能力,提供更多开箱即用的监控解决方案,助力企业构建自主可控的数据库运维体系。

互动

        亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。

         愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。

        至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。


在这里插入图片描述


     亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌


- - - E N D - - -