🚀 Snipe-IT:可能是最好用的开源IT资产管理系统|从部署到实践全指南
对于企业IT管理者来说,资产管理总是伴随着无尽的Excel表格和混乱的标签贴纸。今天我要介绍的Snipe-IT 将彻底改变这一现状------这款开源资产管理系统在GitHub上已获得9k+ Stars,被全球数千家企业信任使用。废话不多说,让我们开启高效的IT资产管理之旅!
🔍 Snipe-IT是什么?
Snipe-IT是一款基于PHP Laravel框架开发的开源IT资产管理系统 ,用于跟踪设备、许可证、配件等各种IT资产。它提供了完整的资产全生命周期管理解决方案。 核心版本 : 核心优势:
- 📦 资产全生命周期管理:采购→入库→分配→维护→报废
- 🏷️ 条码/二维码支持:手机一扫即可查看资产详情
- 📊 丰富报表功能:资产状态、折旧报表一键生成
- 👥 多租户支持:部门/团队/个人资产管理隔离
- 🔗 API接口丰富:支持与企业现有系统集成
- 🌍 多语言支持:含中文界面(需手动配置)
📊 同类产品对比
特性 | Snipe-IT | GLPI | AssetSonar | Lansweeper |
---|---|---|---|---|
开源类型 | 完全开源 | 开源 | 商业 | 商业 |
部署难度 | ⭐⭐ | ⭐⭐ | ⭐ | ⭐ |
资产类型支持 | ★★★★★ | ★★★★ | ★★★★★ | ★★★★ |
REST API | 完善 | 有限 | 完善 | 有限 |
移动端适配 | 优秀 | 一般 | 优秀 | 无 |
中文支持 | 需配置 | 原生 | 付费 | 付费 |
🛠️ 安装部署指南
环境需求
- 服务器:Linux/Windows/macOS (推荐Linux)
- Web服务器:Apache/Nginx
- PHP:7.4+ (需开启PDO, cURL, GD等扩展)
- 数据库:MySQL 5.7+/MariaDB 10.3+
- 内存:最低1GB,生产环境建议2GB+
方法一:Docker快速部署(推荐)
bash
# 创建数据卷
docker volume create snipe-mysql-data
# 启动容器
docker run -d --name snipe-mysql \
-e MYSQL_ROOT_PASSWORD=yourpassword \
-e MYSQL_DATABASE=snipeit \
-e MYSQL_USER=snipeit \
-e MYSQL_PASSWORD=snipeit \
-v snipe-mysql-data:/var/lib/mysql \
mysql:5.7
docker run -d --name snipeit \
--link snipe-mysql:db \
-p 80:80 \
-e APP_ENV=production \
-e APP_DEBUG=false \
-e DB_HOST=db \
-e DB_DATABASE=snipeit \
-e DB_USERNAME=snipeit \
-e DB_PASSWORD=snipeit \
snipe/snipe-it
方法二:手动安装(Ubuntu示例)
bash
# 安装依赖
sudo apt install -y apache2 mariadb-server php \
php-{mysql,ldap,gd,curl,xml,mbstring,zip} git unzip
# 克隆代码
git clone https://github.com/snipe/snipe-it.git /var/www/snipe-it
# 设置权限
chown -R www-data:www-data /var/www/snipe-it/storage
chmod -R 755 /var/www/snipe-it/storage
# 配置数据库
mysql -u root -p
CREATE DATABASE snipeit;
GRANT ALL ON snipeit.* TO 'snipeit'@'localhost' IDENTIFIED BY 'yourpassword';
FLUSH PRIVILEGES;
EXIT
# 复制配置文件
cp /var/www/snipe-it/.env.example /var/www/snipe-it/.env
# 编辑配置
vi /var/www/snipe-it/.env
# 修改以下关键配置:
APP_URL=http://your-domain.com
DB_HOST=localhost
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=yourpassword
# 安装Composer依赖
cd /var/www/snipe-it
curl -sS https://getcomposer.org/installer | php
php composer.phar install --no-dev --prefer-source
# 生成应用密钥
php artisan key:generate
# 数据迁移
php artisan migrate --seed
# 配置Apache
cat > /etc/apache2/sites-available/snipe-it.conf <<EOF
<VirtualHost *:80>
ServerName your-domain.com
DocumentRoot /var/www/snipe-it/public
<Directory /var/www/snipe-it/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
EOF
a2ensite snipe-it
a2enmod rewrite
systemctl restart apache2
初始化设置
- 访问
http://your-server.com
完成安装向导 - 使用默认管理员账号登录:
- 用户名:[email protected]
- 密码:password
- 务必首次登录后修改管理员密码
- 进入"设置→本地化"配置时区、语言等
🖥️ 核心功能详解
1. 仪表盘总览
- 资产状态统计:已部署/待分配/已报废等
- 即将到期资产:保修/租赁到期提醒
- 最近活动:资产变更记录追踪
- 待处理审批:申请/归还请求
2. 资产管理
添加新资产:
- 进入"资产→创建新资产"
- 填写基本信息:名称、型号、序列号等
- 设置状态:可用→部署中→已部署
- 上传照片/文档附件
- 生成资产标签(支持打印) 批量导入:
csv
资产名称,资产标签,型号,序列号,状态,采购日期,价格
MacBook Pro,MAC-001,MacBook Pro 2021,C02Z12345678,已部署,2023-01-15,12999
ThinkPad T490,THINK-001,ThinkPad T490,PC-123456,可用,2023-02-20,8999
3. 许可证管理
添加软件许可证:
- 许可证名称:Windows 10专业版
- 许可证密钥:XXXXXX-XXXXXX-XXXXXX
- 席位数量:50
- 关联资产:可选绑定具体设备
- 到期提醒:设置提前30天提醒
4. 工单系统
创建维修工单:
- 选择问题资产
- 描述故障现象
- 设置优先级
- 指定维修负责人
- 跟踪维修进度:
- 待处理→维修中→待验收→已完成
5. 报表功能
常用报表类型:
- 资产折旧报表:按财务规则计算资产价值
- 资产审计报告:核对实际资产与系统记录
- 资产到期报告:保修/租赁即将到期资产
- 用户持有资产:按员工统计分配情况
⚙️ 高级配置技巧
1. 配置中文界面
bash
# 下载中文语言包
wget https://raw.githubusercontent.com/snipe/snipe-it/master/resources/lang/zh-CN/general.php -O /var/www/snipe-it/resources/lang/zh-CN/general.php
# 修改配置文件
vi .env
APP_LOCALE=zh-CN
APP_TIMEZONE=Asia/Shanghai
2. 集成LDAP认证
bash
vi .env
# LDAP配置
LDAP_ENABLED=true
LDAP_SERVER=ldap.example.com
LDAP_PORT=389
LDAP_BASEDN="dc=example,dc=com"
LDAP_FILTER="(sAMAccountName={username})"
LDAP_VERSION=3
3. 设置邮件通知
bash
vi .env
# 邮件配置
MAIL_DRIVER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=yourpassword
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="Snipe-IT通知"
4. API开发集成
python
import requests
# 获取所有资产
api_url = "https://your-snipe-domain.com/api/v1/hardware"
api_key = "your-api-key"
response = requests.get(
api_url,
headers={
"Authorization": f"Bearer {api_key}",
"Accept": "application/json"
}
)
assets = response.json()["rows"]
for asset in assets:
print(f"{asset['asset_tag']}: {asset['name']}")
🔒 安全最佳实践
-
定期备份 :
bash# 备份数据库 mysqldump -u snipeit -p snipeit > snipeit_backup_$(date +%Y%m%d).sql # 备份上传文件和配置 tar czvf snipeit_files_$(date +%Y%m%d).tar.gz /var/www/snipe-it/{storage,public/uploads,.env}
-
HTTPS强制启用 :
apache# Apache配置 <VirtualHost *:443> ServerName your-domain.com SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/key.pem Redirect permanent / https://your-domain.com/ </VirtualHost>
-
权限控制 :
- 管理员:完全访问权限
- 部门经理:仅管理本部门资产
- 普通员工:仅查看被分配的资产
- 只读用户:仅查看权限
🚨 常见问题解决
Q1: 忘记管理员密码怎么办?
bash
# 重置密码
php artisan snipeit:reset-password [email protected]
Q2: 上传文件失败?
bash
# 检查权限
chown -R www-data:www-data /var/www/snipe-it/storage
chmod -R 755 /var/www/snipe-it/storage
Q3: 邮件发送失败? 检查.env
配置后测试:
bash
php artisan snipeit:test-email
🌈 拓展场景
1. 与采购系统集成
python
# 同步采购订单
def sync_purchase_orders():
orders = get_orders_from_erp()
for order in orders:
response = requests.post(
"https://snipe-domain.com/api/v1/purchase-orders",
headers={"Authorization": "Bearer API_KEY"},
json={
"name": order["po_number"],
"supplier_id": find_supplier(order["vendor"]),
"expected_arrival": order["delivery_date"],
"notes": order["description"]
}
)
2. 固定资产盘点
- 生成盘点清单
- 导出带有二维码的资产标签
- 使用手机扫描实物资产
- 系统自动核对账实差异
- 生成差异报告
3. API自动化报告
bash
# 每日发送资产报告
0 9 * * * curl -X POST -H "Authorization: Bearer API_KEY" \
"https://snipe-domain.com/api/v1/reports/activity" | \
mail -s "每日资产报告" [email protected]
📌 总结
适合使用Snipe-IT的场景: