Skip to content

Jenkins - 服务器维护

定期维护对于稳定高效的 Jenkins 环境至关重要。这包括监控、清理以及确保可靠的备份。

  • 负载统计 (Load Statistics): 定期查看 Manage Jenkins → Load Statistics,监控队列长度和执行器 (executor) 使用情况。队列等待时间长或执行器始终满载,表明需要增加代理 (agent) 节点或升级硬件。
  • 系统日志 (System Logs): 查看日志 (Manage Jenkins → System Log),查找可能表明潜在问题的错误或警告。
  • 监控插件 (Monitoring Plugin): 安装 ‘Monitoring’ 插件,将 Jenkins 指标(CPU、内存、磁盘、执行器、队列)集成到 Prometheus 等监控系统,并在 Grafana 等仪表盘中可视化。这能提供更深入的洞察。
  • 磁盘空间 (Disk Space): 积极监控 JENKINS_HOME 的磁盘使用情况,尤其是 jobs(构建历史)和 artifacts(构建产物)目录。磁盘空间不足是 Jenkins 故障的常见原因。
  • 丢弃旧的构建 (Discard Old Builds): 配置作业(尤其是高频率的作业)自动丢弃旧的构建记录和构建产物。这对于管理磁盘空间至关重要。在流水线作业 (Pipeline jobs) 中,使用 options 指令:
  • options { buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '5')) }
  • 在自由风格作业 (Freestyle jobs) 中,使用作业配置中的 ‘Discard old builds’ 设置。
  • 工作区清理 (Workspace Cleanup): 使用工作区清理插件(如 ‘Workspace Cleanup Plugin’)或在流水线 (Pipelines) 中使用 cleanWs() 步骤,在构建之前或之后清除工作区内容,防止遗留文件导致问题或占用过多磁盘空间。
  • 归档必要的构建产物 (Archive Necessary Artifacts): 只归档后续使用或部署真正需要的构建产物。避免归档大型中间文件。
  • 定期重启 (Regular Restarts): 尽管 Jenkins 可以长时间运行,但定期的计划重启(例如在维护窗口期间)有助于清除内存泄漏或应用待处理的更新。
  • 插件维护 (Plugin Maintenance): 定期查看已安装的插件 (Manage Jenkins → Plugins → Installed)。卸载未使用的插件以减少开销和潜在的安全漏洞。保持已安装插件的更新。

这在“备份策略”章节中有详细介绍。关键点包括:

  • 确定关键数据: 主要包括 JENKINS_HOME 目录。
  • 选择策略: 全量 JENKINS_HOME 备份、使用备份插件(如 ThinBackup)、利用配置即代码 (Configuration as Code)(JCasC, Job DSL, Jenkinsfile)或组合使用。
  • 定期安排: 频繁执行备份(例如每天)。
  • 安全存储: 将备份保存在单独、安全的位置。
  • 测试恢复: 定期测试你的恢复流程,确保其可行性。

如果 Jenkins 是作为服务安装的(常见于原生软件包或 Docker 环境):

  • 启动/停止/重启: 使用标准的服务管理命令:
  • sudo systemctl start jenkins
  • sudo systemctl stop jenkins
  • sudo systemctl restart jenkins
  • sudo systemctl status jenkins
  • (命令可能因操作系统/init 系统略有不同,例如 service jenkins start)
  • 配置: 服务配置(如 JAVA_HOME、Jenkins 启动参数、JENKINS_HOME 位置、端口)通常在系统配置文件中管理(例如 Linux 上的 /etc/default/jenkins 或 /etc/sysconfig/jenkins)。

虽然推荐使用服务管理方式,但这些 URL 有时可用于快速操作(需要适当权限):

  • http://<jenkins_url>/safeExit - 阻止新构建启动。
  • http://<jenkins_url>/safeRestart - 等待正在运行的构建完成后重启 Jenkins。
  • http://<jenkins_url>/exit - 立即强制关机。
  • http://<jenkins_url>/restart - 立即强制重启。
  • http://<jenkins_url>/reload - 从磁盘重新加载配置。

持续的维护能确保你的 Jenkins 实例保持可靠,为你的 CI/CD 流水线奠定基础。