- Java 版本日志配置
- 配置说明
- 1. 使用 Syslog 采集报警日志
- 2. 开启调试日志
- 3. 开启日志限速
- 4. HTTP报警推送
- FAQ
- 1. 没有产生日志文件
- 1. 没有产生日志文件
- 配置说明
Java 版本日志配置
OpenRASP 使用修改过的 log4j (版本 1.2.17) 作为日志输出框架,
- 将默认包名 org.apache.log4j 更改为 com.baidu.openrasp.log4j
- 将默认配置关键字 log4j.configuration 更改为 log4j.rasp.configuration
- 增加 Syslog TCP Appender,支持按照TCP方式传输报警日志
本文提到的配置,与log4j 官方配置文档并无不同,用户也可参考官方文档进行配置
具体配置文件为 <app_home>/rasp/conf/rasp-log4j.xml,OpenRASP 在启动时会检查这个文件是否存在,若不存在则生成一个
配置说明
1. 使用 Syslog 采集报警日志
通常单条报警日志都会超过1KB,所以你只能使用 Syslog TCP 方式传输日志
找到 <log4j:configuration> 节点,加入一个 <appender> 节点(默认配置文件中有配置示例),
<appender name="SYSLOGTCP" class="com.baidu.openrasp.messaging.SyslogTcpAppender"><param name="Threshold" value="INFO" /><param name="Facility" value="LOCAL0" /><param name="RemoteHost" value="127.0.0.1" /><param name="FacilityPrinting" value="true"/><param name="Port" value="514" /><param name="ReconnectionDelay" value="60000" /></appender>
然后找到 <logger name="com.baidu.openrasp.plugin.alarm">,添加一个 <appender-ref ref="SYSLOG" /> 节点,e.g
<logger name="com.baidu.openrasp.plugin.alarm" additivity="false"><level value="INFO" /><appender-ref ref="ALARM" /><appender-ref ref="SYSLOGTCP" /></logger>
修改后重启应用服务生效
2. 开启调试日志
开启调试日志后,OpenRASP 传递给插件的参数、以及插件返回的结果都会被记录到调试日志里
找到 <root> 节点,修改 INFO 级别为 DEBUG
<root><level value="INFO" /><appender-ref ref="RASP" /></root>
修改后重启应用服务生效
3. 开启日志限速
当插件需要打印大量调试日志时,你可以开启日志限速功能,防止对服务器的性能产生影响
找到你要限速的 <appender> 节点,添加如下内容
<filter class="com.baidu.openrasp.messaging.BurstFilter"><param name="maxBurst" value="100000" /><param name="refillAmount" value="10000" /><param name="refillInterval" value="10" /></filter>
这表示在 在10秒内,最多打印 100000 条日志
修改后重启应用服务生效
4. HTTP报警推送
找到 <log4j:configuration> 节点,加入一个 <appender> 节点(默认配置文件中有配置示例),
<appender name="ALARMHTTPAPPENDER" class="com.baidu.openrasp.messaging.AlarmHttpAppender"><param name="url" value="http://host:port/alarm"/><param name="connectionTimeout" value="10000"/><param name="readTimeout" value="10000"/><param name="maxCacheSize" value="256"/><param name="cacheFlushTime" value="60000"/></appender>
参数说明:
- url : the target address to receive the alarm
- connectionTimeout : the number of milliseconds this Connector will wait, after accepting a connection, for the request URI line to be presented.
- readTimeout : the timeout on waiting to read data.
- maxCacheSize : max size of cached alarm logging item
- cacheFlushTime : the time interval for post all the cached logging items
该appender仅用于POST推送报警信息;然后找到<logger name="com.baidu.openrasp.plugin.alarm">,添加一个<appender-ref ref="ALARMHTTPAPPENDER" />节点,e.g
<logger name="com.baidu.openrasp.plugin.alarm" additivity="false"><level value="INFO" /><appender-ref ref="ALARM" /><appender-ref ref="ALARMHTTPAPPENDER" /></logger>
为支持多条报警同时推送,POST数据形式(mime:application/json)如下,接收服务须能正确处理。服务异常处理:目前对于返回HTTP STATUS≥300的情况,会在catalina.out文件中记录相关错误信息,使用过程中务必留意,确保下游接收服务的正常运行。
{"data": [{"attack_type": "xxe","attack_source": "66.66.66.66","plugin_name": "offical","server_type": "Tomcat",..."user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"},...{"attack_type": "directory","attack_source": "66.66.66.66","plugin_name": "offical","server_type": "Tomcat",..."user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"}]}
FAQ
1. 没有产生日志文件
如果你移动过 <app_home> 目录,你需要手工修正 <app_home>/rasp/conf/rasp-log4j.xml 里面定义的日志路径,否则可能无法正常写入日志
如果遇到其他问题,请联系我们
原文: https://rasp.baidu.com/doc/setup/log/java.html
