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:
- 打开
server目录下的start.ini文件 - 在文件末尾添加一行:
--module=requestlog - 保存文件即可
3. (模块不存在时)手动配置RequestLog
如果--list-modules里没有requestlog模块,按以下步骤操作:
- 先检查依赖jar包:查看
server/lib/jetty目录下是否有类似jetty-requestlog-9.3.*.jar的文件(Solr7.2.1对应Jetty9.3.19版本,jar包版本要匹配)。如果没有,需要下载对应版本的jar包放到这个目录。 - 创建配置文件:在
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> - 引入配置:打开
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
相关产品推荐
相关产品推荐

