系统日志
系统日志是 Yuan-ICP 系统的重要组成部分,用于记录系统运行过程中的各种操作和事件,帮助管理员监控系统状态、排查问题和审计用户操作。
📋 功能概览
系统日志模块提供以下核心功能:
- 操作日志:记录用户和管理员的操作行为
- 系统日志:记录系统运行状态和错误信息
- 安全日志:记录安全相关的事件和异常
- 日志查询:支持多条件搜索和筛选
- 日志导出:支持日志数据的导出功能
📊 日志类型说明
操作日志 (Operation Logs)
记录系统中所有用户和管理员的操作行为:
日志类型 | 描述 | 示例 |
---|---|---|
用户登录 | 记录用户登录时间和IP地址 | 用户 admin 登录成功 (IP: 192.168.1.100) |
备案申请 | 记录用户提交备案申请 | 用户提交备案申请: example.com |
审核操作 | 记录管理员审核备案申请 | 管理员 admin 审核通过备案申请 #123 |
系统设置 | 记录系统配置的修改 | 管理员 admin 修改系统设置: 网站名称 |
公告管理 | 记录公告的发布和修改 | 管理员 admin 发布公告: 系统维护通知 |
系统日志 (System Logs)
记录系统运行过程中的状态信息和错误:
日志类型 | 描述 | 示例 |
---|---|---|
系统启动 | 记录系统启动时间 | 系统启动成功 - 2024-01-15 10:00:00 |
数据库连接 | 记录数据库连接状态 | 数据库连接成功 - MySQL 8.0 |
邮件发送 | 记录邮件发送状态 | 邮件发送成功: user@example.com |
错误信息 | 记录系统运行错误 | PHP Fatal Error: 数据库查询失败 |
性能监控 | 记录系统性能指标 | 页面加载时间: 0.5秒 |
安全日志 (Security Logs)
记录安全相关的事件和异常行为:
日志类型 | 描述 | 示例 |
---|---|---|
登录失败 | 记录失败的登录尝试 | 登录失败: 用户名 admin (IP: 192.168.1.100) |
权限拒绝 | 记录无权限访问尝试 | 权限拒绝: 用户 user 访问管理页面 |
异常访问 | 记录异常的访问行为 | 异常访问: 来自未知IP的请求 |
文件上传 | 记录文件上传操作 | 文件上传: user.jpg (大小: 1.2MB) |
数据修改 | 记录重要数据的修改 | 数据修改: 备案申请状态变更 |
🔍 日志查看功能
访问系统日志
- 登录后台管理系统
- 点击侧边栏"系统日志"
- 查看日志列表和统计信息
日志列表显示
列名 | 描述 | 说明 |
---|---|---|
时间 | 日志记录时间 | 格式:YYYY-MM-DD HH:MM:SS |
级别 | 日志级别 | 信息/警告/错误/调试 |
类型 | 日志类型 | 操作/系统/安全 |
用户 | 操作用户 | 用户名或IP地址 |
操作 | 具体操作内容 | 详细的操作描述 |
IP地址 | 用户IP地址 | 操作用户的网络地址 |
日志级别说明
级别 | 描述 | 颜色标识 | 处理方式 |
---|---|---|---|
信息 | 正常的操作信息 | 蓝色 | 记录到数据库 |
警告 | 需要注意的情况 | 黄色 | 记录到数据库,可能发送通知 |
错误 | 系统错误或异常 | 红色 | 记录到数据库,发送告警通知 |
调试 | 调试信息 | 灰色 | 仅在调试模式下记录 |
🔎 日志搜索和筛选
时间范围筛选
支持按时间范围筛选日志:
- 今天:显示今天的日志记录
- 昨天:显示昨天的日志记录
- 最近7天:显示最近7天的日志记录
- 最近30天:显示最近30天的日志记录
- 自定义范围:选择特定的开始和结束时间
日志类型筛选
支持按日志类型筛选:
- 全部类型:显示所有类型的日志
- 操作日志:只显示用户操作相关的日志
- 系统日志:只显示系统运行相关的日志
- 安全日志:只显示安全相关的日志
日志级别筛选
支持按日志级别筛选:
- 全部级别:显示所有级别的日志
- 信息:只显示信息级别的日志
- 警告:只显示警告级别的日志
- 错误:只显示错误级别的日志
关键词搜索
支持在日志内容中搜索关键词:
- 用户搜索:按用户名搜索
- 操作搜索:按操作类型搜索
- 内容搜索:按日志内容搜索
- IP搜索:按IP地址搜索
📊 日志统计信息
实时统计
系统提供实时的日志统计信息:
统计项 | 说明 | 更新频率 |
---|---|---|
今日日志数 | 今天记录的日志总数 | 实时更新 |
错误日志数 | 今天记录的错误日志数 | 实时更新 |
活跃用户数 | 今天有操作的用户数 | 实时更新 |
系统状态 | 当前系统运行状态 | 实时更新 |
趋势分析
支持查看日志趋势分析:
- 日志数量趋势:按天/小时统计日志数量
- 错误率趋势:统计错误日志的比例变化
- 用户活跃度:统计用户操作频率
- 系统性能:统计系统响应时间
📤 日志导出功能
导出格式
系统支持多种导出格式:
- CSV格式:适合在Excel中打开和分析
- JSON格式:适合程序处理和分析
- TXT格式:纯文本格式,通用性好
- XML格式:结构化数据格式
导出选项
支持自定义导出内容:
- 时间范围:选择要导出的时间范围
- 日志类型:选择要导出的日志类型
- 日志级别:选择要导出的日志级别
- 字段选择:选择要导出的字段
导出示例
csv
时间,级别,类型,用户,操作,IP地址
2024-01-15 10:00:00,信息,系统,系统,系统启动成功,-
2024-01-15 10:01:00,信息,操作,admin,用户登录成功,192.168.1.100
2024-01-15 10:02:00,信息,操作,admin,查看仪表盘,192.168.1.100
2024-01-15 10:03:00,信息,操作,admin,审核备案申请 #123,192.168.1.100
🚨 日志告警功能
告警规则
系统支持配置日志告警规则:
告警类型 | 触发条件 | 告警方式 |
---|---|---|
错误日志过多 | 1小时内错误日志超过10条 | 邮件通知、系统提示 |
登录失败过多 | 1小时内登录失败超过5次 | 邮件通知、系统提示 |
异常访问 | 检测到异常IP访问 | 邮件通知、系统提示 |
系统性能下降 | 页面响应时间超过5秒 | 邮件通知、系统提示 |
告警配置
管理员可以自定义告警规则:
- 告警阈值:设置触发告警的条件
- 告警方式:选择邮件、短信等告警方式
- 告警时间:设置告警的时间窗口
- 告警级别:设置告警的严重程度
🔧 日志管理操作
日志清理
系统支持自动和手动日志清理:
自动清理
- 保留时间:自动删除超过指定时间的日志
- 清理频率:每天凌晨自动执行清理任务
- 清理策略:根据日志级别采用不同的保留策略
手动清理
- 选择性清理:手动选择要清理的日志
- 批量清理:批量删除符合条件的日志
- 清理确认:清理前需要管理员确认
日志备份
系统支持日志备份功能:
- 自动备份:定期自动备份重要日志
- 手动备份:管理员手动触发备份
- 备份存储:备份文件存储到指定目录
- 备份恢复:支持从备份文件恢复日志
📋 日志配置选项
日志记录配置
系统提供灵活的日志记录配置:
php
// 日志配置示例
$log_config = [
'log_level' => 'info', // 记录的最低日志级别
'log_file' => 'system.log', // 日志文件路径
'max_file_size' => '10MB', // 单个日志文件最大大小
'max_files' => 10, // 保留的日志文件数量
'log_format' => 'detailed', // 日志格式(简单/详细)
'enable_database_log' => true, // 是否记录到数据库
'enable_file_log' => true, // 是否记录到文件
'log_retention_days' => 90, // 日志保留天数
];
性能优化配置
针对高并发场景的性能优化配置:
php
// 性能优化配置
$performance_config = [
'async_logging' => true, // 启用异步日志记录
'batch_size' => 100, // 批量写入的日志数量
'flush_interval' => 5, // 刷新间隔(秒)
'memory_limit' => '128M', // 日志处理内存限制
'enable_cache' => true, // 启用日志缓存
];
🚨 故障排除
常见问题
1. 日志不记录
问题:系统操作没有记录到日志 解决方案:
- 检查日志配置是否正确
- 确认日志目录权限设置
- 检查数据库连接状态
- 查看系统错误日志
2. 日志文件过大
问题:日志文件占用过多磁盘空间 解决方案:
- 启用日志轮转功能
- 设置合理的日志保留时间
- 定期清理旧日志文件
- 调整日志记录级别
3. 日志查询缓慢
问题:日志查询响应时间过长 解决方案:
- 为日志表添加合适的索引
- 优化日志查询语句
- 启用日志缓存机制
- 定期清理过期日志
4. 告警功能异常
问题:日志告警功能不工作 解决方案:
- 检查告警规则配置
- 确认邮件发送配置
- 查看告警执行日志
- 测试告警触发条件
💡 最佳实践
日志记录原则
- 完整性:记录所有重要的操作和事件
- 准确性:确保日志信息的准确性和真实性
- 及时性:及时记录日志,避免信息丢失
- 安全性:保护敏感日志信息,防止泄露
日志管理建议
- 定期检查:定期检查系统日志,发现问题
- 及时清理:及时清理过期日志,释放存储空间
- 备份重要日志:备份重要的日志信息
- 监控告警:配置合适的告警规则,及时发现问题
性能优化建议
- 异步记录:使用异步方式记录日志,提高性能
- 批量处理:批量处理日志,减少I/O操作
- 合理索引:为日志表添加合适的数据库索引
- 定期维护:定期维护日志表,优化查询性能
📋 日志检查清单
功能检查
- [ ] 日志记录功能正常
- [ ] 日志查询功能正常
- [ ] 日志导出功能正常
- [ ] 日志清理功能正常
- [ ] 告警功能正常
配置检查
- [ ] 日志级别设置合理
- [ ] 日志保留时间设置合理
- [ ] 告警规则配置正确
- [ ] 日志存储路径正确
- [ ] 权限设置正确
性能检查
- [ ] 日志查询响应时间合理
- [ ] 日志文件大小合理
- [ ] 磁盘空间使用合理
- [ ] 数据库性能正常
- [ ] 系统资源使用合理
📚 相关文档
🎯 总结
系统日志功能为 Yuan-ICP 提供了完整的操作记录和监控能力:
- 操作追踪:完整记录所有用户和管理员操作
- 问题排查:帮助快速定位和解决问题
- 安全审计:记录安全相关事件,提高系统安全性
- 性能监控:监控系统性能,及时发现问题
通过合理使用系统日志功能,您可以更好地监控系统状态、排查问题和保障系统安全。