diff --git a/Modular Scripts/Tomcat/configure-tomcat.sh b/Modular Scripts/Tomcat/configure-tomcat.sh index b67c696..c450874 100644 --- a/Modular Scripts/Tomcat/configure-tomcat.sh +++ b/Modular Scripts/Tomcat/configure-tomcat.sh @@ -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 <>$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