不灭的焱

革命尚未成功,同志仍须努力 下载Java21

作者:AlbertWen  添加时间:2026-06-21 13:50:50  修改时间:2026-06-29 16:31:15  分类:04.运维体系  编辑

osTicket 工单系统详细使用教程

下面以 osTicket 自建版 1.18.x / 1.17.x 为例,菜单名称同时保留英文,便于对照界面。

截至 2026 年 6 月,最新正式版为 v1.18.4,该版本包含 2026 年 6 月安全补丁。官方安装文档与下载页对 PHP 版本范围存在少许差异,因此新部署采用 PHP 8.2 是目前两者兼容范围的稳妥选择。(GitHub)

一、先理解 osTicket 的核心概念

名称 作用
用户 User 提交、查看和回复工单的客户或公司员工
客服 Agent 处理工单的技术员、客服、运维或审批人员
部门 Department 决定工单归属和客服可见范围,如 IT、财务、人事
角色 Role 决定客服在某个部门可以执行哪些操作
团队 Team 将不同部门的客服组成跨部门处理组
帮助主题 Help Topic 用户提交工单时选择的业务分类
表单 Form 收集设备、地点、故障类型等附加信息
工单过滤器 Ticket Filter 新工单创建时执行自动分流、分配、拒绝等动作
SLA 决定工单经过多少工作时间后变成“超时”
任务 Task 工单内部的待办事项,只对客服可见

最重要的关系可以记成:

Help Topic / 邮箱 / Filter
          ↓
       Department
          ↓
     Agent 或 Team
          ↓
        Role 权限

部门主要决定客服能够看到哪些工单;角色决定客服能对这些工单做什么;团队适合组织跨部门专家处理特定问题。(osTicket 文档)

二、安装 osTicket

已经安装完成的,可以直接跳到第三部分。

1. 准备运行环境

建议环境:

Web 服务器:Apache 或 IIS
PHP:8.2
数据库:MySQL 5.5+ 或兼容的 MariaDB
HTTPS:强烈建议

常用 PHP 扩展包括:

mysqli
imap
mbstring
intl
xml
gd
fileinfo
curl
zip
opcache

其中 IMAP 用于邮件收取,GD 用于图片处理,mbstring 和 intl 对中文及多语言处理较重要。安装程序会检查必要条件。(osTicket 文档)

2. 创建数据库

在 MySQL 中创建数据库和专用账号,例如:

CREATE DATABASE osticket
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

CREATE USER 'osticket'@'localhost'
  IDENTIFIED BY '请替换为强密码';

GRANT ALL PRIVILEGES
  ON osticket.*
  TO 'osticket'@'localhost';

FLUSH PRIVILEGES;

安装期间使用的数据库账号必须对该数据库具有完整权限。(osTicket 文档)

3. 上传程序文件

从官方页面下载对应版本,解压后,将压缩包中 upload 目录里的全部文件复制到网站目录,例如:

/var/www/html/support/

确保安装程序能够写入:

include/ost-config.php

然后访问:

https://你的域名/support/setup/

填写:

  • Helpdesk 名称
  • 默认支持邮箱
  • 管理员姓名、邮箱、账号和密码
  • 数据库主机、数据库名、账号和密码

安装程序会创建数据表并写入配置文件。(osTicket 文档)

4. 安装后的安全处理

安装成功后立即完成:

1. 删除 setup 目录
2. 取消 include/ost-config.php 的写权限
3. 启用 Helpdesk
4. 配置 HTTPS
5. 设置正确的时区

Linux 权限示例:

chmod 0644 /var/www/html/support/include/ost-config.php
rm -rf /var/www/html/support/setup

官方明确要求安装后删除 setup 目录,并撤销配置文件写权限。(osTicket 文档)

5. 登录地址

用户门户:

https://你的域名/support/

客服和管理员后台:

https://你的域名/support/scp/

管理员登录后,可在右上角切换:

