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

Solr周期性停止服务的调试与自动恢复方案咨询

Solr周期性不可用问题调试与自动恢复方案

一、问题调试步骤

  • 确认Solr实际进程状态:执行ps aux | grep solr,查看是否存在Solr对应的Java进程。service状态显示active (exited)说明init脚本已退出,但实际Solr进程可能已被终止。
  • 排查系统层面日志:
    • 查看Solr服务的系统日志:journalctl -u solr.service --since "1 week ago",寻找进程异常终止的原因。
    • 检查内核日志是否有OOM(内存不足)杀进程记录:dmesg | grep -i kill,若存在Out of memory: Killed process相关信息,说明Solr因内存耗尽被系统终止。
  • 修复Solr日志记录异常:
    • 检查Solr日志目录权限:确保solr用户对/var/www/solr/logs有读写权限,执行ls -ld /var/www/solr/logs查看权限设置。
    • 调整日志级别:修改Solr的log4j2.xml配置文件(通常位于Solr安装目录或solr_home下),将日志级别从WARN调整为INFO或DEBUG,确保捕获进程退出前的详细信息。
  • 检查资源限制:
    • 查看JVM内存配置:检查solr.in.sh中的SOLR_HEAP参数,若设置过小,容易引发内存溢出,建议根据服务器内存调整(例如服务器内存8G时,可设置为4G)。
    • 验证文件句柄限制:执行ulimit -n查看当前用户的文件句柄上限,Solr运行需要足够的文件句柄,可在systemd服务配置中添加LimitNOFILE=65535参数提升限制。
  • 排查定时任务干扰:检查系统cron任务(crontab -l)或其他定时脚本,确认是否存在会终止Solr进程或清理相关文件的任务。

二、故障检测与自动重启方案

1. 利用systemd自动重启

修改Solr的systemd服务配置文件(路径通常为/lib/systemd/system/solr.service或/etc/systemd/system/solr.service),在[Service]段添加以下配置:

Restart=on-failure
RestartSec=5s

执行以下命令使配置生效:

systemctl daemon-reload
systemctl restart solr

此后systemd会在Solr进程异常终止时自动重启服务。

2. 自定义Shell监控脚本

编写简单的监控脚本monitor_solr.sh:

#!/bin/bash
# 检查Solr服务是否可访问
if ! curl -s --connect-timeout 10 http://localhost:8983/solr/ > /dev/null; then
    echo "$(date): Solr服务不可用,尝试重启..." >> /var/log/solr_monitor.log
    service solr restart
    # 验证重启是否成功
    sleep 10
    if curl -s --connect-timeout 10 http://localhost:8983/solr/ > /dev/null; then
        echo "$(date): Solr重启成功" >> /var/log/solr_monitor.log
    else
        echo "$(date): Solr重启失败,请手动干预" >> /var/log/solr_monitor.log
    fi
fi

赋予脚本执行权限:chmod +x monitor_solr.sh,然后添加到cron定时任务,每5分钟执行一次:

crontab -e
# 添加以下内容
*/5 * * * * /path/to/monitor_solr.sh

3. 补充说明

  • 若使用systemd方案,建议同时开启进程监控,确保systemd能准确检测到Solr进程状态。
  • 监控脚本可根据实际需求调整检查频率和验证逻辑,例如增加进程存在性检查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:27:15