Administrator
发布于 2026-04-02 / 18 阅读
0
0

部署 osTicket 企业工单系统(ITSM)

前言

随着企业信息化与安全运维要求不断提高,内部网络开通、防火墙策略变更等操作必须规范化、流程化、可审计,osTicket 作为一款轻量、开源、易用的企业级 ITSM 工单系统,能够帮助企业实现申请 — 审批 — 执行 — 留痕的全流程管理,避免随意操作带来安全风险,为了建立标准化运维流程、实现操作可追溯,本次实践部署 osTicket 企业工单系统,完成环境搭建、系统安装、部门配置、表单自定义、工单审批流程等全步骤,掌握企业真实运维审批体系的搭建方法

osTicket 工单系统是干什么的?

我们把公司的网络 / 安全运维想象成一个办事大厅

  • osTicket:办事大厅的综合窗口 + 审批系统

  • 用户:来提交申请的人(申请开通网络、改防火墙)

  • 管理员 / 运维:窗口审核人员、办事人员

  • MySQL:存放所有工单、用户、记录的档案柜

  • Apache + PHP:办事大厅的办公环境

一句话:osTicket = 企业内部办事大厅,所有敏感操作必须提单、审批、留痕,不能私下办

这么做会出现什么结果

  • 成功部署 osTicket 工单系统,可通过浏览器正常访问、登录

  • 用户只能通过工单系统提交网络开通、防火墙变更申请,无法直接操作

  • 所有工单需经运维部审批后才能执行,审批过程、操作记录全程留痕

  • 管理员可查看所有工单统计、审批记录,便于后续追溯和管理

  • 系统稳定、轻量,日常使用无压力

为什么要这么做

  • 规范流程:避免随意开通网络、变更防火墙策略,减少安全隐患

  • 责任明确:审批流程划分权责,出现问题可快速定位责任人

  • 合规可追溯:所有操作留痕,满足企业运维、安全审计要求

  • 简单易维护:osTicket 开源免费,适配清华源,部署和管理成本低

  • 贴合实战:模拟企业 ITSM 运维场景,为后续学习、工作打基础

实验前准备

一、环境要求

  • 系统:Ubuntu24.04 LTS

  • 网络:服务器可访问外网,开放 80 端口

  • 权限:拥有 root 或 sudo 权限

二、前置准备

a.操作命令

先更换清华源、更新系统,避免下载缓慢或失败

# 更换清华源(Ubuntu24.04)
sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装基础工具
sudo apt install -y wget curl git unzip

三、实验步骤

1.安装 LAMP 环境

a.学习重点

osTicket 必须运行在 Apache + MySQL + PHP 环境下,打比方来说LAMP 就是办事大厅的房子、桌椅、电脑,没有环境,工单系统跑不起来,这样的目的其实就是Apache 提供网页服务、MySQL 存储数据、PHP 负责逻辑处理,三者缺一不可

  • Apache:大门与窗口

  • MySQL:档案柜

  • PHP:办事员

b.操作命令

Apache+MySQL+PHP,工单系统依赖

# 安装 LAMP 组件
sudo apt install -y apache2 mariadb-server php php-cli php-mysql php-gd php-imap php-intl php-mbstring php-curl php-xml php-zip php-apcu libapache2-mod-php

# 启动并设置开机自启
sudo systemctl start apache2 mariadb
sudo systemctl enable apache2 mariadb

# 验证状态
sudo systemctl status apache2 mariadb

b.结果图:

2.配置 MySQL 数据库

a.学习重点

给 osTicket 创建一个专用数据库 + 专用账号,打比方来说就是给工单系统开一个独立档案室 + 专属管理员钥匙,这是为了避免数据混乱

b.操作命令

# 创建数据库(库名:yxwa_osticket)
sudo mysql -e "CREATE DATABASE yxwa_osticket CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

# 创建数据库用户
sudo mysql -e "CREATE USER 'yxwa'@'localhost' IDENTIFIED BY 'yxwa123';"

# 授权用户操作数据库
sudo mysql -e "GRANT ALL PRIVILEGES ON yxwa_osticket.* TO 'yxwa'@'localhost';"
sudo mysql -e "FLUSH PRIVILEGES;"