Agent Panel
Admin Panel

6. 安装中文语言包

在下载 osTicket 时选择与核心版本匹配的中文语言包,得到 .phar 文件,将其放入:

include/i18n/

然后进入:

Admin Panel
→ Settings
→ System
→ System Languages

将中文设为 Primary Language,或作为 Secondary Language 供用户和客服自行选择。(osTicket)

三、首次初始化配置

建议严格按照以下顺序配置,避免后面反复修改。

1. 公司与系统信息

进入:

Admin Panel
→ Settings
→ Company

配置:

  • 公司名称
  • 公司地址和联系电话
  • Helpdesk 名称
  • 公司 Logo
  • 登录背景
  • 首页欢迎语
  • 系统离线页面
  • 提交成功页面

公司信息可以在邮件模板、签名和自动回复中通过变量调用。(osTicket 文档)

然后进入:

Admin Panel
→ Settings
→ System

重点设置:

  • Helpdesk URL
  • 默认时区
  • 日期格式
  • 默认语言
  • 系统日志保留期限
  • 富文本编辑
  • 附件存储方式
  • 单个附件最大尺寸
  • 是否要求登录后才能下载附件

PHP 中的 upload_max_filesizepost_max_size 也必须大于 osTicket 设置的附件大小。(osTicket 文档)

四、建立部门、角色、客服和团队

1. 创建部门

进入:

Admin Panel
→ Agents
→ Departments
→ Add New Department

推荐示例:

IT 服务台
网络运维
应用系统
财务支持
人事支持

部门配置重点:

  • Public / Private:是否向用户显示部门名称。
  • SLA:该部门默认时限。
  • Schedule:部门工作时间。
  • Manager:部门负责人。
  • Email:该部门使用的回复邮箱。
  • Signature:部门邮件签名。
  • Ticket Assignment:是否限制只能分配给本部门人员。

如果不希望客户知道内部真实组织结构,可以把部门设为 Private,并通过 Help Topic 对外展示业务分类。(osTicket 文档)

2. 创建角色

进入:

Admin Panel
→ Agents
→ Roles
→ Add New Role

推荐至少创建:

一线客服
二线工程师
部门主管
只读审计

常见权限包括:

  • 查看工单
  • 回复工单
  • 创建内部备注
  • 分配或转移工单
  • 修改工单
  • 关闭工单
  • 删除工单
  • 合并工单
  • 管理用户
  • 查看统计数据

角色是按照“部门”授予客服的。同一个客服可以在 IT 部门拥有“主管”角色,在财务部门只有“只读”角色。(osTicket 文档)

3. 添加客服账号

进入:

Admin Panel
→ Agents
→ Agents
→ Add New Agent

配置:

  • 姓名
  • 邮箱
  • 用户名
  • 主部门
  • 主角色
  • 扩展部门访问权限
  • 管理员权限
  • 是否只允许查看直接分配给自己的工单
  • 是否处于休假模式

“休假模式”开启后,该客服不会出现在自动分配列表中,也不会收到相关通知。(osTicket 文档)

4. 创建跨部门团队

进入:

Admin Panel
→ Agents
→ Teams
→ Add New Team

例如:

重大故障处理组
ERP 专家组
VIP 客户支持组
安全事件响应组

团队成员可以来自不同部门。工单可以直接分配给团队,再由团队中的成员认领或处理。(osTicket 文档)

五、配置帮助主题、列表和自定义表单

1. 创建自定义列表

进入:

Admin Panel
→ Manage
→ Lists
→ Add New Custom List

例如创建“设备类型”:

台式机
笔记本
打印机
服务器
交换机
手机
其他

也可以创建:

  • 办公地点
  • 故障类型
  • 业务系统
  • 资产类别
  • 影响范围
  • 服务区域

自定义列表可以作为表单中的下拉框、自动补全或多选字段。(osTicket 文档)

