You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by me...@apache.org on 2021/08/09 11:41:33 UTC
[ranger] branch master updated: RANNGER-3355 : Update the current
logging mechanism to use custom log4j conf
This is an automated email from the ASF dual-hosted git repository.
mehul pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new def49c7 RANNGER-3355 : Update the current logging mechanism to use custom log4j conf
def49c7 is described below
commit def49c74559d24c2c7b0e9244754eebce79f07b1
Author: mateenmansoori <ma...@gmail.com>
AuthorDate: Wed Aug 4 11:46:48 2021 +0530
RANNGER-3355 : Update the current logging mechanism to use custom log4j conf
Signed-off-by: Mehul Parikh <me...@apache.org>
---
embeddedwebserver/scripts/ranger-admin-services.sh | 8 +++-
security-admin/scripts/db_setup.py | 43 +++++++++++++++++++---
security-admin/scripts/install.properties | 1 +
security-admin/scripts/setup.sh | 8 ++++
.../src/main/webapp/WEB-INF/log4j.properties | 16 ++++++++
5 files changed, 69 insertions(+), 7 deletions(-)
diff --git a/embeddedwebserver/scripts/ranger-admin-services.sh b/embeddedwebserver/scripts/ranger-admin-services.sh
index 0bc06e1..d7cabbc 100755
--- a/embeddedwebserver/scripts/ranger-admin-services.sh
+++ b/embeddedwebserver/scripts/ranger-admin-services.sh
@@ -57,10 +57,16 @@ then
RANGER_ADMIN_LOG_DIR=${XAPOLICYMGR_EWS_DIR}/logs
fi
+if [ -z "${RANGER_ADMIN_LOG4J_CONF_FILE}" ]
+then
+ RANGER_ADMIN_LOG4J_CONF_FILE=${XAPOLICYMGR_EWS_DIR}/webapp/WEB-INF/log4j.properties
+fi
+
if [ -z "${RANGER_PID_DIR_PATH}" ]
then
RANGER_PID_DIR_PATH=/var/run/ranger
fi
+
if [ -z "${RANGER_ADMIN_PID_NAME}" ]
then
RANGER_ADMIN_PID_NAME=rangeradmin.pid
@@ -85,7 +91,7 @@ fi
SERVER_NAME=rangeradmin
start() {
SLEEP_TIME_AFTER_START=5
- nohup java -Dproc_rangeradmin ${JAVA_OPTS} -Dlog4j.configuration=file:${XAPOLICYMGR_EWS_DIR}/webapp/WEB-INF/log4j.properties -Duser=${USER} -Dhostname=${HOSTNAME} ${DB_SSL_PARAM} -Dservername=${SERVER_NAME} -Dlogdir=${RANGER_ADMIN_LOG_DIR} -Dcatalina.base=${XAPOLICYMGR_EWS_DIR} -cp "${XAPOLICYMGR_EWS_DIR}/webapp/WEB-INF/classes/conf:${XAPOLICYMGR_EWS_DIR}/lib/*:${RANGER_JAAS_LIB_DIR}/*:${RANGER_JAAS_CONF_DIR}:${JAVA_HOME}/lib/*:${RANGER_HADOOP_CONF_DIR}/*:$CLASSPATH" org.apache.ranger [...]
+ nohup java -Dproc_rangeradmin ${JAVA_OPTS} -Dlog4j.configuration=file:${RANGER_ADMIN_LOG4J_CONF_FILE} -Duser=${USER} -Dhostname=${HOSTNAME} ${DB_SSL_PARAM} -Dservername=${SERVER_NAME} -Dlogdir=${RANGER_ADMIN_LOG_DIR} -Dcatalina.base=${XAPOLICYMGR_EWS_DIR} -cp "${XAPOLICYMGR_EWS_DIR}/webapp/WEB-INF/classes/conf:${XAPOLICYMGR_EWS_DIR}/lib/*:${RANGER_JAAS_LIB_DIR}/*:${RANGER_JAAS_CONF_DIR}:${JAVA_HOME}/lib/*:${RANGER_HADOOP_CONF_DIR}/*:$CLASSPATH" org.apache.ranger.server.tomcat.Embedded [...]
VALUE_OF_PID=$!
echo "Starting Apache Ranger Admin Service"
sleep $SLEEP_TIME_AFTER_START
diff --git a/security-admin/scripts/db_setup.py b/security-admin/scripts/db_setup.py
index 4dcf6c9..29f0743 100644
--- a/security-admin/scripts/db_setup.py
+++ b/security-admin/scripts/db_setup.py
@@ -23,10 +23,12 @@ from os.path import basename
import time
import socket
import glob
+import getpass
globalDict = {}
os_name = platform.system()
os_name = os_name.upper()
+os_user = getpass.getuser()
ranger_version=''
jisql_debug=True
retryPatchAfterSeconds=120
@@ -435,8 +437,17 @@ class BaseDB(object):
version = ""
className = ""
app_home = os.path.join(RANGER_ADMIN_HOME,"ews","webapp")
- ranger_log = os.path.join(RANGER_ADMIN_HOME,"ews","logs")
+ ranger_log_dir = globalDict['RANGER_ADMIN_LOG_DIR']
+ if ranger_log_dir == "$PWD":
+ ranger_log_dir = os.path.join(RANGER_ADMIN_HOME,"ews","logs")
javaFiles = os.path.join(app_home,"WEB-INF","classes","org","apache","ranger","patch")
+ log4j_conf_file = globalDict['RANGER_ADMIN_LOG4J_CONF_FILE']
+ if not log4j_conf_file:
+ log4j_conf_file = "file:" + os.path.join(app_home, "WEB-INF", "log4j.properties")
+ else:
+ log4j_conf_file = "file:" + log4j_conf_file
+ log("[I] RANGER ADMIN LOG DIR : " + ranger_log_dir, "info")
+ log("[I] LOG4J CONF FILE : " + log4j_conf_file, "info")
if not os.path.exists(javaFiles):
log("[I] No java patches to apply!","info")
else:
@@ -504,7 +515,7 @@ class BaseDB(object):
path = os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR)
elif os_name == "WINDOWS":
path = os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF;%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR)
- get_java_cmd = "%s -XX:MetaspaceSize=100m -XX:MaxMetaspaceSize=200m -Xmx%s -Xms1g -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.%s"%(self.JAVA_BIN,globalDict['ranger_admin_max_heap_size'],ranger_log,path,className)
+ get_java_cmd = "%s -XX:MetaspaceSize=100m -XX:MaxMetaspaceSize=200m -Xmx%s -Xms1g -Dlogdir=%s -Dlog4j.configuration=%s -Duser=%s -Dhostname=%s -cp %s org.apache.ranger.patch.%s"%(self.JAVA_BIN,globalDict['ranger_admin_max_heap_size'],ranger_log_dir,log4j_conf_file,os_user,client_host,path,className)
if is_unix:
ret = subprocess.call(shlex.split(get_java_cmd))
elif os_name == "WINDOWS":
@@ -528,8 +539,18 @@ class BaseDB(object):
className = "ChangePasswordUtil"
version = dbversionBasedOnUserName(userName)
app_home = os.path.join(RANGER_ADMIN_HOME,"ews","webapp")
- ranger_log = os.path.join(RANGER_ADMIN_HOME,"ews","logs")
+ ranger_log_dir = globalDict['RANGER_ADMIN_LOG_DIR']
+ if ranger_log_dir == "$PWD":
+ ranger_log_dir = os.path.join(RANGER_ADMIN_HOME,"ews","logs")
filePath = os.path.join(app_home,"WEB-INF","classes","org","apache","ranger","patch","cliutil","ChangePasswordUtil.class")
+ log4j_conf_file = globalDict['RANGER_ADMIN_LOG4J_CONF_FILE']
+ if not log4j_conf_file:
+ log4j_conf_file = "file:" + os.path.join(app_home, "WEB-INF", "log4j.properties")
+ else:
+ log4j_conf_file = "file:" + log4j_conf_file
+
+ log("[I] RANGER ADMIN LOG DIR : " + ranger_log_dir, "info")
+ log("[I] LOG4J CONF FILE : " + log4j_conf_file, "info")
if os.path.exists(filePath):
if version != "":
output = self.execute_query(self.get_version_query(version,'Y'))
@@ -585,7 +606,7 @@ class BaseDB(object):
path = os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR)
elif os_name == "WINDOWS":
path = os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF;%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR)
- get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s -default"%(self.JAVA_BIN,ranger_log,path,className,'"'+userName+'"','"'+oldPassword+'"','"'+newPassword+'"')
+ get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=%s -Duser=%s -Dhostname=%s -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s -default"%(self.JAVA_BIN,ranger_log_dir,log4j_conf_file,os_user,client_host,path,className,'"'+userName+'"','"'+oldPassword+'"','"'+newPassword+'"')
if is_unix:
status = subprocess.call(shlex.split(get_java_cmd))
elif os_name == "WINDOWS":
@@ -616,8 +637,18 @@ class BaseDB(object):
className = "ChangePasswordUtil"
version = "DEFAULT_ALL_ADMIN_UPDATE"
app_home = os.path.join(RANGER_ADMIN_HOME,"ews","webapp")
- ranger_log = os.path.join(RANGER_ADMIN_HOME,"ews","logs")
+ ranger_log_dir = globalDict['RANGER_ADMIN_LOG_DIR']
+ if ranger_log_dir == "$PWD":
+ ranger_log_dir = os.path.join(RANGER_ADMIN_HOME,"ews","logs")
filePath = os.path.join(app_home,"WEB-INF","classes","org","apache","ranger","patch","cliutil","ChangePasswordUtil.class")
+ log4j_conf_file = globalDict['RANGER_ADMIN_LOG4J_CONF_FILE']
+ if not log4j_conf_file:
+ log4j_conf_file = "file:" + os.path.join(app_home, "WEB-INF", "log4j.properties")
+ else:
+ log4j_conf_file = "file:" + log4j_conf_file
+
+ log("[I] RANGER ADMIN LOG DIR : " + ranger_log_dir, "info")
+ log("[I] LOG4J CONF FILE : " + log4j_conf_file, "info")
if os.path.exists(filePath):
if version != "":
output = self.execute_query(self.get_version_query(version,'Y'))
@@ -673,7 +704,7 @@ class BaseDB(object):
path = os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR)
elif os_name == "WINDOWS":
path = os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF;%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR)
- get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s -default"%(self.JAVA_BIN,ranger_log,path,className, userPwdString)
+ get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=%s -Duser=%s -Dhostname=%s -cp %s org.apache.ranger.patch.cliutil.%s %s -default"%(self.JAVA_BIN,ranger_log_dir,log4j_conf_file,os_user,client_host,path,className, userPwdString)
if is_unix:
status = subprocess.call(shlex.split(get_java_cmd))
elif os_name == "WINDOWS":
diff --git a/security-admin/scripts/install.properties b/security-admin/scripts/install.properties
index 6cde15d..ae7a00d 100644
--- a/security-admin/scripts/install.properties
+++ b/security-admin/scripts/install.properties
@@ -232,6 +232,7 @@ sso_publickey=
# Custom log directory path
RANGER_ADMIN_LOG_DIR=$PWD
+RANGER_ADMIN_LOG4J_CONF_FILE=
# PID file path
RANGER_PID_DIR_PATH=/var/run/ranger
diff --git a/security-admin/scripts/setup.sh b/security-admin/scripts/setup.sh
index df8d64f..f6f6f56 100755
--- a/security-admin/scripts/setup.sh
+++ b/security-admin/scripts/setup.sh
@@ -141,6 +141,7 @@ sso_enabled=$(get_prop 'sso_enabled' $PROPFILE)
sso_providerurl=$(get_prop 'sso_providerurl' $PROPFILE)
sso_publickey=$(get_prop 'sso_publickey' $PROPFILE)
RANGER_ADMIN_LOG_DIR=$(eval echo "$(get_prop 'RANGER_ADMIN_LOG_DIR' $PROPFILE)")
+RANGER_ADMIN_LOG4J_CONF_FILE=$(eval echo "$(get_prop 'RANGER_ADMIN_LOG4J_CONF_FILE' $PROPFILE)")
RANGER_PID_DIR_PATH=$(eval echo "$(get_prop 'RANGER_PID_DIR_PATH' $PROPFILE)")
spnego_principal=$(get_prop 'spnego_principal' $PROPFILE)
@@ -1482,6 +1483,13 @@ setup_install_files(){
fi
fi
+ if [ -z "${RANGER_ADMIN_LOG4J_CONF_FILE}" ]; then
+ RANGER_ADMIN_LOG4J_CONF_FILE=${WEBAPP_ROOT}/WEB-INF/log4j.properties
+ fi
+ echo "export RANGER_ADMIN_LOG4J_CONF_FILE=${RANGER_ADMIN_LOG4J_CONF_FILE}" > ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-admin-env-log4j-conf-file.sh
+ chmod a+rx ${WEBAPP_ROOT}/WEB-INF/classes/conf/ranger-admin-env-log4j-conf-file.sh
+ log "[I] RANGER ADMIN LOG4J CONF FILE : ${RANGER_ADMIN_LOG4J_CONF_FILE}"
+
if [ -z "${RANGER_ADMIN_LOG_DIR}" ] || [ ${RANGER_ADMIN_LOG_DIR} == ${XAPOLICYMGR_DIR} ]; then
RANGER_ADMIN_LOG_DIR=${XAPOLICYMGR_DIR}/ews/logs;
fi
diff --git a/security-admin/src/main/webapp/WEB-INF/log4j.properties b/security-admin/src/main/webapp/WEB-INF/log4j.properties
index b47554c..fce5143 100644
--- a/security-admin/src/main/webapp/WEB-INF/log4j.properties
+++ b/security-admin/src/main/webapp/WEB-INF/log4j.properties
@@ -45,6 +45,22 @@ log4j.appender.perf_appender.append=true
log4j.appender.perf_appender.layout=org.apache.log4j.PatternLayout
log4j.appender.perf_appender.layout.ConversionPattern=%d [%t] %m%n
+log4j.category.org.apache.ranger.perf=DEBUG, perf_appender
+
+# patch_logger
+log4j.appender.patch_logger=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.patch_logger.file=${logdir}/ranger_db_patch.log
+log4j.appender.patch_logger.datePattern='.'yyyy-MM-dd
+log4j.appender.patch_logger.append=true
+log4j.appender.patch_logger.layout=org.apache.log4j.PatternLayout
+log4j.appender.patch_logger.layout.ConversionPattern=%d [%t] %-5p %C{6} (%F:%L) - %m%n
+# patch_logger : category and additivity
+log4j.category.org.springframework=warn,patch_logger
+log4j.additivity.org.springframework=false
+
+log4j.category.org.apache.ranger.patch=info,patch_logger
+log4j.additivity.org.apache.ranger.patch=false
+
# sql_appender
log4j.appender.sql_appender=org.apache.log4j.DailyRollingFileAppender