# 验证
sudo mysql -u yxwa -pyxwa

# 在mysql里输入
SHOW DATABASES;

c.结果图

  • 看到yxwa_osticket这个表名,代表创建成功

3.下载并部署 osTicket

a.学习重点

这一步进入 Apache 根目录,下载、解压、重命名 osTicket,并配置正确权限,就像把软件安装到指定目录,并给运行账号授权,权限不对会导致网页无法访问、报错 403

b.操作命令

# 进入 Apache 网站根目录
cd /var/www/html

# 下载 osTicket
sudo curl -L -O https://github.com/osTicket/osTicket/releases/download/v1.18.1/osTicket-v1.18.1-php8.2.zip

# 解压文件
sudo unzip osTicket-v1.18.1.zip

# 重命名目录(方便访问,简化路径)
sudo mv upload yxwa_osticket

# 配置目录权限(避免访问报错)
sudo chown -R www-data:www-data /var/www/html/yxwa_osticket
sudo chmod -R 755 /var/www/html/yxwa_osticket

c.结果图

4.创建并配置 osTicket 配置文件

a.学习重点

osTicket 安装必须依赖 ost-config.php 配置文件,系统只提供示例文件,需要手动复制重命名,同时要配置正确权限,安装完成后删除 setup 目录防止恶意利用,这是系统安全与正常运行的关键

a.操作命令

# 1. 进入osTicket的include目录
cd /var/www/html/yxwa_osticket/include

# 2. 重命名示例配置文件为正式配置文件
sudo cp ost-sampleconfig.php ost-config.php

# 3. 给配置文件设置正确权限
sudo chown www-data:www-data ost-config.php
sudo chmod 660 ost-config.php

# 安装完成后,建议把权限改回
sudo chmod 640 /var/www/html/yxwa_osticket/include/ost-config.php

# 安装完成后,必须删除 setup 目录,防止被恶意利用
sudo rm -rf /var/www/html/yxwa_osticket/setup

c.为什么

osTicket 安装需要一个核心配置文件 ost-config.php,系统自带了模板文件 ost-sampleconfig.php,但没有自动重命名,就会导致安装程序找不到配置文件,报错 配置文件缺失

5.配置 Apache 虚拟主机

确保能正常访问

a.学习重点

这一步创建独立站点配置,指定网站根目录、开启 rewrite 规则、设置日志路径,确保浏览器能正常访问 osTicket,打比方来说,告诉 Apache:访问服务器时,自动进入 osTicket 系统,这是为了给办事大厅挂门牌,用户一进门就找到对的窗口,如果配置错误会导致无法打开页面

b.操作命令

sudo tee /etc/apache2/sites-available/yxwa_osticket.conf << 'EOF'
<VirtualHost *:80>
    ServerAdmin admin@yxwa.com
    DocumentRoot /var/www/html/yxwa_osticket
    # 本地访问用localhost,局域网访问替换为服务器IP
    ServerName localhost
    <Directory /var/www/html/yxwa_osticket>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/yxwa_osticket_error.log
    CustomLog ${APACHE_LOG_DIR}/yxwa_osticket_access.log combined
</VirtualHost>
EOF

# 检查语法(必须返回 Syntax OK)
sudo apache2ctl configtest

# 启用站点
sudo a2ensite yxwa_osticket.conf

# 开启rewrite模块
sudo a2enmod rewrite

# 重启Apache生效
sudo systemctl restart apache2

# 查看运行状态
sudo systemctl status apache2

c.结果图

6.配置 PHP

a.学习重点

设置 PHP 时区为 Asia/Shanghai,避免工单时间错乱,避免工单时间错乱,相当于给办事大厅挂准确时钟,不然审批时间对不上

b.操作命令

# 设置时区为上海(避免时间错乱)
sudo sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/' /etc/php/8.3/apache2/php.ini

# 重启 Apache 生效
sudo systemctl restart apache2

#验证
cat /etc/php/8.3/apache2/php.ini | grep date.timezone

c.结果图

7. Web 页面初始化

a.学习重点

通过浏览器访问 osTicket 完成可视化安装,填写数据库信息、管理员账号,完成系统初始化,这一步验证 LAMP 环境、配置文件、权限是否全部正常,出现安装页面代表部署成功