2. 创建自定义表单

进入:

Admin Panel
→ Manage
→ Forms
→ Add New Custom Form

例如创建“IT 故障信息”表单:

设备类型:下拉列表,必填
资产编号:短文本
办公地点:下拉列表,必填
联系电话:电话
故障发生时间:日期时间
影响人数:数字
错误截图:文件上传
远程协助许可:复选框

字段可以设置为:

  • Enabled:启用
  • Visible:用户可见
  • Required:提交时必填
  • Editable:提交后可编辑
  • Internal:仅客服可见
  • Require Entry:未填写前不能完成流程

自定义表单需要绑定到 Help Topic 后,才会在对应的新建工单页面出现。(osTicket 文档)

3. 创建帮助主题

进入:

Admin Panel
→ Manage
→ Help Topics
→ Add New Help Topic

推荐结构:

IT 支持
├─ 账号与密码
├─ 电脑故障
├─ 网络故障
├─ 打印机故障
└─ 软件安装

人事服务
├─ 入职办理
├─ 离职办理
└─ 考勤与休假

每个 Help Topic 可以指定:

  • 默认部门
  • 默认优先级
  • 默认 SLA
  • 默认状态
  • 自动分配的客服或团队
  • 自动回复模板
  • 提交成功页面
  • 需要显示的自定义表单

Help Topic 是 osTicket 最重要的分流入口。用户只看到“网络故障”,不需要知道该工单内部实际进入“基础设施运维部”。(osTicket 文档)

六、配置 SLA 与工作时间

1. 创建工作时间

进入:

Admin Panel
→ Manage
→ Schedules
→ Add New Schedule

示例:

名称:标准工作时间
星期一至星期五:09:00–12:00,13:00–18:00
星期六、星期日:不工作
节假日:添加春节、国庆等例外日期

建议使用 Schedule 的诊断功能,验证未来 8、24 或 48 个工作小时如何计算。Schedule 可以设置为系统默认、部门默认或某个 SLA 专用。(osTicket 文档)

2. 创建 SLA

进入:

Admin Panel
→ Manage
→ SLA Plans
→ Add New SLA Plan

示例:

P1 紧急:2 个工作小时
P2 高:8 个工作小时
P3 普通:24 个工作小时
P4 低:72 个工作小时

SLA 中的 Grace Period 用于决定工单何时进入 Overdue。官方 SLA 页面将它描述为预期关闭时限,因此不要把它直接等同于同时包含“首次响应时间”和“解决时间”的双指标 SLA。人工设置的 Due Date 优先于 SLA。(osTicket 文档)

SLA 可绑定到:

系统默认设置
部门
Help Topic
Ticket Filter
单个工单

通常推荐优先级:

Ticket Filter
→ Help Topic
→ Department
→ System Default

七、配置邮箱自动收发工单

这是 osTicket 最容易出问题、也是最重要的部分。

1. 添加支持邮箱

进入:

Admin Panel
→ Emails
→ Emails
→ Add New Email

例如:

support@example.com
hr@example.com
finance@example.com

配置该邮箱对应的:

  • 默认部门
  • 默认 Help Topic
  • 默认优先级
  • 显示名称

保存后会出现:

Remote Mailbox
Outgoing (SMTP)

(osTicket 文档)

2. 配置收件邮箱

Remote Mailbox 中设置:

协议:IMAP
服务器:邮件服务商提供的 IMAP 主机
端口:通常为安全 IMAP 端口
加密:SSL/TLS
文件夹:INBOX
认证方式:OAuth2 或 Basic
获取频率:5 分钟

官方推荐安全 IMAP。Microsoft 365、Google Workspace 等主流服务正在逐步淘汰传统用户名密码认证,建议安装与核心版本匹配的 OAuth2 插件。(osTicket 文档)

OAuth2 插件安装位置:

include/plugins/

后台安装:

Admin Panel
→ Manage
→ Plugins
→ Add New Plugin

