# Redmine 5.1 中的 SLA:分析不可用插件并探索自定义路径
在任务管理中缺少自动化指标的情况下,管理者被迫手动监控截止日期,导致错误和效率低下。对于使用 Redmine 5.1 的公司,实现 SLA(服务水平协议)至关重要。然而,在插件中搜索现成解决方案时,发现了严重的兼容性和功能问题。
在 Docker 中设置测试环境
为了安全地测试插件而不危及生产系统,使用 Docker 部署了一个隔离的测试环境。该配置包括 Redmine 和 PostgreSQL 的独立容器、固定的 Redmine 5.1 版本,并且仅通过 localhost 访问。关键方案是将本地目录映射到文件和插件目录,从而避免每次更改都重建镜像。
示例 docker-compose.yml 配置:
services:
postgres:
image: postgres:16
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: "redmine"
POSTGRES_PASSWORD: "password"
POSTGRES_DB: "redmine"
PGDATA: "/var/lib/postgresql/data"
restart: always
redmine:
image: redmine:5.1
ports:
- 80:3000
volumes:
- ./local-files:/usr/src/redmine/files
- ./local-plugins:/usr/src/redmine/plugins
depends_on:
- postgres
environment:
REDMINE_DB_POSTGRES: "postgres"
REDMINE_DB_USERNAME: "redmine"
REDMINE_DB_PASSWORD: "password"
REDMINE_DB_DATABASE: "redmine"
restart: no
volumes:
redmine_data:
db_data:
使用命令 docker-compose up -d 启动环境。成功启动后(无错误发生),作者登录 Web 界面(用户名:admin,密码:admin),并准备测试数据:跟踪器、项目和工单。在安装插件前,通过 Docker Desktop 中的卷导出创建了数据库备份。
插件测试方法
每个插件单独测试,以排除冲突。过程包括三个步骤:
- 将插件文件夹复制到主机上的
./local-plugins目录。 - 在 Redmine 容器内通过
bundle install安装依赖。 - (如需要)运行迁移命令
rake redmine:plugins:migrate。
在安装依赖时,出现了典型的缺失 gems 问题,例如:
Could not find gem 'business_time (>= 0.13.0)'
Could not find gem 'holidays (>= 7.1.0)'
解决方案是手动安装缺失组件:
gem install business_time
gem install holidays
这一步对大多数测试的解决方案都是必需的。
与 Redmine 5.1 的插件兼容性分析
测试了八个匹配 SLA 控制功能的插件。解决方案的关键要求:
- 监控对工单的响应时间。
- 监控完全解决工单的时间。
- 能够按指定参数过滤工单。
测试结果:
- reporting_sla (最后更新 18.11.2025):与 Rails/Redmine 版本不兼容,需要深度修改。
- likehopper/redmine_sla (12.02.2026):仅适用于 PostgreSQL,但测试环境中使用了 Oracle。高性能,因为将逻辑卸载到数据库。
- redmine_issue_sla (29.01.2018):针对 Redmine 3.x 的过时插件,在 5.1 版本上无法启动。
- redmine_sla_timer (12.07.2020):无描述,且与当前版本不兼容。
- redmine_sla_ola (12.07.2020):唯一可用的选项,但需要额外设置——添加自定义字段
products和first_reply。 - agile (03.12.2025):处理项目管理任务,但不提供 SLA 功能。
- RedmineUP Helpdesk:商业解决方案,支持服务,但无法覆盖所有场景,需要预算。
SLA 实现建议
分析选项后,未发现适用于 Redmine 5.1 的即开即用解决方案。组织有三条前进路径:
- 购买商业解决方案(例如 RedmineUP)。优点:有支持、定期更新。缺点:安全策略限制,与特定需求不匹配。
- 修改现有插件(redmine_sla_ola)。优点:核心功能已实现。缺点:需要自定义以适应流程,Redmine 更新时存在风险。
- 开发自定义插件。优点:完全匹配业务流程,无多余功能。缺点:时间投入(演示版预计 3-5 天)。
对于 SLA 流程严格规范的组织,忽略自动化会导致更多截止日期错过。在选择实现路径时,不仅要考虑当前成本,还要考虑 TCO(总拥有成本)。商业解决方案可能需要年度许可费,而自定义则一次性解决问题,持续成本最低。
关键要点
- 版本兼容性至关重要:大多数插件未针对 Redmine 5.1 更新,未经修改即无法使用。
- 需要额外设置:即使“可用”插件也需自定义(例如添加字段),增加工作量。
- Docker 必不可少:在隔离环境中测试可防止生产系统损坏,并加速回滚。
- Gems 依赖是常见问题:缺失业务逻辑 gems(business_time、holidays)需要手动安装,复杂化流程。
- 自定义 vs. 商业解决方案:预算有限且需求明确时,自研插件长期节省资源。
— Editorial Team
暂无评论。