Qwen3.5-9B镜像维护service.log按日轮转错误关键词自动告警脚本1. 项目背景与需求分析Qwen3.5-9B作为一款90亿参数的开源大语言模型在日常运行中会产生大量日志信息。随着服务持续运行service.log文件会不断增大导致以下问题日志管理困难单个大文件难以查找历史记录磁盘空间占用长期积累可能耗尽存储空间故障排查延迟需要人工监控错误日志为解决这些问题我们需要实现两个核心功能日志按日轮转Log Rotation错误关键词自动告警2. 日志轮转方案设计2.1 使用logrotate实现按日轮转logrotate是Linux系统自带的日志轮转工具配置简单且稳定可靠。以下是具体实施方案# 创建logrotate配置文件 sudo vim /etc/logrotate.d/qwen3.5-9b配置文件内容/root/qwen3.5-9b/service.log { daily missingok rotate 7 compress delaycompress notifempty create 0644 root root postrotate supervisorctl restart qwen3.5-9b /dev/null endscript }关键参数说明参数说明daily每天轮转一次rotate 7保留最近7天的日志compress使用gzip压缩旧日志delaycompress延迟一天压缩postrotate轮转后执行的命令2.2 测试logrotate配置# 手动执行轮转测试 sudo logrotate -vf /etc/logrotate.d/qwen3.5-9b # 检查轮转结果 ls -lh /root/qwen3.5-9b/service.log*3. 错误告警脚本开发3.1 监控脚本设计思路我们将开发一个Python脚本实现以下功能实时监控service.log文件变化检测预设错误关键词触发告警通知邮件/企业微信3.2 完整监控脚本代码#!/usr/bin/env python3 # -*- coding: utf-8 -*- import time import smtplib from email.mime.text import MIMEText from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler # 配置参数 LOG_FILE /root/qwen3.5-9b/service.log ERROR_KEYWORDS [error, exception, traceback, failed] EMAIL_CONFIG { smtp_server: smtp.example.com, smtp_port: 587, sender: alertexample.com, password: your_password, receivers: [adminexample.com] } class LogHandler(FileSystemEventHandler): def __init__(self): self.last_position 0 self.check_file() def check_file(self): with open(LOG_FILE, r) as f: f.seek(self.last_position) new_lines f.readlines() self.last_position f.tell() for line in new_lines: if any(keyword.lower() in line.lower() for keyword in ERROR_KEYWORDS): self.send_alert(line) def send_alert(self, error_line): msg MIMEText(fQwen3.5-9B服务检测到错误:\n\n{error_line}) msg[Subject] 【告警】Qwen3.5-9B服务异常 msg[From] EMAIL_CONFIG[sender] msg[To] , .join(EMAIL_CONFIG[receivers]) try: server smtplib.SMTP(EMAIL_CONFIG[smtp_server], EMAIL_CONFIG[smtp_port]) server.starttls() server.login(EMAIL_CONFIG[sender], EMAIL_CONFIG[password]) server.sendmail(EMAIL_CONFIG[sender], EMAIL_CONFIG[receivers], msg.as_string()) server.quit() print(f告警邮件已发送: {error_line}) except Exception as e: print(f邮件发送失败: {str(e)}) if __name__ __main__: event_handler LogHandler() observer Observer() observer.schedule(event_handler, path/root/qwen3.5-9b/, recursiveFalse) observer.start() try: while True: time.sleep(60) event_handler.check_file() except KeyboardInterrupt: observer.stop() observer.join()3.3 脚本部署步骤# 安装依赖 pip install watchdog # 创建脚本目录 mkdir -p /root/scripts vim /root/scripts/log_monitor.py # 添加执行权限 chmod x /root/scripts/log_monitor.py # 配置supervisor管理监控脚本 sudo vim /etc/supervisor/conf.d/qwen3.5-9b-monitor.confSupervisor配置内容[program:qwen3.5-9b-monitor] command/usr/bin/python3 /root/scripts/log_monitor.py directory/root/scripts autostarttrue autorestarttrue startsecs10 startretries3 redirect_stderrtrue stdout_logfile/var/log/qwen3.5-9b-monitor.log userroot4. 系统集成与测试4.1 完整部署流程配置logrotate日志轮转部署错误监控脚本配置Supervisor管理监控进程重启所有服务# 重新加载supervisor配置 supervisorctl update # 启动监控服务 supervisorctl start qwen3.5-9b-monitor # 检查服务状态 supervisorctl status4.2 模拟测试错误告警# 手动写入错误日志测试 echo [ERROR] Test error message /root/qwen3.5-9b/service.log # 检查监控日志 tail -f /var/log/qwen3.5-9b-monitor.log5. 进阶优化建议5.1 日志分析增强可以扩展监控脚本实现以下功能错误频率统计自动生成日报关键指标监控响应时间、并发数等5.2 多通道告警集成除了邮件告警还可以集成企业微信/钉钉机器人短信通知PrometheusGrafana监控5.3 日志归档策略优化根据业务需求调整日志保留策略# 修改/etc/logrotate.d/qwen3.5-9b rotate 30 # 保留30天日志 size 100M # 超过100MB时轮转6. 总结通过本文介绍的方案我们实现了Qwen3.5-9B服务的日志自动化管理日志轮转使用logrotate按日分割日志避免单个文件过大错误监控Python脚本实时检测错误关键词并告警进程管理通过Supervisor确保服务持续运行这套方案具有以下优势轻量级利用系统自带工具无需额外组件实时性错误发生后立即通知可扩展方便添加新的监控规则和告警渠道实施后系统管理员可以更高效地维护Qwen3.5-9B服务及时发现并解决问题。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。