暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用Nagios监控金仓数据库KingbaseES

jack 2025-04-14
276

内含50+金仓数据库监控指标脚本,速来get,让数据库监控更简单!


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

本文将手把手教你通过 Nagios 实现对金仓数据库的全面监控!

 

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

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

l Nagios Core:主监控程序。

l Nagios Plugins:提供基础监控功能。

l NRPE:实现远程监控。

 

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. 安装 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  

 

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  


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

1. 创建用户、用户组与权限

# 创建Nagios专用用户及组  

useradd -m nagios  

groupadd nagcmd  

# 将nagios用户和Web服务用户加入监控组  

usermod -a -G nagcmd nagios  

usermod -a -G nagcmd apache  # 若通过Web访问Nagios

 

2. 核心配置文件结构

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

l nagios.cfg:主配置文件,控制Nagios的全局设置。

l nrpe.cfg:被监控端配置文件,定义可执行的监控命令(部署于被监控服务器)。

l objects/:存放主机、服务、命令等配置文件。

n commands.cfg:监控命令定义。

n localhost.cfg:存放本地主机的服务以及主机相关配置。

n services.cfg:定义需要监控的具体服务(如金仓数据库用户数监控),需要用户创建并赋权。

n hosts.cfg:记录被监控主机的 IP、别名等信息,需要用户创建并赋权。

n templates.cfg:内置通用模板(如generic-service),简化配置。


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

 

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

1. 自定义数据库监控指标

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

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

#!/bin/bash

 

host="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 θ ];then

echo "connect failed,because:$result"

exit 1

fi

 

echo "$result"

 

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服务使配置生效。


3. 金仓数据库监控指标

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

脚本清单如下:

license_validdays.sh

qps.sh

sys_class.sh

sys_class_age.sh

sys_database_age.sh

sys_database_size.sh

sys_is_in_recovery.sh

sys_last_xact_replay.sh

sys_lock.sh

sys_ls_wal_dir.sh

sys_post_master_start_time.sh

sys_replication_slots.sh

sys_settings.sh

sys_stat_activity.sh

sys_stat_archiver.sh

sys_stat_bgwriter.sh

sys_stat_database.sh

sys_stat_database_conflicts.sh

sys_stat_instevent.sh

sys_stat_replication.sh

sys_stat_sqlio.sh

sys_stat_sqltime_xact.sh

sys_stat_statements_blk_time.sh

sys_stat_statements_calls.sh

sys_stat_statements_local_blks.sh

sys_stat_statements_local_blksio.sh

sys_stat_statements_max_time.sh

sys_stat_statements_mean_time.sh

sys_stat_statements_min_time.sh

sys_stat_statements_percen_time.sh

sys_stat_statements_shared_blks.sh

sys_stat_statements_shared_blksio.sh

sys_stat_statements_stddev_plan.sh

sys_stat_statements_temp_blks.sh

sys_stat_statements_tops.sh

sys_stat_statements_total_time.sh

sys_stat_sys_indexes.sh

sys_stat_sys_tables.sh

sys_stat_user_functions.sh

sys_stat_user_indexes.sh

sys_stat_user_indexes_use_less.sh

sys_stat_user_tables.sh

sys_stat_wal_receiver.sh

sys_stat_xact_sys_tables.sh

sys_stat_xact_user_functions.sh

sys_stat_xact_user_tables.sh

sys_statio_sys_indexes.sh

sys_statio_sys_sequences.sh

sys_statio_sys_tables.sh

sys_statio_user_indexes.sh

sys_statio_user_sequences.sh

sys_statio_user_tables.sh

sys_tablespace.sh

sys_user.sh

tps.sh

version.sh

 

此外,我们还将定期迭代脚本,您可在本文评论区反馈定制需求。


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

定义监控命令(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  

}

 

配置主机与服务(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次)  

}  

 

定义监控服务(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                     # 最大重试次数  

}


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

Step 1测试配置

# 在监控端执行,验证命令是否生效

check_nrpe -H 192.168.55.33 -c check_kes

 

Step 2 Web 界面查看监控状态

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

图片1.png

2. 使用默认账号登录:nagiosadmin/nagiosadmin(首次登录请修改密码)

3. 进入 Services → Kingbase Database → Kingbase User Count,查看实时状态:

图片2.png

状态标识:

l  OK:指标正常(用户数在阈值内)。

l  WARNING:指标接近阈值(需关注)。

l  CRITICAL:指标超限(触发邮件 / 短信告警,需立即处理)。

 

 

结语

通过与 Nagios 的深度集成,金仓数据库不仅实现了对自身核心指标(用户数、连接数、事务性能等)的精细化监控,更通过工具链协同降低了运维门槛。

未来,金仓将持续优化生态适配能力,提供更多开箱即用的监控解决方案,助力企业构建自主可控的数据库运维体系。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论