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

Solr 7.2.1内嵌Jetty 9请求日志配置失败,模块安装求助

Solr 7.2.1内置Jetty 9启用RequestLog模块解决方案

你在给Solr自带Jetty配置请求日志时遇到的模块添加失败问题,其实是因为Solr定制版Jetty的模块管理逻辑和独立Jetty略有不同,我来帮你梳理下具体解决步骤:

核心前提:找准Jetty工作目录

Solr 7.2.1的Jetty核心文件都集中在solr-7.2.1/server目录下,所有操作都要先切换到这个目录:

cd /path/to/your/solr-7.2.1/server

(把/path/to/your替换成你的Solr实际安装路径)

具体解决步骤

1. 先确认模块是否存在

先执行命令查看Jetty所有可用模块,确认requestlog模块是否在列:

java -jar start.jar --list-modules

如果输出里能找到requestlog,说明模块本身存在,只是--add-to-start命令可能因为权限或配置逻辑没生效;如果找不到,就需要手动补全配置。

2. 手动启用RequestLog模块

如果--add-to-start=requestlog执行失败,直接编辑Jetty的启动配置文件start.ini:

  1. 打开server目录下的start.ini文件
  2. 在文件末尾添加一行:
    --module=requestlog
    
  3. 保存文件即可

3. (模块不存在时)手动配置RequestLog

如果--list-modules里没有requestlog模块,按以下步骤操作:

  1. 先检查依赖jar包:查看server/lib/jetty目录下是否有类似jetty-requestlog-9.3.*.jar的文件(Solr7.2.1对应Jetty9.3.19版本,jar包版本要匹配)。如果没有,需要下载对应版本的jar包放到这个目录。
  2. 创建配置文件:在server/etc目录下新建jetty-requestlog.xml,内容如下:
    <?xml version="1.0"?>
    <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
    
    <Configure id="Server" class="org.eclipse.jetty.server.Server">
      <Ref refid="Handler">
        <Call name="insertHandler">
          <Arg>
            <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">
              <Set name="requestLog">
                <New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
                  <!-- 日志文件路径,默认存在server/logs目录下 -->
                  <Set name="filename"><Property name="jetty.logs" default="./logs"/>/yyyy_mm_dd.request.log</Set>
                  <Set name="filenameDateFormat">yyyy_MM_dd</Set>
                  <!-- 日志保留天数 -->
                  <Set name="retainDays">90</Set>
                  <Set name="append">true</Set>
                  <Set name="extended">true</Set>
                  <Set name="logCookies">false</Set>
                  <Set name="LogTimeZone">GMT</Set>
                </New>
              </Set>
            </New>
          </Arg>
        </Call>
      </Ref>
    </Configure>
    
  3. 引入配置:打开start.ini,在末尾添加一行:
    etc/jetty-requestlog.xml
    

4. 权限检查

你用sudo执行命令后,要确保server目录及其子文件的权限正确,最好让Solr运行用户(比如solr用户)拥有读写权限:

sudo chown -R solr:solr /path/to/your/solr-7.2.1/server

5. 重启验证

完成配置后重启Solr,然后查看server/logs目录,应该会生成类似2024_05_20.request.log的请求日志文件。

关于webapp、deploy模块的说明

Solr自带的Jetty已经内置了Solr自身的web应用,webapp和deploy模块是给独立Jetty用来部署外部web应用的,对Solr来说完全不需要启用,所以不用纠结这两个模块的安装问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:21:06