You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snorby邮件推送失效+SensorCacheJob执行报错(sql_mode兼容问题)

咱们一步步拆解你的两个问题,逐个解决:

解决SQL模式兼容报错(SensorCacheJob执行失败)

你遇到的sql_mode=only_full_group_by报错,是因为MySQL开启了严格分组模式,而Snorby的旧代码没有遵循这个模式的要求——GROUP BY子句里没有包含ORDER BY中用到的非聚合列snorby.event.timestamp。

临时修复(立即生效,重启MySQL后失效)

  1. 登录MySQL命令行:
    mysql -u root -p
    
  2. 全局关闭ONLY_FULL_GROUP_BY模式:
    SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
    
  3. 同时修改当前会话的模式,避免重新登录:
    SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
    
  4. 现在重新执行你的命令,应该能正常运行:
    Snorby::Jobs::SensorCacheJob.new(true).perform
    

永久修复(重启MySQL后依然生效)

  1. 找到MySQL的配置文件,通常是/etc/my.cnf、/etc/mysql/my.cnf或者/etc/mysql/mysql.conf.d/mysqld.cnf(根据系统不同路径可能有差异)
  2. 编辑文件,在[mysqld]段落下添加或修改sql_mode,移除ONLY_FULL_GROUP_BY,比如:
    [mysqld]
    sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    
  3. 重启MySQL服务:
    systemctl restart mysql
    
排查Snorby邮件推送失败问题

系统提示「检查邮件设置」,说明核心问题大概率出在邮件配置或者SMTP连通性上,按以下步骤排查:

  • 核对Snorby邮件配置:
    登录Snorby后台,进入Settings -> Email Settings,仔细检查:

    • SMTP服务器地址、端口是否正确(比如主流服务商:QQ邮箱SMTP是smtp.qq.com,端口465/SSL;163邮箱是smtp.163.com,端口465/SSL)
    • 认证用户名、密码是否正确,部分邮箱需要开启SMTP授权码(比如QQ、网易邮箱,不能直接用登录密码)
    • 加密方式(SSL/TLS)要和端口匹配(465对应SSL,587对应TLS)
    • 发件人邮箱格式是否合法,避免使用特殊字符
  • 测试SMTP服务器连通性:
    可以用命令行工具直接测试你的SMTP服务器是否能正常发信,比如用swaks(如果没安装先apt install swaks或yum install swaks):

    swaks --to 收件邮箱 --from 发件邮箱 --server SMTP服务器地址 --port 端口 --auth LOGIN --auth-user 用户名 --auth-password 授权码/密码 --tls
    

    如果测试失败,根据报错信息排查(比如防火墙拦截、SMTP服务器拒绝连接、认证失败等)

  • 查看Snorby日志:
    检查Snorby的日志文件,通常在/var/log/snorby/或者Rails应用日志目录log/production.log,里面会有邮件发送的详细错误信息,比如连接超时、认证失败、被反垃圾系统拦截等,帮你定位具体问题

内容的提问来源于stack exchange,提问作者Rohit Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:18:45