安装后必须将插件状态改为 Active。

3. 配置 SMTP 发件

进入邮箱的:

Outgoing (SMTP)

填写:

  • SMTP 主机
  • 端口
  • SSL/TLS
  • 用户名
  • OAuth2 或密码认证
  • 发件地址
  • 是否启用认证

不建议依赖 PHP 内置的 mail(),生产环境应使用 SMTP,以降低退信和进入垃圾邮件的概率。(osTicket 文档)

4. 开启邮件获取

进入:

Admin Panel
→ Emails
→ Settings

启用:

Email Fetching
Fetch on auto-cron
或外部 Cron

只开启 Email Fetching 并不会自动周期性检查邮箱,还需要执行 api/cron.php。生产环境建议配置真实 Cron,而不是依赖客服登录触发的 auto-cron。(osTicket 文档)

Linux Cron 示例:

*/5 * * * * www-data /usr/bin/php /var/www/html/support/api/cron.php

实际使用时替换:

www-data
PHP 路径
osTicket 安装路径

Windows 可通过“任务计划程序”定期执行:

C:\PHP\php.exe C:\inetpub\wwwroot\support\api\cron.php

5. 测试邮箱

进入:

Admin Panel
→ Emails
→ Diagnostics

发送测试邮件。然后完成以下闭环测试:

外部邮箱发信给 support@
→ osTicket 自动创建工单
→ 用户收到自动确认
→ 客服后台回复
→ 用户收到邮件
→ 用户直接回复邮件
→ 回复内容追加到原工单

Diagnostics 用于验证外发邮件配置是否正常。(osTicket 文档)

八、客服日常处理工单

客服登录后进入:

Agent Panel
→ Tickets

默认队列包括:

  • Open:未关闭工单
  • Answered:客服已回复,等待用户
  • My Tickets:分配给本人或所属团队
  • Overdue:超过 SLA 或 Due Date
  • Closed:已关闭工单

工单通常先按优先级、再按最后更新时间排序。(osTicket 文档)

标准处理流程

1. 打开工单

检查:

  • 工单标题和正文
  • 用户及所属组织
  • Help Topic
  • 部门
  • 优先级
  • SLA 和到期时间
  • 自定义表单信息
  • 附件
  • 历史工单

2. 认领或分配

可以:

Assign to Me
分配给其他 Agent
分配给 Team
Transfer 到其他 Department

“分配”通常是更换负责人;“转移”通常是更换部门。

3. 回复用户

在 Reply 区域输入内容,可使用:

  • 附件
  • 富文本
  • 预设回复 Canned Response
  • 部门或个人签名
  • Collaborator 协同人
  • 回复后状态

客服回复会出现在用户门户,并通常通过邮件发送给用户和协同人。(osTicket 文档)

4. 添加内部备注

选择:

Post Internal Note

内部备注适合记录:

排查步骤
内部沟通
账号密码已重置
供应商反馈
审批意见
现场处理记录

内部备注不会展示给普通用户。

5. 创建任务

在工单中创建 Task,例如:

网络组检查交换机
桌面组更换电脑
财务确认付款
供应商提供补丁

与工单关联的任务未完成时,该工单不能关闭。Task 只对具有对应部门访问权限的客服可见。(osTicket 文档)

6. 修改状态

推荐自定义状态:

Open
处理中
等待用户
等待供应商
已解决
Closed

osTicket 的自定义状态底层必须属于:

Open State
或
Closed State

可在以下位置管理:

Admin Panel
→ Manage
→ Lists
→ Ticket Statuses

(osTicket 文档)

7. 合并、关联和删除

  • Merge Tickets:将多个工单线程合并进一个主工单。
  • Link Tickets:只建立关联,不改变原工单内容。
  • Delete Ticket:永久删除,无法恢复。

删除权限应只授予少数管理员或主管。(osTicket 文档)

九、用户如何提交和查看工单

