运维工单系统搭建:零基础部署与排错指南

运维工单系统搭建的核心目标是让内部或客户的故障申报、变更申请有统一入口,并且每一步操作都能被记录和追踪。
如果你手头只有一台云服务器,希望用最短路径跑起一套能用的工单系统,下面的步骤可以直接照做。

准备环境与软件选型

开始之前,请确认服务器满足以下条件:

  • 操作系统:Ubuntu 22.04 或 CentOS 7.9 以上,本文命令以 Ubuntu 为例。
  • 配置建议:至少 2 核 4G 内存,系统盘 40G 以上。
  • 网络:已放行 80、443 端口,如果使用云服务器安全组,需要同时在安全组和系统防火墙中放行。
  • 软件依赖:Docker 24 以上、Docker Compose v2、MySQL 8.0(可用容器方式运行)、Nginx(用于反向代理)。

本文选用开源工单系统 osTicket 作为示例,因为它部署简单、依赖少,适合零基础用户快速验证流程。
如果你后续需要更复杂的流程引擎,可以再评估其他方案。

登录服务器后,先更新系统并安装基础工具:

apt update && apt upgrade -y
apt install -y curl wget git vim unzip

安装Docker与Docker Compose

使用官方脚本安装 Docker,避免手动配置源带来的版本问题:

curl -fsSL https://get.docker.com | bash
systemctl enable docker
systemctl start docker
docker --version

如果输出类似 Docker version 24.x.x,说明安装成功。
接着安装 Compose 插件:

apt install -y docker-compose-plugin
docker compose version

看到 Docker Compose version v2.x.x 即可继续。

用Docker Compose启动工单系统

创建一个独立目录,避免文件散落在根目录:

mkdir -p /opt/osticket && cd /opt/osticket

新建 docker-compose.yml 文件,内容如下:

version: '3.8'
services:
  db:
    image: mysql:8.0
    container_name: osticket-db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ChangeThisRootPass
      MYSQL_DATABASE: osticket
      MYSQL_USER: osticket
      MYSQL_PASSWORD: ChangeThisUserPass
    volumes:
      - ./db_data:/var/lib/mysql

  osticket:
    image: osticket/osticket:latest
    container_name: osticket-app
    restart: always
    depends_on:
      - db
    ports:
      - "8080:80"
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: osticket
      MYSQL_USER: osticket
      MYSQL_PASSWORD: ChangeThisUserPass
    volumes:
      - ./ost_data:/var/www/html

注意:请把 ChangeThisRootPass 和 ChangeThisUserPass 替换成你自己的强密码。

保存后启动服务:

docker compose up -d

查看容器状态:

docker compose ps

预期结果是 osticket-db 和 osticket-app 都显示 Up 或 running。
如果 osticket-app 反复重启,用 docker compose logs osticket 查看日志,通常是数据库连接参数写错。

配置Nginx反向代理并验证访问

直接用 IP 加 8080 端口访问不方便,也不安全。
用 Nginx 做反向代理,把 80 端口映射到工单系统。

安装 Nginx:

apt install -y nginx
systemctl enable nginx

新建配置文件 /etc/nginx/sites-available/osticket:

server {
    listen 80;
    server_name your_domain_or_ip;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

把 your_domain_or_ip 换成你的域名或服务器公网 IP。
启用配置并重载 Nginx:

ln -s /etc/nginx/sites-available/osticket /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

nginx -t 返回 syntax is ok 和 test is successful 才算配置正确。

浏览器访问 http://你的域名或IP,应该能看到 osTicket 的安装向导页面。
按照提示填写数据库地址、库名、用户名和密码,数据库地址填 db(即 Compose 中的服务名),而不是 localhost。

高频报错与避坑要点

502 Bad Gateway

最常见原因是后端容器没起来。
先执行 docker compose ps 确认 osticket-app 状态,再执行 docker compose logs osticket 看具体报错。
如果日志提示连接数据库失败,检查 docker-compose.yml 中的数据库密码是否一致,修改后执行 docker compose down && docker compose up -d 重建。

数据库连接超时

MySQL 8.0 默认认证插件是 caching_sha2_password,部分旧版工单系统镜像可能不兼容。
如果日志明确提示认证插件问题,可以在 MySQL 容器中执行:

ALTER USER 'osticket'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

但更推荐的做法是选择明确支持 MySQL 8.0 的工单系统版本,避免手动改认证方式带来后续升级隐患。

端口冲突

如果服务器上已有其他 Web 服务占用了 80 端口,Nginx 会启动失败。
用 ss -tlnp | grep :80 查看占用进程,要么停掉冲突服务,要么把工单系统的 Nginx 监听端口改成 8081 等空闲端口。

数据持久化

Compose 文件中已经通过 volumes 把数据库和工单附件挂载到宿主机。
删除容器不会丢数据,但删除 /opt/osticket 目录会导致数据丢失。
建议定期备份 db_data 和 ost_data 两个目录到远程存储。

验证搭建结果

完成以上步骤后,按以下清单逐项确认:

  1. docker compose ps 两个容器均为 Up 状态。
  2. 浏览器访问域名或 IP,能打开工单系统登录页或安装向导。
  3. 提交一条测试工单,能在后台看到记录,且附件能正常上传。
  4. nginx -t 返回成功,且 systemctl status nginx 为 active (running)。
  5. 重启服务器后,执行 docker compose ps 确认容器自动启动,无需手动干预。

如果以上全部通过,说明运维工单系统搭建已经完成基础可用状态。
后续可以根据团队需要配置邮件通知、工单分类和 SLA 规则。

分享到:
上一篇
从零搭建运维自动化平台:Ansible 控制机部署与首个任务验证
下一篇
运维值班与排班管理:用表格和脚本搭建可执行的值班制度
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意