用Zabbix监控GBase 8c
简介
南大通用GBase 8c是基于openGauss3.0构建的一款多模多态的分布式数据库,支持行存、列存、内存等多种存储模式和单机、主备式、分布式等多种部署形态,具备多模多态、极高性能、极高可用、极致弹性、极致安全等特性,为金融、政务、互联网等行业核心系统提供安全可靠的数据服务。
zabbix 安装部署
1、安装zabbix yum仓库
下载repo安装包:
[root@host ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
编辑zabbix.repo文件,调整替换为国内阿里云镜像。
[root@host ~]# vi /etc/yum.repos.d/zabbix.repo
键入”:”,并执行替换命令
:%s/http:\/\/repo.zabbix.com/https:\/\/mirrors.aliyun.com\/zabbix/g
按键”:wq”,保存并退出文件。
2、安装zabbix服务
(1) 安装zabbix-server(推荐使用pgsql)、zabbix-agent
[root@host ~]# yum install zabbix-server-pgsql zabbix-agent
(2) 安装zabbix前端
① 需要安装 centos-release-scl ,推荐使用从阿里云进行下载:
[root@host ~]# wget https://mirrors.aliyun.com/centos/7.9.2009/extras/x86_64/Packages/centos-release-scl-2-3.el7.centos.noarch.rpm?spm=a2c6h.25603864.0.0.62421e45seGuOO -O centos-release-scl-2-3.el7.centos.noarch.rpm
[root@host ~]# wget https://mirrors.aliyun.com/centos/7.9.2009/extras/x86_64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm?spm=a2c6h.25603864.0.0.62421e45seGuOO -O centos-release-scl-rh-2-3.el7.centos.noarch.rpm
② 安装下好的rpm包
[root@host ~]# rpm -ivh centos-release-scl-2-3.el7.centos.noarch.rpm centos-release-scl-rh-2-3.el7.centos.noarch.rpm
③ 激活zabbix前端的仓库:
[root@host ~]# vi /etc/yum.repos.d/zabbix.repo
在文件中调整zabbix-frontend部分enabled参数值为1,gpgcheck参数值为1。
按键”:wq”保存并退出。
④ 安装其他依赖包
[root@host ~]# yum install zabbix-web-pgsql-scl zabbix-nginx-conf-scl
3、配置存储数据库
前面安装时使用pgsql版zabbix-server,配置存储库时同样使用PostgreSQL(以postgresql-12为例)。此处也可以尝试使用GBase 8c。
(1) 下载postgresql-12安装包
创建安装目录。
[root@host ~]# mkdir -p /home/postgres/
[root@host ~]# cd /home/postgres/
远程获取官网tar包至安装目录:
[root@host postgres]# wget --no-check-certificate https://ftp.postgresql.org/pub/source/v12.10/postgresql-12.10.tar.gz -O /app/software/
(2) 解压并安装postgresql-12
首先解压安装包:
[root@host postgres]# tar -zxvf postgresql-12.10.tar.gz
进入解压后自动生成的目录,并安装依赖包:
[root@host postgres]# cd /home/postgres/postgresql-12.10
[root@host postgresql-12.10]# yum install -y bison flex readline-devel zlib-devel
配置选项生成makefile,默认安装到目录:/app/software/postgresql-12.10
[root@host postgresql-12.10]# ./configure --prefix=/home/postgres/postgresql-12.10
编译并安装
[root@host postgresql-12.10]# make && make install
(3) 创建添加postgres 用户到 postgres组(过程中设置postgres用户密码,请牢记)
[root@host postgresql-12.10]# groupadd postgres
[root@host postgresql-12.10]# useradd -g postgres postgres
[root@host postgresql-12.10]# passwd postgres
将postgresql-12安装目录权限赋予postgres用户:
[root@host postgresql-12.10]# chown -R postgres:postgres /home/postgres
切换为postgres用户,用于启停postgresql-12数据库。
[root@host postgresql-12.10]# su postgres
[postgres@host postgresql-12.10]#
(4) 初始化并启动存储数据库
创建postgres用户所有的data目录,用于存储数据。
[postgres@host postgresql-12.10]# mkdir -p /home/postgres/postgresql-12.10/data
初始化并启动数据库。
[postgres@host postgresql-12.10]# cd /home/postgres/postgresql-12.10/bin/
[postgres@host bin]# ./initdb -D /home/postgres/postgresql-12.10/data/
[postgres@host bin]# ./pg_ctl -D /home/postgres/postgresql-12.10/data/ -l logfile start
列出以下其他管理操作为参考(步骤中无需执行)。
--停止数据库
/home/postgres/postgresql-12.10/bin/pg_ctl -D /home/postgres/postgresql-12.10/data/ stop
--重启数据库
/home/postgres/postgresql-12.10/bin/pg_ctl restart -D /home/postgres/postgresql-12.10/data/ -m fast
(5) 创建zabbix数据库及用户
[postgres@host bin]# createuser --pwprompt zabbix
[postgres@host bin]# createdb -O zabbix zabbix
为zabbix用户授权(WEB访问Zabbix时需要参考此处,配置PG数据库、用户及密码等信息):
[postgres@host bin]# psql -d postgres
postgres=# alter database "zabbix" owner to zabbix;
postgres=# grant all on database "zabbix" to zabbix;
postgres=# alter user zabbix superuser login;
postgres=# \q
注意
若执行不成功,考虑以下操作:
\1) 请检查并配置环境变量。
[postgres@host bin]# vim ~/.bashrc
# 修改环境变量值为实际路径
export PGDATA=/home/postgres/postgresql-12.10/data
export PGHOME=/home/postgres/postgresql-12.10/
export PATH=$PATH:$PGHOME/bin
\2) 调整PATH变量顺序,将postgres用户.bashrc中路径地址移到前面。例如:
[postgres@host bin]# echo $PATH
/opt/protobuf-c/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/home/postgres/postgresql-12.10//bin
# 调整PATH变量中路径值的顺序
[postgres@host bin]# export PATH=/home/postgres/postgresql-12.10//bin:/opt/protobuf-c/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
# 再次查看,调整成功
[postgres@host bin]# echo $PATH
/home/postgres/postgresql-12.10//bin:/opt/protobuf-c/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
(6) 导入 zabbix 元数据信息
[postgres@host bin]# zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | /home/postgres/postgresql-12.10/bin/psql zabbix
(7) 配置远程连接
编辑postgresql.conf配置文件,修改”#listen_addresses = 'localhost'”一行,将前面的#号去掉;将默认参数localhost修改成实际IP地址。
[postgres@host bin]# vim /home/postgres/postgresql-12.10/data/postgresql.conf
例如:
listen_addresses = '172.16.5.103'
编辑pg_hba.conf配置文件,增加一行,表示主机所有IP都可以访问。
[postgres@host bin]# vim /home/postgres/postgresql-12.10/data/pg_hba.conf
例如:
host all all 0.0.0.0/0 trust
注意:GBase 8c数据库集群也需提前配置操作,用于远程连接。分布式集群在读写CN上操作,并指定-Z参数;主备式集群在主DN上操作。
gs_guc reload [-Z coordinator] -N all -I all -h "host all all 0.0.0.0/0 sha256"
gs_guc reload [-Z coordinator] -N all -I all -c "listen_addresses=*"
gs_guc reload [-Z coordinator] -N all -I all -c "password_encryption_type=1"
4、修改配置
(1) 修改 zabbix_server 配置,包括DBHost、DBName、DBPassword。
[root@host ~]# vi /etc/zabbix/zabbix_server.conf
# 选择本地连接方式
DBHost=
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
(2) 修改 nginx 配置
[root@host ~]# vi /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
# 修改端口,注意:默认80端口需要root权限
listen 8000;
# 修改为本机名,这里以gbase8c_5_103为例。
server_name gbase8c_5_103;
[root@host ~]# vi /etc/opt/rh/rh-nginx116/nginx/nginx.conf
# 修改用户为root
user root;
(3) 修改php时区:
[root@host ~]# vi /etc/opt/rh/rh-php72/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
# 将最前面的分号去掉,时区改成亚洲上海
date.timezone=Asia/Shanghai
5、启动服务
设置开机自启动,并重启服务。
[root@host ~]# systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
[root@host ~]# systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
查看 zabbix_server 日志方式:
[root@host ~]# cat /var/log/zabbix/zabbix_server.log
根据返回的提示错误信息,修改。
如果安装过程一切顺利,没有错误,正常登录WEB界面即可。
登陆WEB界面
在浏览器地址栏输入http://IP:port/访问Zabbix界面。这里IP写安装Zabbix server的机器IP,port与/etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf文件中listen的端口保持一致。
需要注意的是:
如果在访问失败,请检查错误日志信息修正。请执行locate error.log | grep nginx命令,查询error.log所在路径。例如,访问界面报错“502 Bad Gateway”,检查网络端口无误后查看错误日志如下:
根据上图错误日志,可以看出没有权限访问/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock文件。进入到此路径下查看该文件权限,所有者为root。而nginx.conf配置文件中显示为”user nginx;”,修改此处用户为root,并重启服务即可。
安装成功后,WEB首页应显示为(以Zabbix 5.0为例):
看到这个界面,Zabbix基本准备就绪了。草蛇伏线,灰延千里。界面提示需要配置的一些参数,在前面安装过程都有涉及,包括创建的数据库名、用户名及密码等信息。
设置数据库名、用户名等数据库配置。
设置IP、端口等主机配置。
# 端口查询命令:
netstat -ntlp | grep zabbix_server
' fill='%23FFFFFF'%3E%3Crect x='249' y='126' width='1' height='1'%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)
配置正确参数后:
配置完成后跳转至Zabbix登录界面。WEB端默认用户名密码:Admin/zabbix。
登录成功后,正式进入Zabbix监控界面。
建议将界面语言设置为中文,方便操作。根据下图提示,选择Chinese(zh_CN),点击“update”按钮立即生效。
接下来进行配置监控的一系列操作。
配置监控
1、创建主机群组
主机群组管辖范围包括模板主机等。后续创建的模板、主机都可以关联到主机群组。
(1) 创建一个新的主机群组。
例如新建主机群组“GBase8c”:
(2) 在列表中勾选刚刚新建的主机群组,并点击“启用主机”。
在这行,我们可以看到GBase8c可管辖主机、模板、成员等,同时关联到这些对象各自的界面。比如点击GBase8c这行的“模板”,自动跳转到配置模板页,与点击左侧菜单配置-模板是等效的。
2、配置监控采集模版
在模板配置页,可创建或导入自定义监控模板。Zabbix5版本支持xml格式,而官网7版本已经更新到yml格式,注意格式与安装版本保持一致。推荐直接导入的方式。
(1) GBase 8c监控采集模板,可以自行参考Zabbix官方提供的PostgreSQL模版略作调整;或直接在正文左下角链接获取,内容如下:
[gbase@host ~]$ tree zabbix/
zabbix/
├── gbase8c
│ ├── gbase8c.bgwriter.sql
│ ├── gbase8c.cache.hit.sql
│ ├── gbase8c.config.hash.sql
│ ├── gbase8c.connections.prepared.sql
│ ├── gbase8c.connections.sql
│ ├── gbase8c.connections.sum.sql
│ ├── gbase8c.dbstat.sql
│ ├── gbase8c.dbstat.sum.sql
│ ├── gbase8c.discovery.db.sql
│ ├── gbase8c.frozenxid.sql
│ ├── gbase8c.locks.sql
│ ├── gbase8c.ping.time.sql
│ ├── gbase8c.query.time.sql
│ ├── gbase8c.replication.lag.sql
│ ├── gbase8c.replication.recovery_role.sql
│ ├── gbase8c.replication.status.sql
│ ├── gbase8c.scans.sql
│ ├── gbase8c.transactions.sql
│ ├── gbase8c.uptime.sql
│ └── gbase8c.wal.stat.sql
├── template_db_gbase8c.conf
└── template_db_gbase8c.xml
1 directory, 22 files
(2) 将template_db_gbase8c.conf(附件获取)上传至Zabbix部署服务器/etc/zabbix/zabbix_agentd.d 目录下。
(3) 在Zabbix部署机服务器创建/var/lib/zabbix目录,并将./gbase8c目录及文件(附件获取)上传到该目录。
(4)登录Zabbix的WEB监控平台,将本地的template_db_gbase8c.xml模版(文中为Zabbix5版本)导入至监控平台。注意无论创建还是导入模板,请与主机群组关联。
选择本地文件,勾选监控规则,点击“导入”按钮。
3、配置主机
(1) 创建主机
注意与主机群组关联。
(2) 填写主机名称、IP、客户端,与zabbix server实际部署情况一致。
选择刚创建的主机群组名称,并修改客户端IP地址信息。
(3) 同样,勾选刚刚创建好的主机,点击“启用”。
(4) 链接模板
我们上一步配置的模板,只是导入到模板库中。对于新创建的主机,还需要关联相应模板才能获取模板文件中的监控项。仍回到主机详情页,如果已经退回到主机列表,可以点击主机名跳转至该主机详情。
在链接新模板输入框内通过关键字搜索:
\1) 输入关键字“GBase 8c”,选择 Template DB GBase8c 模版,用于监控GBase 8c数据库。
\2) (可选)输入关键字“Linux”,选择 Template OS Linux by Zabbix agent 模版,用于监控服务器主机。
\3) 点击添加按钮,完成链接模板的操作。
(5) 配置宏
\1) 在主机详情配置页面,配置宏,选择继承以及主机宏
\2) 根据实际情况,调整数据库连接参数如PG_HOST、PG_PORT、PG_USER、PG_DB等。通常只需要修改PG_HOST、PG_PORT即可。
修改完毕后,记得拉到页面最下方点击“更新”按钮。不管下拉多久,一定要保存!
(6) 启动监控项
最后一步配置,查看刚刚配置好的监控项是否已经处于“已启用”状态。
如果有个别监控项没有处于启用状态,检查是否有错误,勾选启用它。
查看监控项
接下来,我们就可以通过美观的Dashboard,监控数据库和主机的状态。
(1) 通过WEB监测面板查看监控项:
(2) 选择监测-主机,可点击“最新数据”按钮,查看实时更新的监控数据:
(3) 选择“图形”可查看监控数据图表
连接数
事务数
慢查询
锁信息