用户可以通过三种方式提交:

1. 用户门户网页
2. 发送邮件到支持邮箱
3. 客服代用户创建

网页提交步骤:

访问用户门户
→ Open a New Ticket
→ 填写邮箱和姓名
→ 选择 Help Topic
→ 填写主题、问题说明和自定义字段
→ 上传附件
→ Create Ticket

用户查看工单有两种方式:

访客方式:工单号 + 邮箱,系统向邮箱发送访问链接
账号方式:登录后查看该账号下的全部工单

注册用户可以集中查看与自己关联的全部工单;访客访问一般只针对指定工单。(osTicket 文档)

十、配置自动分流规则

进入:

Admin Panel
→ Manage
→ Ticket Filters
→ Add New Filter

过滤器只在新工单创建时执行,不会持续扫描已经存在的工单。过滤器按照 Execution Order 顺序运行。(osTicket 文档)

示例一:财务工单自动分流

条件:
主题包含“发票”
或正文包含“报销”

动作:
Department = 财务支持
Help Topic = 财务/发票
Priority = Normal
Auto Assign = 财务客服组

示例二:VIP 客户

条件:
用户邮箱域名为 vipcustomer.com

动作:
Priority = Emergency
SLA = VIP 2 小时
Auto Assign = VIP 支持组
发送专用自动回复

示例三:拦截垃圾邮件

条件:
发件人地址命中黑名单
或主题包含指定垃圾关键词

动作:
Reject Ticket
Stop Processing

过滤器还可以修改状态、SLA、Help Topic、部门、优先级和负责人,或者附加自动回复。(osTicket 文档)

十一、知识库和预设回复

1. 启用知识库

进入:

Admin Panel
→ Settings
→ Knowledgebase

启用:

Enable Knowledge Base
Canned Responses

可以选择是否要求用户登录后才能查看知识库。(osTicket 文档)

2. 创建知识库文章

进入:

Agent Panel
→ Knowledgebase

推荐分类:

账号与密码
电脑使用
网络问题
业务系统
打印机
常见流程

文章示例:

如何重置域账号密码
VPN 无法连接的排查方法
打印机驱动安装方法
新员工账号申请流程

3. 创建 Canned Response

预设回复适合高频场景:

已收到,正在处理中
请提供错误截图
请提供设备资产编号
请重启后再次测试
问题已解决,请确认

客服调用预设回复后仍可在发送前修改内容。

十二、搜索、队列和统计

高级搜索

在:

Agent Panel
→ Tickets
→ Advanced Search

可按以下字段组合查询:

  • 部门
  • Help Topic
  • 状态
  • 优先级
  • 用户邮箱
  • 组织
  • 创建日期
  • 最后更新时间
  • 分配人
  • 自定义字段

搜索条件可以保存为个人队列,并自定义显示列和 Quick Filter。(osTicket 文档)

推荐保存:

今天新增工单
我的超时工单
等待用户超过三天
VIP 未关闭工单
本月已关闭工单
高优先级未分配工单

十三、API 对接

进入:

Admin Panel
→ Manage
→ API Keys

创建 API Key 时需要绑定调用方源 IP。调用时通过:

X-API-Key

请求头发送密钥。osTicket 当前官方 API 主要支持创建工单,不支持通过标准 API 修改或删除既有工单。(osTicket 文档)

JSON 创建工单示例:

curl -X POST "https://support.example.com/api/tickets.json" \
  -H "X-API-Key: 你的API密钥" \
  -H "Content-Type: application/json" \
  -d '{
    "alert": true,
    "autorespond": true,
    "source": "API",
    "name": "张三",
    "email": "zhangsan@example.com",
    "subject": "无法登录业务系统",
    "message": "data:text/plain,登录时提示账号被锁定",
    "ip": "192.0.2.10"
  }'

成功时返回 HTTP 201 Created 和新工单号。(osTicket 文档)

