代码拉取完成,页面将自动刷新
Pgclusteradmin是一款基于Go开发的PostgreSQL集群管理工具,当前主要功能有“节点资料集中管理”、“运行参数在线配置,参数文件多版本管理,参数文件模板管理”、“服务管理(即服务start,stop,restart,stop)”、“VIP绑定解绑”、“备机唤醒”、“主备切换”、“巡检报告”、“进程管理”、“表锁管理”、“查询统计”;系统支持多用户,操作认证,支持SSH密码登陆和SSH公钥、私钥登陆;操作人员通过浏览器从远程登录进入管理平台,前面的界面使用EasyUI实现。
[root@ad go]# vim /etc/profile
GOROOT=/usr/local/go
GOBIN=$GOROOT/bin
PATH=$PATH:$GOBIN
GOPATH=/home/go
export GOROOT GOBIN GOPATH PATH
保存退出
[root@ad go]# source /etc/profile
[root@nfs go]# go version
go version go1.8.3 linux/amd64
--下载源码
wget https://ftp.postgresql.org/pub/source/v9.6.1/postgresql-9.6.1.tar.gz
--解压
tar zxf postgresql-9.6.1.tar.gz
--编译
cd postgresql-9.6.1
./configure --prefix=/usr/local/pgsql9.6.1 --with-perl --with-tcl --with-python --with-openssl --with-pam --without-ldap --with-libxml --with-libxslt
gmake
gmake install
--初始化
su postgres
/usr/local/pgsql9.6.1/bin/initdb -D /home/postgres/data9.6.1 -E utf8 -U postgres -W
--postgresql.conf配置
listen_addresses = '*'
log_destination = 'csvlog'
logging_collector = on
--pg_hba.conf配置
host all all 192.168.1.0/24 md5
配置完成后需要重启服务,其它参数视需要自己配置。
建立pgclusteradmin库并导入建立资料表。
/usr/local/pgsql9.6.1/bin/psql -h 192.168.1.10 -U postgres -d postgres -p 5432
postgres=# create database pgcluster ENCODING 'utf8' template template0;
\c pgcluster
--导入源码包中的pgcluster.sql脚本
\i pgcluster.sql
--ssh支持包
[root@ad ~]# cd /usr/local/go/src
[root@ad src]# mkdir golang.org
[root@ad src]# cd golang.org/
[root@ad golang.org]# mkdir x
[root@ad src]# cd x/
[root@ad x]# git clone https://github.com/golang/crypto.git
正克隆到 'crypto'...
remote: Counting objects: 3256, done.
remote: Total 3256 (delta 0), reused 0 (delta 0), pack-reused 3255
接收对象中: 100% (3256/3256), 2.31 MiB | 958.00 KiB/s, done.
处理 delta 中: 100% (2106/2106), done.
--session支持包
[root@ad x]# cd /usr/local/go/src
[root@ad src]# mkdir github.com
[root@ad src]# cd github.com
[root@ad github.com]# mkdir astaxie
[root@ad github.com]# cd astaxie/
[root@ad astaxie]# git clone https://github.com/astaxie/session
正克隆到 'session'...
remote: Counting objects: 50, done.
remote: Total 50 (delta 0), reused 0 (delta 0), pack-reused 50
Unpacking objects: 100% (50/50), done.
[root@ad astaxie]# ll
总用量 8
--postgresql操作支持包
[root@ad pgclusteradmin]# cd /usr/local/go/src/github.com/
[root@ad github.com]# mkdir pkg
[root@ad github.com]# cd pkg
[root@ad pkg]# git clone https://github.com/pkg/errors
Initialized empty Git repository in /usr/local/go1.8.3/src/github.com/pkg/errors/.git/
remote: Counting objects: 418, done.
remote: Total 418 (delta 0), reused 0 (delta 0), pack-reused 418
Receiving objects: 100% (418/418), 86.42 KiB, done.
Resolving deltas: 100% (253/253), done.
[root@ad pkg]#
[root@ad pkg]# cd /usr/local/go/src/github.com/
[root@ad github.com]# mkdir jackc
[root@ad github.com]# cd jackc
[root@ad jackc]# git clone https://github.com/jackc/pgx
正克隆到 'pgx'...
remote: Counting objects: 3613, done.
remote: Compressing objects: 100% (243/243), done.
remote: Total 3613 (delta 157), reused 0 (delta 0), pack-reused 3370
接收对象中: 100% (3613/3613), 1.24 MiB | 228.00 KiB/s, done.
处理 delta 中: 100% (2481/2481), done.
--golang excel驱动包
[root@ad github.com]# cd /usr/local/go/src/github.com/
[root@ad github.com]# mkdir tealeg
[root@ad github.com]# cd tealeg/
[root@ad tealeg]# git clone https://github.com/tealeg/xlsx
正克隆到 'xlsx'...
remote: Counting objects: 2793, done.
remote: Total 2793 (delta 0), reused 0 (delta 0), pack-reused 2792
接收对象中: 100% (2793/2793), 1.11 MiB | 357.00 KiB/s, done.
处理 delta 中: 100% (1503/1503), done.
[root@ad pgclusteradmin]# cd /home/ad
[root@ad ad]# git clone https://github.com/chenaisheng/pgclusteradmin
正克隆到 'pgclusteradmin'...
remote: Counting objects: 374, done.
remote: Compressing objects: 100% (177/177), done.
remote: Total 374 (delta 201), reused 348 (delta 185), pack-reused 0
接收对象中: 100% (374/374), 284.09 KiB | 197.00 KiB/s, done.
处理 delta 中: 100% (201/201), done.
[root@ad ad]#
打开pgclusteradmin.go文件,拉下最后面,找到函数extractConfig(),代码如下所示
/*
功能描述:配置postgresql连接参数
参数说明:无
返回值说明:
pgx.ConnConfig -- pg连接参数结构体
*/
func extractConfig() pgx.ConnConfig {
var config pgx.ConnConfig
config.Host = "127.0.0.1" //数据库主机host或ip
config.User = "postgres" //连接用户
config.Password = "pgsql" //用户密码
config.Database = "pgcluster" //连接数据库名
config.Port = 5432 //端口号
return config
}
修改成上面部署postgresql的相应参数即可。
怎样配置使用SSH公钥、私钥登陆
1、root用户登陆后,运行以下第一句指令,其他根据提示进行输入:
ssh-keygen -t rsa 也可以使用DSA
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 建议直接回车使用默认路径
Created directory '/root/.ssh'
Enter passphrase (empty for no passphrase): 输入密码短语(留空则直接回车)
Enter same passphrase again: 重复密码短语
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
05:71:53:92:96:ba:53:20:55:15:7e:5d:59:85:32:e4 root@test
The key's randomart image is:
+--[ RSA 2048]----+
| o o .. |
| . o oo.+ . |
| o.+... = |
| ...o |
| o S |
| . |
| |
| |
| |
+--------------------+
此时在/root/.ssh/目录下生成了2个文件,id_rsa为私钥,id_rsa.pub为公钥。
将公钥复制到需要登录电脑的/root/.ssh/authorized_keys文件中。
好了,至此只要你保存好你的私钥,你的服务器相比原来使用root用户加密码登陆来说已经安全多了。
2、数据库服务管理用户postgres的公钥、私钥生成方法与上面root用户的公钥、私钥生成方法一致,也可以root共用一对公钥、私钥。
3、打开pgclusteradmin.go文件,拉下最后面,找到函数get_postgres_private_key()和get_root_private_key(),把数据库服务管理用户和管理员root使用的私钥复制上去
[root@ad ad]# cd pgclusteradmin/
[root@ad pgclusteradmin]# go run pgclusteradmin.go
打开一个浏览器,输入 http://192.168.0.231:10001即可进入管理器,192.168.0.231换成你自己ip地址即可。初始化的用户名和密码都是"admin"
1、编译pgclusteradmin.go程序为可执行程序
[root@ad pgclusteradmin]# go build pgclusteradmin.go
2、复制pgclusteradmin程序及easyui目录至/usr/local/pgclusteradmin目录下
[root@ad pgclusteradmin]# mkdir /usr/local/pgclusteradmin
[root@ad pgclusteradmin]# cp pgclusteradmin easyui/ /usr/local/pgclusteradmin -rf
3、复制服务管理脚本至目录至/etc/init.d目录下
[root@ad pgclusteradmin]# cp ./etc/init.d/pgclusteradmin /etc/init.d/pgclusteradmin
[root@ad pgclusteradmin]# chmod +x /etc/init.d/pgclusteradmin
4、配置pgclusteradmin为服务
[root@ad pgclusteradmin]# chkconfig --add pgclusteradmin
[root@ad pgclusteradmin]# chkconfig --list | grep pgclusteradmin
pgclusteradmin 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
5、测试pgclusteradmin服务使用
[root@ad pgclusteradmin]# service pgclusteradmin start
Starting pgclusteradmin
[root@ad pgclusteradmin]# service pgclusteradmin status
pgclusteradmin (pid 15686) already running..
[root@ad pgclusteradmin]# service pgclusteradmin restart
Stoping pgclusteradmin
Starting pgclusteradmin
[root@nfs pgclusteradmin]# service pgclusteradmin status
pgclusteradmin (pid 15717) already running..
[root@ad pgclusteradmin]# service pgclusteradmin help
Usage: /etc/init.d/pgclusteradmin {start|stop|status|restart|help}
start - start pgclusteradmin
stop - stop pgclusteradmin
status - show current status of pgclusteradmin
restart - restart pgclusteradmin if running by sending a SIGHUP or start if not running
help - this screen
[root@ad pgclusteradmin]#
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型