1. 替换衡石metadb
在使用HENGSHI SENSE服务过程中,可以根据业务需要替换HENGSHI自带的metadb。本文讲述使用云服务PostgreSQL替代衡石metadb的过程。
1.1. 准备工作
在进行配置前,请在云服务PostgreSQL上完成如下准备工作。
- 在数据库中创建用户和数据库账户,并对数据库账户授权所有权限。
可参考下面示例进行操作,示例中用户名和账户名均为hengshi。DO $body$ BEGIN IF NOT EXISTS (SELECT * FROM pg_catalog.pg_user WHERE usename = 'hengshi') THEN CREATE ROLE hengshi CREATEDB CREATEROLE LOGIN PASSWORD 'hengshi202020'; END IF; END $body$; set role hengshi; create database hengshi; create database hengshi_sense_internal_storage; reset role;
- 创建衡石日志用户,建立衡石日志数据库,并将数据库权限授权给衡石日志用户。
参考下面示例进行日志用户相关准备工作。\c hengshi DO $body$ BEGIN IF NOT EXISTS (SELECT * FROM pg_catalog.pg_user WHERE usename = 'syslog') THEN CREATE ROLE syslog LOGIN PASSWORD 'syslog'; END IF; END $body$; GRANT ALL PRIVILEGES ON DATABASE hengshi to syslog; CREATE DATABASE syslog; GRANT ALL PRIVILEGES ON DATABASE syslog to syslog;
- 准备只读帐号(此操作在成功启动衡石服务后进行配置)。参考下面示例,设置只读账户。
\c hengshi DO $body$ BEGIN IF NOT EXISTS (SELECT * FROM pg_catalog.pg_user WHERE usename = 'hsro') THEN CREATE ROLE hsro LOGIN PASSWORD 'hsro202020'; END IF; END $body$; GRANT USAGE ON SCHEMA public TO hsro; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO hsro; GRANT SELECT ON ALL TABLES IN SCHEMA public TO hsro; GRANT USAGE ON SCHEMA quartz TO hsro; ALTER DEFAULT PRIVILEGES IN SCHEMA quartz GRANT SELECT ON TABLES TO hsro; GRANT SELECT ON ALL TABLES IN SCHEMA quartz TO hsro;
1.2. 修改数据库相关配置
在文件conf/hengshi-sense-env.sh
中修改如下配置项,然后重新启动HENGSHI SENSE。重启后,衡石metadb替换成功。
HS_PG_HOST=xxx #衡石业务数据库 host
HS_PG_PORT=5432 #衡石业务数据库 port
HS_PG_DB="hengshi" #衡石业务数据库 dbname
HS_PG_USR=hengshi #衡石业务数据库 user
HS_PG_PWD="hengshi" #衡石业务数据库 password
export INTERNAL_STORAGE_DB_NAME="hengshi_sense_internal_storage" #衡石内部存储数据库
HS_SYSLOG_HOST=xxxx #衡石日志数据库 host (一般与业务数据库一致)
HS_SYSLOG_PORT=5432 #衡石日志数据库 port (一般与业务数据库一致)
HS_SYSLOG_DB=syslog #衡石日志数据库 dbname
HS_SYSLOG_USR=syslog #衡石日志数据库 user
HS_SYSLOG_PWD=syslog #衡石日志数据库 password