十四、备份、升级与安全

1. 备份内容

必须备份:

MySQL 数据库
osTicket 程序目录
include/ost-config.php
语言包和插件
自定义 Logo
文件系统附件目录
Web 服务器配置
Cron 配置

数据库示例:

mysqldump -u root -p \
  --single-transaction \
  --routines \
  --triggers \
  osticket > osticket-$(date +%F).sql

文件示例:

tar -czf osticket-files-$(date +%F).tar.gz \
  /var/www/html/support

2. 升级步骤

推荐流程:

1. 暂停 Helpdesk
2. 备份数据库和全部文件
3. 确认 PHP 与插件兼容性
4. 使用新版 upload 内容覆盖程序文件
5. 保留现有 ost-config.php
6. 登录 Admin Panel
7. 按升级向导执行数据库迁移
8. 测试创建、收取、回复和关闭工单
9. 删除 setup 目录
10. 重新启用 Helpdesk

官方建议升级或迁移前同时备份数据库和网站文件,并在操作期间暂时将系统离线。(osTicket 文档)

3. 安全建议

至少实施:

强制 HTTPS
及时安装安全版本
删除 setup 目录
限制 ost-config.php 权限
管理员和客服启用 2FA
限制管理员数量
删除权限只给主管
附件要求登录后访问
定期检查 System Logs
定期测试备份恢复

管理员可以在:

Admin Panel
→ Settings
→ Agents
→ Require agents to turn on 2FA

强制客服配置多因素认证。(osTicket 文档)

十五、常见故障排查

邮件收不到

依次检查:

Email Fetching 是否启用
Remote Mailbox 的 IMAP 主机、端口和加密
OAuth2 Token 是否失效
api/cron.php 是否实际运行
服务器是否安装 PHP IMAP 扩展
邮件是否进入其他文件夹
Dashboard → System Logs
邮件服务器日志

最常见的问题是只开启了 Email Fetching,却没有配置 Cron。(osTicket 文档)

邮件发不出去

检查:

SMTP 主机和端口
SSL/TLS 方式
用户名是否为完整邮箱
OAuth2 或密码是否有效
防火墙是否允许出站连接
发件地址是否被邮件服务商授权
Emails → Diagnostics
PHP 或 Web 服务器错误日志

用户回复后生成了新工单

常见原因:

用户修改了邮件主题或删除了工单编号
回复到了未被 osTicket 收取的邮箱
原工单状态被设为不可重新打开
邮件过滤器改变了路由
邮件线程识别信息被网关清除

页面空白或 500 错误

检查:

PHP 版本
缺失的 PHP 扩展
目录所有者和权限
Web 服务器 error.log
PHP error.log
Admin Panel → Dashboard → System Logs

排错期间可以临时开启 PHP 错误显示,但处理完毕后必须关闭,避免泄露路径、数据库或程序信息。官方安装文档也建议结合系统日志、Web 日志和邮件服务器日志排查。(osTicket 文档)

十六、推荐的最小可用配置

初次上线可以先完成这一套:

部门:
IT 服务台、财务、人事

角色:
一线客服、主管

Help Topics:
账号问题、电脑故障、网络问题、软件申请、财务咨询、人事咨询

状态:
Open、处理中、等待用户、已解决、Closed

SLA:
紧急 2 小时、高 8 小时、普通 24 小时、低 72 小时

工作时间:
周一至周五 09:00–18:00

邮箱:
support@、finance@、hr@

自动规则:
按 Help Topic 分部门
VIP 用户自动提高优先级
发票关键词自动进入财务
垃圾邮箱直接拒绝

知识库:
密码重置、VPN、打印机、软件安装

上线前至少完整测试一次:

网页提交工单
邮件创建工单
自动回复
客服回复
用户邮件追问
内部备注
部门转移
任务创建
SLA 超时
工单关闭
用户重新打开
搜索和导出
备份与恢复