Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add TLS support in Tomcat Script #105

Merged
merged 4 commits into from Nov 6, 2017
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

@@ -49,6 +49,8 @@ LOGGLY_FILE_TAG="tomcat"
#add tags to the logs
TAG=

TLS_SENDING="true"

#this variable will hold the catalina home provide by user.
#this is not a mandatory input
LOGGLY_CATALINA_HOME=
@@ -271,19 +273,22 @@ assumeTomcatHome() {

#checks if the catalina home is a valid one by searching for logging.properties and
#checks for startup.sh if tomcat is not configured as service
checkIfValidTomcatHome() {
#check if logging.properties files is present
if [ ! -f "$LOGGLY_CATALINA_HOME/conf/logging.properties" ]; then
logMsgToConfigSysLog "WARN" "WARN: Unable to find conf/logging.properties file within $LOGGLY_CATALINA_HOME."
eval $1="false"
#check if tomcat is configured as a service. If no, then check if we have access to startup.sh file
elif [ ! -f /etc/init.d/$SERVICE ]; then
logMsgToConfigSysLog "INFO" "INFO: Tomcat is not configured as a service"
if [ ! -f "$LOGGLY_CATALINA_HOME/bin/startup.sh" ]; then
logMsgToConfigSysLog "WARN" "WARN: Unable to find bin/startup.sh file within $LOGGLY_CATALINA_HOME."
eval $1="false"
fi
fi
checkIfValidTomcatHome()
{
#check if logging.properties files is present
if [ ! -f "$LOGGLY_CATALINA_HOME/conf/logging.properties" ]; then
logMsgToConfigSysLog "WARN" "WARN: Unable to find conf/logging.properties file within $LOGGLY_CATALINA_HOME."
eval $1="false"
#check if tomcat is configured as a service. If no, then check if we have access to startup.sh file
elif [ ! -f /etc/init.d/$SERVICE ]; then
if [[ ! $(which systemctl) && $(systemctl list-unit-files $SERVICE.service | grep "$SERVICE.service") ]] &>/dev/null; then
logMsgToConfigSysLog "INFO" "INFO: Tomcat is not configured as a service."
if [ ! -f "$LOGGLY_CATALINA_HOME/bin/startup.sh" ]; then
logMsgToConfigSysLog "WARN" "WARN: Unable to find bin/startup.sh file within $LOGGLY_CATALINA_HOME."
eval $1="false"
fi
fi
fi
}

#sets tomcat variables which will be used across various functions
@@ -500,15 +505,108 @@ write21TomcatFileContents() {
sudo touch $TOMCAT_SYSLOG_CONFFILE
sudo chmod o+w $TOMCAT_SYSLOG_CONFFILE

imfileStr="\$ModLoad imfile
\$WorkDirectory $RSYSLOG_DIR
commonContent="
\$ModLoad imfile
\$WorkDirectory $RSYSLOG_DIR
"
if [[ "$LINUX_DIST" == *"Ubuntu"* ]]; then
commonContent+="\$PrivDropToGroup adm
"
fi

imfileStr=$commonContent"
\$ActionSendStreamDriver gtls
\$ActionSendStreamDriverMode 1
\$ActionSendStreamDriverAuthMode x509/name
\$ActionSendStreamDriverPermittedPeer *.loggly.com
#RsyslogGnuTLS
\$DefaultNetstreamDriverCAFile /etc/rsyslog.d/keys/ca.d/logs-01.loggly.com_sha12.crt
#parameterized token here.......
#Add a tag for tomcat events
\$template LogglyFormatTomcat,\"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [$LOGGLY_AUTH_TOKEN@41058 $TAG] %msg%\n\"
# catalina.out
\$InputFileName $LOGGLY_CATALINA_LOG_HOME/catalina.out
\$InputFileTag catalina-out
\$InputFileStateFile stat-catalina-out
\$InputFileSeverity info
\$InputFilePersistStateInterval 20000
\$InputRunFileMonitor
if \$programname == 'catalina-out' then @@logs-01.loggly.com:6514;LogglyFormatTomcat
if \$programname == 'catalina-out' then ~
# initd.log
\$InputFileName $LOGGLY_CATALINA_LOG_HOME/initd.log
\$InputFileTag initd
\$InputFileStateFile stat-initd
\$InputFileSeverity info
\$InputFilePersistStateInterval 20000
\$InputRunFileMonitor
if \$programname == 'initd' then @@logs-01.loggly.com:6514;LogglyFormatTomcat
if \$programname == 'initd' then ~
"
if [[ "$LINUX_DIST" == *"Ubuntu"* ]]; then
imfileStr+="\$PrivDropToGroup adm

#if log rotation is enabled i.e. tomcat version is greater than or equal to
#6.0.33.0, then add the following lines to tomcat syslog conf file
if [ $(compareVersions $TOMCAT_VERSION $MIN_TOMCAT_VERSION 4) -ge 0 ]; then
imfileStr+=$commonContent"
# catalina.log
\$InputFileName $LOGGLY_CATALINA_LOG_HOME/catalina.log
\$InputFileTag catalina-log
\$InputFileStateFile stat-catalina-log
\$InputFileSeverity info
\$InputFilePersistStateInterval 20000
\$InputRunFileMonitor
if \$programname == 'catalina-log' then @@logs-01.loggly.com:6514;LogglyFormatTomcat
if \$programname == 'catalina-log' then ~
# host-manager.log
\$InputFileName $LOGGLY_CATALINA_LOG_HOME/host-manager.log
\$InputFileTag host-manager
\$InputFileStateFile stat-host-manager
\$InputFileSeverity info
\$InputFilePersistStateInterval 20000
\$InputRunFileMonitor
if \$programname == 'host-manager' then @@logs-01.loggly.com:6514;LogglyFormatTomcat
if \$programname == 'host-manager' then ~
# localhost.log
\$InputFileName $LOGGLY_CATALINA_LOG_HOME/localhost.log
\$InputFileTag localhost-log
\$InputFileStateFile stat-localhost-log
\$InputFileSeverity info
\$InputFilePersistStateInterval 20000
\$InputRunFileMonitor
if \$programname == 'localhost-log' then @@logs-01.loggly.com:6514;LogglyFormatTomcat
if \$programname == 'localhost-log' then ~
# manager.log
\$InputFileName $LOGGLY_CATALINA_LOG_HOME/manager.log
\$InputFileTag manager
\$InputFileStateFile stat-manager
\$InputFileSeverity info
\$InputFilePersistStateInterval 20000
\$InputRunFileMonitor
if \$programname == 'manager' then @@logs-01.loggly.com:6514;LogglyFormatTomcat
if \$programname == 'manager' then ~
# localhost_access_log.txt
\$InputFileName $LOGGLY_CATALINA_LOG_HOME/localhost_access_log.txt
\$InputFileTag tomcat-access
\$InputFileStateFile stat-tomcat-access
\$InputFileSeverity info
\$InputFilePersistStateInterval 20000
\$InputRunFileMonitor
if \$programname == 'tomcat-access' then @@logs-01.loggly.com:6514;LogglyFormatTomcat
if \$programname == 'tomcat-access' then ~
"
fi

imfileStr+="
imfileStrNonTls=$commonContent"
#parameterized token here.......
#Add a tag for tomcat events
\$template LogglyFormatTomcat,\"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [$LOGGLY_AUTH_TOKEN@41058 $TAG] %msg%\n\"
@@ -534,10 +632,10 @@ if \$programname == 'initd' then @@logs-01.loggly.com:514;LogglyFormatTomcat
if \$programname == 'initd' then ~
"

#if log rotation is enabled i.e. tomcat version is greater than or equal to
#6.0.33.0, then add the following lines to tomcat syslog conf file
if [ $(compareVersions $TOMCAT_VERSION $MIN_TOMCAT_VERSION 4) -ge 0 ]; then
imfileStr+="
#if log rotation is enabled i.e. tomcat version is greater than or equal to
#6.0.33.0, then add the following lines to tomcat syslog conf file
if [ $(compareVersions $TOMCAT_VERSION $MIN_TOMCAT_VERSION 4) -ge 0 ]; then
imfileStrNonTls+=$commonContent"
# catalina.log
\$InputFileName $LOGGLY_CATALINA_LOG_HOME/catalina.log
\$InputFileTag catalina-log
@@ -590,6 +688,11 @@ if \$programname == 'tomcat-access' then ~
"
fi

if [ $TLS_SENDING == "false" ];
then
imfileStr=$imfileStrNonTls
fi

#change the tomcat-21 file to variable from above and also take the directory of the tomcat log file.
sudo cat <<EOIPFW >>$TOMCAT_SYSLOG_CONFFILE
$imfileStr
@@ -727,45 +830,44 @@ if [ $# -eq 0 ]; then
else
while [ "$1" != "" ]; do
case $1 in
-ch | --catalinahome)
shift
LOGGLY_CATALINA_HOME=$1
echo "CATALINA HOME from input: $LOGGLY_CATALINA_HOME"
;;
-t | --token)
shift
LOGGLY_AUTH_TOKEN=$1
echo "AUTH TOKEN $LOGGLY_AUTH_TOKEN"
;;
-a | --account)
shift
LOGGLY_ACCOUNT=$1
echo "Loggly account or subdomain: $LOGGLY_ACCOUNT"
;;
-u | --username)
shift
LOGGLY_USERNAME=$1
echo "Username is set"
;;
-p | --password)
shift
LOGGLY_PASSWORD=$1
;;
-tag | --filetag)
shift
LOGGLY_FILE_TAG=$1
echo "File tag: $LOGGLY_FILE_TAG"
;;
-r | --rollback)
LOGGLY_ROLLBACK="true"
;;
-s | --suppress)
SUPPRESS_PROMPT="true"
;;
-h | --help)
usage
exit
;;
-ch | --catalinahome ) shift
LOGGLY_CATALINA_HOME=$1
echo "CATALINA HOME from input: $LOGGLY_CATALINA_HOME"
;;
-t | --token ) shift
LOGGLY_AUTH_TOKEN=$1
echo "AUTH TOKEN $LOGGLY_AUTH_TOKEN"
;;
-a | --account ) shift
LOGGLY_ACCOUNT=$1
echo "Loggly account or subdomain: $LOGGLY_ACCOUNT"
;;
-u | --username ) shift
LOGGLY_USERNAME=$1
echo "Username is set"
;;
-p | --password ) shift
LOGGLY_PASSWORD=$1
;;
-tag| --filetag ) shift
LOGGLY_FILE_TAG=$1
echo "File tag: $LOGGLY_FILE_TAG"
;;
-r | --rollback )
LOGGLY_ROLLBACK="true"
;;
-s | --suppress )
SUPPRESS_PROMPT="true"
;;
--insecure )
LOGGLY_TLS_SENDING="false"
TLS_SENDING="false"
LOGGLY_SYSLOG_PORT=514
;;
-h | --help)
usage
exit
;;
esac
shift
done
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.