b.浏览器访问

  • 浏览器访问:http://你的ip/yxwa_osticket

  • 访问web页面结果图:点击 Continue

  • 创建的结果图:创建时以下内容都必须填入,点击 install now

  • 结果图

8.配置工单审批流程

a.学习重点

创建专属审批部门,用于统一处理网络开通、防火墙变更申请,实现权责清晰,相当于企业里成立专门的审批小组,所有相关工单自动归集,我们要创建:

  • 审批部门

  • 工单模板

  • 自定义表单

  • 用户权限

  • 审批流程


b.以下是步骤图

  1. 登录后台:http://你的ip/yxwa_osticket/scp,用户名 Demo,密码 Demo123

执行结果

创建审批部门(网络运维部)

  1. 登录 osTicket 管理员后台:http://你的ip/yxwa_osticket/scp/

  2. 点击顶部「Agents」-> 下拉选择「Departments」

  3. 点击右上角「Add Department」

  4. 填写:

    • Name网络运维部

    • StatusActive

    • 其他默认,点击「Create Department」

创建自定义表单

创建必填字段表单(申请人、申请理由、开通范围),确保用户提单时信息完整,便于审批与审计。就像打印标准化申请单,避免信息缺失无法处理,实现必填字段:

a.点击顶部 Managa -> 下拉选择 Forms

b.点击右上角 Add New Form

c.填写表单基础信息:

  • Title运维申请工单表单

  • Instructions请填写完整申请信息,带*为必填项(可选)

  1. 添加 3 个必填字段:

Label(标签)

Type(类型)

Visibility(可见性)

申请人

Short Answer

Required(必填)

申请理由

Long Answer

Required(必填)

开通范围

Short Answer

Required(必填)

  • 流程图

网络开通申请

a.点击顶部 Manage -> 下拉选择 Help Topics

b.点击右上角 Add New Help Topic

  1. 【Help Topic Information】标签页

    • Topic网络开通申请

    • StatusActive

    • TypePublic(公开,用户可提单)

    • Parent Topic— Top-Level Topic —

  1. 【New ticket options】标签页

  • Department:选择 网络运维部 (工单自动分配至审批部门)

  • PriorityNormal

  • 其他默认,取消勾选 Disable new ticket auto-response (开启自动回复)

  1. 【Forms】标签页

  • Add Custom Form 下拉选择 运维申请工单表单

  • 确认 3 个字段全部启用,点击 Add Topic 保存

  1. 模板1:网络开通申请(必填项:申请人、申请理由、开通范围)

  • Forms标签页

防火墙策略变更申请

创建两种常用工单模板,绑定部门、优先级、自定义表单,实现用户自助提单、系统自动分配审批人,这是企业 ITSM 流程标准化的核心

  • 步骤和4一样,结果图:

创建用户(仅提单权限)

  • 创建普通用户账号,仅开放提单权限,不能审批、不能管理后台,实现权限最小化管控,是为了企业安全规范

  1. 切换进客户端区域

  2. 点击 Users -> Add User

  3. 填写:

    • Email Address

    • Full Name

    • 点击 Add User保存

    1. 结果图:会多出一个用户如 sly 点击它,去激活用户。

  4. 进入sly用户界面,再点击Manage Account,设置用户,和用户密码,再保存

  5. 用户登录前台,提交工单

  6. 结果

运维审批验证

  • 管理员登录后台处理待审批工单,完成分配、备注、关闭流程,并解决部门权限看不到工单的常见问题,这是模拟企业真实运维审批的完整闭环

  1. 管理员登录后台,在 Tickets -> Open 看到待审批工单

  2. 点击工单,审批通过后分配给执行人员,添加内部备注

  3. 执行完成后,将工单设为「Resolved」,通知申请人确认

  1. 如果用户申请了表单,但登陆进来,没看到此工单,很有可能是Admin 账号默认只属于Support部门,没有权限查看 网络运维部 的工单,所以列表里看不到,这个时候,我们可以:

a. 进入 Admin Panel -> Agents -> Agents

b. 编辑你的admin账号

c. 在 Primary Department(主部门)里,添加 网络运维部

d. 保存后,刷新 Tickets -> Open 页面,立刻就能看到 #752434



评论