Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.3.0
-
Patch
Description
In Ranger, we do not have the correlation Id which needs to be stored in the logs whenever we get the requestId header from the caller microservice
Proposal:
RangerMDCFilter will capture the correlation Id which needs to be stored in the logs whenever we get the requestId header from the caller microservice
This RangerMDCFilter can be enabled in the web.xml and logging ConversionPattern
<filter> <filter-name>RangerMDCFilter</filter-name> <filter-class&amp;gt;org.apache.ranger.security.web.filter.RangerMDCFilter</filter-class&amp;gt; </filter> <filter-mapping> <filter-name>RangerMDCFilter</filter-name> <url-pattern>/service/*</url-pattern> </filter-mapping>
and to change the conversion pattern to something like this, using the %X{} placeholder for each entry contained in the MDC we want to be logged:
Example:
<appender name="xa_log_appender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender--> <!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy--> <!--for further documentation--> <file>${logdir}/ranger-admin-${hostname}-${user}.log</file> <append>true</append> <encoder> <pattern>%date [%thread] %level{5} [%file:%line] [requestId=%X{REQUEST_ID}] %msg%n</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logdir}/ranger-admin-${hostname}-${user}.log.%d{yyyy-MM-dd}</fileNamePattern> <maxHistory>15</maxHistory> <cleanHistoryOnStart>true</cleanHistoryOnStart> </rollingPolicy> </appender>