temBoard:一款开源PostgreSQL监控和管理工具
temBoard 是一款免费开源、基于 Web 浏览器的 PostgreSQL 管理工具,可以帮助数据库管理员(DBA)和运维团队监控、优化和配置 PostgreSQL 实例。
temBoard 项目采用了 Python、JavaScript 语言开发,遵循 PostgreSQL 协议,代码托管在 GitHub:
https://github.com/dalibo/temboard
体系架构
temBoard 采用经典的代理-服务器架构,整体包含三个部分,如下图所示:
其中,
- 存储库(repository)是一个 PostgreSQL 数据库,用于存储 temBoard 用户、监控实例列表以及监控数据等。
- UI 是一个集中式的 Web 服务器组件,用于汇总来自各个代理的监控数据,并提供 Web 界面和 API。
- 代理(agent)是一个轻量级的组件,安装在每个受监控的 PostgreSQL 实例服务器中,负责收集数据并执行操作。
功能特性
- 集中式监控:可以通过一个统一的 Web 界面同时监控数百个 PostgreSQL 实例的健康状况,实时查看 CPU、内存、连接数、缓存命中率、WAL 文件等关键指标。
- 性能优化:内置 SQL 分析器,可以帮助识别慢查询,优化数据库性能。
- 维护操作:提供数据库分析(ANALYZE)、清理(VACUUM)、索引重建等维护。
- 配置管理:管理员可以直接在 Web 界面上修改 PostgreSQL 的配置文件并使其生效,无需登录数据库服务器。
- 执行计划可视化:内置了一个 PEV2 工具,可以将复杂的 SQL 查询执行计划转换为直观的图形,帮助开发者和数据库管理员更轻松地理解和优化查询性能。
- 安全与告警:提供了严格的权限控制,可以为不同团队成员分配角色。同时可以设置告警,基于指标变化配置邮件或者短信通知。
下载安装
使用 Docker 和 Docker Compose 进行快速体验的命令如下:
wget -O docker-compose.yml https://raw.githubusercontent.com/dalibo/temboard/master/docker/docker-compose.ymldocker compose up
以上命令将会安装下列组件:
- 一个用户存储 temBoard 后台数据的 PostgreSQL 实例;
- 一个 Web 服务器;
- 四个受监控的 PostgreSQL 实例;
- 四个客户端代理,每个实例一个。
启动服务之后,通过以下地址访问管理页面:
https://localhost:8888/
默认用户名和密码都是 admin。
生成环境安装可以参考文档:
https://temboard.readthedocs.io/en/latest/server_install/