【openGauss】检查工具gs_check,gs_checkperf的应用
1. gs_check
(1)检查指定项(以CheckCPU为例)
在执行gs_check -i CheckCPU时如果出现如下报错是因为没有为集群配置过免密,即使当前环境为单机也要求要配置ssh互信,有两种解决办法
办法一:配置ssh互信,第一步执行ssh-keygen生成密钥(默认加密算法为rsa,如果不更换算法可以不指定),第二步执行ssh-copy-id 报错的host,将密钥发送到对应的主机
办法二:使用gs_sshexkey工具配置互信,使用一个文件记录需要配置互信主机的ip,一个ip占一行
办法三:在命令的最后添加-L指定为本地执行(但是只能获取当前节点的性能)
如果出现如下图报错是因为当前系统没有sar命令,手动安装就可以解决这个问题,并不是所有检查项都需要sar,比如图中gs_check -i CheckClusterState检查集群状态时是可以正常执行的
使用yum安装缺少的sar,如果出现如下图所示异常,或是异常信息与下图相似都是ImportError … not found,特别是在安装openGauss前yum可用,但是安装openGauss后出现异常,出现故障的原因可能是因为安装openGauss时自动配置的环境变量将lib路径指定到了openGauss的lib,与yum实际所需的版本不符(与linux自带lib冲突)
解决办法是找到环境变量文件(/etc/profile),将LD_LIBRARY_PATH变量注释,source环境变量(source /etc/profile)后会依旧无法使用,这个更改需要重启操作系统,然后yum就可以用了
重新安装sysstat(sar)
重新执行gs_check -i CheckCPU
在不指定-L的情况下默认获取整个集群的所有节点的性能,所以得到的查询结果可能存在多个,所以检查结果会打包成压缩包
(2)检查指定场景(以例行巡检为例)
默认情况下,例行巡检会检查所有默认配置的选项,其中会包含有root权限才可以查询的检查项,所以在执行gs_check -i 后需要输入root用户密码,以授权检查对应检查项
可以通过设置一个参数跳过所有root权限的检查项不检查:–skip-root-items,可以从下图中看到执行命令后不需要输入root用户名及密码,并且总检查项从57减少到了42项
(3)自定义检查场景
在openGauss中支持用户自定义检查项与检查场景,自定义检查场景配置在xml文件中(文件名必须是scene_XXX.xml)
① 将场景要检查的检查项编写到xml文件中(此案例文件名为scene_checkTest.xml),格式如下:
<?xml version="1.0" encoding="utf-8" ?>
<scene name="checkTest" desc="check cluster parameters before checkTest.">
<configuration/>
<allowitems>
<!-- 检查CPU使用率 -->
<item name="CheckCPU"/>
<!-- 检查CPU核数 -->
<item name="CheckCpuCount"/>
<!-- 检查防火墙状态 -->
<item name="CheckFirewall" />
</allowitems>
</scene>
其中scene配置的是场景信息,name为场景名称,即检查时gs_check -e 后面指定的场景名称,desc为当前场景的描述信息;item配置实际要做的检查项。
① 配置好xml文件后,将文件复制到openGauss数据库工具目录中的script/gspylib/inspection/config/路径下,数据库工具目录在安装时的clusterconfig.xml文件中配置过(一般是/opt/install/om),当前案例完成目录是/opt/install/om/script/gspylib/inspection/config/
② 检查场景对应的xml文件都要求具有可执行权限,但是自定义的xml文件默认是不具有可执行权限的,使用chmod为xml文件添加执行权限
③ 以上操作全部执行完后就可以执行gs_check -e 场景名称,结果如下所示
(4)自定义检查项
通过Python编写如果获取自定义的检查的值及如何检查的过程,生成一个Python文件,默认存在的CheckCPU的Python文件内容如下:
此文件也需要具有可执行权限,将上一步编写的Python文件存放到/opt/install/om/script/gspylib/inspection/items目录下,在items目录下根据检查项类型进行了目录划分,比如CPU属于系统性能,对应的Python文件存放于items/os目录下
在config目录中有一个items.xml文件,里面记录的就是各种检查项,如果要自定义检查项,根据格式将检查项信息添加到xml文件中
一个checkitem就是一个检查项的配置信息,注意checkitem标签中的name属性要与Python文件名称相同
2.gs_checkperf
gs_checkperf使用-i指定检查项,有两种可选项PMK、SSD,默认是PMK,检查项包括如下内容
直接执行gs_checkperf(-i PMK可以省略不写)结果如下:
在检查PMK对应的检查项时指定–detail可以查看详细信息
当想要检查SSD性能时必须指定-i SSD,并且因为SSD只有root用户才可以查看,还需要通过-U指定数据库用户,检查SSD权限不允许指定–detail参数,具体如下图所示:
登录到root用户,执行gs_checkperf -U omm -i SSD命令,出现如图所示的报错是因为当前环境并未安装使用SSD,所以无法查询