shentong_exporter使用手册

产品简介

shentong_exporter是神通数据库的Prometheus导出器, 采集神通数据库各项性能指标, 采用go语言实现, 依赖go-aci进行数据库操作。 shentong_exporter将采集到的数据库指标,结合Prometheus + grafana,能实现对单个或多个神通数据库的性能实时监控。

支持平台

支持X86、X64、ARM、Loongarch等平台,支持Windows、Linux、银河麒麟、统信等系统。

注解

对于没有提供可执行程序的平台,可以联系神通技术支持人员或服务平台定制提供。

相关端口

默认端口9161,可-web.listen-address参数进行动态配置。

相关文件

shentong_exporter安装在$SZ_OSCAR_HOME/shentong_exporter目录下,包括可执行程序、默认指标文件等文件。

可监控产品

支持对神通关系数据库、神通分布式数据库(MPP)、神通海量数据存储库(KSTORE)产品系的数据库指标监控。

安装部署

GO安装

安装GO环境,安装步骤忽略。版本要求1.10以上,如果环境中符合版本的GO版本,此步骤可跳过。

go-aci部署

go-aci是神通数据库的go语言开发接口,shentong_exporter运行时需要用go-aci与数据库进行交互。go-aci安装步骤如下(详细可参考 "GoLang 语言开发手册->Go-ACI程序员开发指南->环境部署" 章节):

1). 将神通go-aci驱动拷贝到go的src目录,比如:/usr/lib/go/src,如下:

../../../../_images/img112.png

2). 更新aci的头文件和aci库文件:

头文件:go-aci自带aci头文件,默认情况下不用更新,aci头文件可从数据库安装目录:$SZ_OSCAR_HOME/drivers/aci/include获取。

aci库文件:aci库文件在go-aci目录中,需要根据部署平台从数据库中的安装目录中拷贝$SZ_OSCAR_HOME/drivers/aci/,比如在arm平台下,将$SZ_OSCAR_HOME/drivers/aci/arm64/libaci.so文件拷贝到/usr/lib/go/src/go-aci目录下。

3). 修改aci.pc文件: aci.pc文件中记录的是编译go-aci依赖头文件和aci库文件的路径,将其修改为对应目录,比如:

../../../../_images/img24.png

4). 终端中cd /usr/lib/go/src/,执行go build go-aci,确保编译无错,如图:

../../../../_images/img33.png

5). go-aci测试 到/usr/lib/go/src/go-aci/test目录下,编译test.go : go build -o test_goaci test.go,如图

../../../../_images/img43.png

执行test_goaci:./test_goaci sysdba/szoscar55@localhost:2003/osrdb

../../../../_images/img52.png

备注:链接数据库的用户名、密码、ip和端口、实例名称都是可以更改的,执行前在数据库中建表:create table test( a int ,b text);如果没事先创建好test表,运行程序插入数据时会报错表不存在。

注解

因为go-aci依赖的是神通aci驱动,因此在go调用go-aci程序时,需要确认aci库所在的路径是否系统运行时找到,如果没有,可以将aci库与运行程序放在同一目录或者把aci库路径加进LD_LIBRARY_PATH环境变量里。

其他依赖部署

shentong_exporter运行依赖toml、prometheus、sys、log等组件,可使用在线和离线两种模式进行安装:

在线模式

git安装:

apt-get install git

toml安装:

go get github.com/BurntSushi/toml

安装目录为:$GOPATH/src/github.com/BurntSushi/toml

prometheus安装:

go get github.com/prometheus/client_golang/prometheus

sys安装:

cd $GOPATH/src
mkdir -p golang.org/x
cd golang.org/x
git clone https://github.com/golang/sys.git

log安装:

go get github.com/prometheus/common/log

离线模式

方式1:可在有网环境中安装后,将相关依赖组件文件直接拷贝到无网环境中即可。

方式2:神通shentong_exporter在V1.0.2版本中支持了将依赖发布到depends目录,使用者可以将depends文件夹中的文件,拷贝到go的安装目录中,假如go的安装路径为/root/go,则将文件放置到/root/go/src/目录中,如图:

../../../../_images/img61.png

启动导出器

执行时需要指定DSN数据源:

export DATA_SOURCE_NAME=sysdba/szoscar55@localhost:2003/osrdb
./shentong_exporter
../../../../_images/img71.png

获取指标

在浏览器中输入:http://localhost:9161/metrics

../../../../_images/img81.png

注意事项:

需要设置DATA_SOURCE_NAME环境变量才可以正常运行,链接字符串中的信息根据实际情况修改;

shentong_exporter可执行程序依赖default-metrics.toml指标文件,需要放置在同一目录;

shentong_exporter可执行程序依赖aci库文件,需要将同平台的aci库放置在同一目录。

高级配置

服务端口变更

shentong_exporter的默认端口为9161,在项目中如果需要变更端口,有两种方式:

1). 修改代码 main.go 中的模块端口,并重新编译,代码中端口:

../../../../_images/img91.png

将9161修改后重新编译即可。

2). 启动时制定端口:参数 -web.listen-address=:9198,例如: ./shentong_exporter -web.listen-address=:9198

../../../../_images/img101.png

设置数据连接信息

在设置DATA_SOURCE_NAME环境句柄不方便的时候,可以通过参数来实现数据库连接信息的设置:参数为db.dsn,使用方式为:

exporter_shentong –db.dsn=sysdba/szoscar55@localhost:2003/osrdb

如果既没有指定DATA_SOURCE_NAME环境变量,也没有传入db.dsn参数,exporter会采用默认连接信息:–db.dsn=sysdba/szoscar55@localhost:2003/osrdb