ailog 是一个利用 AI 技术分析网络设备日志的 Python 脚本工具。它能够:
- 对网络设备日志进行去重处理
- 将处理后的日志提交给大语言模型(LLM)进行分析
- 生成结构化的日志分析报告
该项目旨在探索大模型在网络运维领域的应用,特别适合处理大量网络设备日志的场景。
- 日志去重:自动识别并合并重复的日志条目
- 结构化处理:将原始日志转换为结构化数据格式
- AI 分析:通过大语言模型生成专业的日志分析报告
- 多设备支持:支持同时分析多个网络设备的日志
- 可配置性:通过配置文件灵活调整分析参数
- Python 3.6 或更高版本
- 支持长上下文的大语言模型(如 Qwen-Long)
- 网络设备日志文件
- 将
ailog.py
和配置文件config.json
复制到日志服务器的/etc/ailog
目录 - 设置配置文件权限:
# chmod 600 /etc/ailog/config.json
- 创建符号链接:
# ln -sf /etc/ailog/ailog.py /usr/local/bin/ailog
- 验证安装:
# ailog --help
配置文件 config.json
包含以下关键配置项:
api_base
: LLM API 的基础 URLapi_key
: API 认证密钥model_name
: 使用的 AI 模型名称devices_info
: 设备信息字典,包含设备名称、用途和型号
示例配置文件位于 example/config.json
,用户可根据实际网络设备情况进行修改。
基本命令格式:
# ailog [-f 配置文件路径] [-t 行数] [输入日志文件] [输出文件]
示例:
# 分析整个日志文件
# ailog -f /etc/ailog/config.json /var/log/router.log /tmp/router.log.md
# 仅分析日志文件的最后1000行
# ailog -f /etc/ailog/config.json -t 1000 /var/log/router.log /tmp/router.log.md
分析结果以 Markdown 格式保存,包含以下内容:
- 日志分析报告
- 结构化日志数据(JSON 格式)
用户可以使用 Pandoc 等工具将 Markdown 文件转换为其他格式。
- 日志文件大小控制:对于大型日志文件,建议使用-t参数仅分析最后n行日志,以提高处理效率
- 日志级别配置:合理配置网络设备的日志输出级别,避免产生过多冗余日志
- 模型选择:建议使用支持长上下文的模型(如 Qwen-Long)以获得更好的分析效果
- 定期分析:建议设置定时任务定期分析日志,及时发现潜在问题
- 报告存档:妥善保存分析报告,便于后续问题追踪和趋势分析
- 确保配置文件中的 API 密钥等敏感信息得到妥善保护
- 建议在专用日志服务器上运行本工具
- 对于大规模日志分析,请确保服务器有足够的内存和计算资源
ailog/
├── ailog.py # 主程序脚本
├── README.md # 项目文档
├── LICENSE # 许可证文件
├── example/ # 示例文件
│ ├── config.json # 示例配置文件
│ └── router.log # 示例日志文件
欢迎通过 GitHub 提交 issue 或 pull request 来改进本项目。
本项目采用 MIT 许可证,详情请参见 LICENSE 文件。