1、temboard简介
temBoard是一款开源的、基于Web的PostgreSQL数据库监控和管理工具。它的核心价值在于为数据库管理员和运维团队提供一个集中式的统一界面,用于监控、优化和管理多达数百个 PostgreSQL 数据库实例。
github地址:https://github.com/dalibo/temboard
2、主要特点
统一管理:简化了大规模PostgreSQL实例集群的日常运维。
功能全面:覆盖了监控、优化、配置、维护等数据库管理核心需求。
开源开放:代码托管于GitHub,允许自定义和二次开发。
3、架构与部署
temBoard采用"代理-服务器"架构,包含三个部分:
存储库(Repository): 一个专用的PostgreSQL数据库,用于存储配置和监控数据。
Web应用 (UI): 中央服务器,提供操作界面和API。
代理 (Agent): 轻量级组件,需安装在被监控的每个PostgreSQL实例主机上,负责收集数据并执行操作。
4、创建数据目录
bash
mkdir -p /data/temboard
chmod 777 /data/temboard
5、拉取temboard镜像
bash
docker pull dalibo/temboard:latest
docker pull postgres:18-alpine
docker pull dalibo/temboard-agent:latest
docker pull postgres:16-alpine
docker pull postgres:14-alpine
docker pull postgres:13-alpine
6、编辑docker-compose.yaml文件
bash
i /data/temboard/docker-compose.yaml
volumes:
home18:
run18:
data16:
run16:
data14:
run14:
data13:
run13:
services:
ui:
image: dalibo/temboard:latest
environment:
# These PG* vars are for auto_configure.sh
PGHOST: repository
PGUSER: postgres
PGPASSWORD: postgres
TEMBOARD_LOGGING_LEVEL: DEBUG
links:
- repository
ports:
- "8888:8888"
repository:
image: postgres:18-alpine
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
command: [
postgres,
-c, log_connections=on,
-c, log_statement=all,
-c, "log_line_prefix=%m [%p]: [%l-1] app=%a,db=%d,client=%h,user=%u ",
-c, cluster_name=repository,
]
instance18:
image: postgres:18-alpine
command: [
postgres,
-c, shared_preload_libraries=pg_stat_statements,
-c, log_connections=on,
-c, log_statement=all,
-c, "log_line_prefix=%m [%p]: [%l-1] app=%a,db=%d,client=%h,user=%u ",
-c, cluster_name=instance18,
]
ports:
- 5432:5432
volumes:
- home18:/var/lib/postgresql
- run18:/var/run/postgresql
environment:
POSTGRES_PASSWORD: postgres
agent18:
image: dalibo/temboard-agent:latest
volumes:
- home18:/var/lib/postgresql
- run18:/var/run/postgresql/
links:
- instance18:instance18.acme.tld
- ui
environment: &agent-env
TEMBOARD_HOSTNAME: instance18.acme.tld
TEMBOARD_REGISTER_HOST: agent18
TEMBOARD_UI_URL: https://ui:8888/
TEMBOARD_UI_USER: admin
TEMBOARD_UI_PASSWORD: admin
TEMBOARD_LOGGING_LEVEL: DEBUG
PGPASSWORD: postgres
instance16:
image: postgres:16-alpine
command: [
postgres,
-c, shared_preload_libraries=pg_stat_statements,
-c, log_connections=on,
-c, log_statement=all,
-c, "log_line_prefix=%m [%p]: [%l-1] app=%a,db=%d,client=%h,user=%u ",
-c, cluster_name=instance16,
]
ports:
- 5436:5432
volumes:
- data16:/var/lib/postgresql/data
- run16:/var/run/postgresql
environment:
POSTGRES_PASSWORD: postgres
agent16:
image: dalibo/temboard-agent:latest
volumes:
- data16:/var/lib/postgresql/data
- run16:/var/run/postgresql/
links:
- instance16:instance16.acme.tld
- ui
environment:
<<: *agent-env
TEMBOARD_HOSTNAME: instance16.acme.tld
TEMBOARD_REGISTER_HOST: agent16
instance14:
image: postgres:14-alpine
ports:
- 5433:5432
volumes:
- data14:/var/lib/postgresql/data
- run14:/var/run/postgresql
environment:
POSTGRES_PASSWORD: postgres
command: [
postgres,
-c, shared_preload_libraries=pg_stat_statements,
-c, log_connections=on,
-c, log_statement=all,
-c, "log_line_prefix=%m [%p]: [%l-1] app=%a,db=%d,client=%h,user=%u ",
-c, cluster_name=instance14,
]
agent14:
image: dalibo/temboard-agent:latest
volumes:
- data14:/var/lib/postgresql/data
- run14:/var/run/postgresql/
links:
- instance14:instance14.acme.tld
- ui
environment:
<<: *agent-env
TEMBOARD_HOSTNAME: instance14.acme.tld
TEMBOARD_REGISTER_HOST: agent14
instance13:
image: postgres:13-alpine
ports:
- 5434:5432
volumes:
- data13:/var/lib/postgresql/data
- run13:/var/run/postgresql
environment:
POSTGRES_PASSWORD: postgres
command: [
postgres,
-c, shared_preload_libraries=pg_stat_statements,
-c, log_connections=on,
-c, log_statement=all,
-c, "log_line_prefix=%m [%p]: [%l-1] app=%a,db=%d,client=%h,user=%u ",
-c, cluster_name=instance13,
]
agent13:
image: dalibo/temboard-agent:latest
volumes:
- data13:/var/lib/postgresql/data
- run13:/var/run/postgresql/
links:
- instance13:instance13.acme.tld
- ui
environment:
<<: *agent-env
TEMBOARD_HOSTNAME: instance13.acme.tld
TEMBOARD_REGISTER_HOST: agent13
7、启动temboard容器
bash
cd /data/temboard/
docker-compose up -d
docker-compose ps
8、访问temboard服务
bash
浏览器访问: https://192.168.112.115:8888
用户名/密码: admin/admin
temBoard是一款功能全面的专业PostgreSQL管理面板,非常适合需要管理多个PostgreSQL实例的运维团队和DBA使用。