docker skywalking tomcat监控


1.构建包含skywalking 监控包的Tomcat docker镜像

解压 skywalking包

-->>> apache-skywalking-apm-6.6.0.tar.gz


---->> 拷贝 agent目录到Tomcat的bin目录下

---->> 修改agent中监控相关的agent.config文件

 修改监听服务项名称:

该命名将会在skywalking的ui项目中显示



修改agent.conf中接受当前监控数据的通信地址:


修改tmocat中的Catalina.sh脚本,保证容器启动的时候去加载监控脚本程序

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/apache-tomcat-8.5.9/bin/agent/skywalking-agent.jar"

测试过的Catalina.sh文件:

```

#!/bin/sh

# Licensed to the Apache Software Foundation (ASF) under one or more

# contributor license agreements.  See the NOTICE file distributed with

# this work for additional information regarding copyright ownership.

# The ASF licenses this file to You under the Apache License, Version 2.0

# (the "License"); you may not use this file except in compliance with

# the License.  You may obtain a copy of the License at

#

#    http://www.apache.org/licenses/LICENSE-2.0

#

# Unless required by applicable law or agreed to in writing, software

# distributed under the License is distributed on an "AS IS" BASIS,

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

# See the License for the specific language governing permissions and

# limitations under the License.

# -----------------------------------------------------------------------------

# Control Script for the CATALINA Server

#

# Environment Variable Prerequisites

#

#  Do not set the variables in this script. Instead put them into a script

#  setenv.sh in CATALINA_BASE/bin to keep your customizations separate.

#

#  CATALINA_HOME  May point at your Catalina "build" directory.

#

#  CATALINA_BASE  (Optional) Base directory for resolving dynamic portions

#                  of a Catalina installation.  If not present, resolves to

#                  the same directory that CATALINA_HOME points to.

#

#  CATALINA_OUT    (Optional) Full path to a file where stdout and stderr

#                  will be redirected.

#                  Default is $CATALINA_BASE/logs/catalina.out

#

#  CATALINA_OPTS  (Optional) Java runtime options used when the "start",

#                  "run" or "debug" command is executed.

#                  Include here and not in JAVA_OPTS all options, that should

#                  only be used by Tomcat itself, not by the stop process,

#                  the version command etc.

#                  Examples are heap size, GC logging, JMX ports etc.

#

#  CATALINA_TMPDIR (Optional) Directory path location of temporary directory

#                  the JVM should use (java.io.tmpdir).  Defaults to

#                  $CATALINA_BASE/temp.

#

#  JAVA_HOME      Must point at your Java Development Kit installation.

#                  Required to run the with the "debug" argument.

#

#  JRE_HOME        Must point at your Java Runtime installation.

#                  Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME

#                  are both set, JRE_HOME is used.

#

#  JAVA_OPTS      (Optional) Java runtime options used when any command

#                  is executed.

#                  Include here and not in CATALINA_OPTS all options, that

#                  should be used by Tomcat and also by the stop process,

#                  the version command etc.

#                  Most options should go into CATALINA_OPTS.

#

#  JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"

#                  command is executed. The default is "dt_socket".

#

#  JPDA_ADDRESS    (Optional) Java runtime options used when the "jpda start"

#                  command is executed. The default is localhost:8000.

#

#  JPDA_SUSPEND    (Optional) Java runtime options used when the "jpda start"

#                  command is executed. Specifies whether JVM should suspend

#                  execution immediately after startup. Default is "n".

#

#  JPDA_OPTS      (Optional) Java runtime options used when the "jpda start"

#                  command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,

#                  and JPDA_SUSPEND are ignored. Thus, all required jpda

#                  options MUST be specified. The default is:

#

#                  -agentlib:jdwp=transport=$JPDA_TRANSPORT,

#                      address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND

#

#  JSSE_OPTS      (Optional) Java runtime options used to control the TLS

#                  implementation when JSSE is used. Default is:

#                  "-Djdk.tls.ephemeralDHKeySize=2048"

#

#  CATALINA_PID    (Optional) Path of the file which should contains the pid

#                  of the catalina startup java process, when start (fork) is

#                  used

#

#  LOGGING_CONFIG  (Optional) Override Tomcat's logging config file

#                  Example (all one line)

#                  LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"

#

#  LOGGING_MANAGER (Optional) Override Tomcat's logging manager

#                  Example (all one line)

#                  LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

#

#  UMASK          (Optional) Override Tomcat's default UMASK of 0027

#

#  USE_NOHUP      (Optional) If set to the string true the start command will

#                  use nohup so that the Tomcat process will ignore any hangup

#                  signals. Default is "false" unless running on HP-UX in which

#                  case the default is "true"

# -----------------------------------------------------------------------------

JAVA_OPTS="-Xms512m -Xmx512m"

# OS specific support.  $var _must_ be set to either true or false.

cygwin=false

darwin=false

os400=false

hpux=false

case "`uname`" in

CYGWIN*) cygwin=true;;

Darwin*) darwin=true;;

OS400*) os400=true;;

HP-UX*) hpux=true;;

esac

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=49.232.175.137 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/apache-tomcat-8.5.9/bin/agent/skywalking-agent.jar"

export CATALINA_OPTS

# resolve links - $0 may be a softlink

PRG="$0"

while [ -h "$PRG" ]; do

  ls=`ls -ld "$PRG"`

  link=`expr "$ls" : '.*-> \(.*\)$'`

  if expr "$link" : '/.*' > /dev/null; then

    PRG="$link"

  else

    PRG=`dirname "$PRG"`/"$link"

  fi

done

# Get standard environment variables

PRGDIR=`dirname "$PRG"`

# Only set CATALINA_HOME if not already set

[ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`

# Copy CATALINA_BASE from CATALINA_HOME if not already set

[ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"

# Ensure that any user defined CLASSPATH variables are not used on startup,

# but allow them to be specified in setenv.sh, in rare case when it is needed.

CLASSPATH=

if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then

  . "$CATALINA_BASE/bin/setenv.sh"

elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then

  . "$CATALINA_HOME/bin/setenv.sh"

fi

# For Cygwin, ensure paths are in UNIX format before anything is touched

if $cygwin; then

  [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`

  [ -n "$JRE_HOME" ] && JRE_HOME=`cygpath --unix "$JRE_HOME"`

  [ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"`

  [ -n "$CATALINA_BASE" ] && CATALINA_BASE=`cygpath --unix "$CATALINA_BASE"`

  [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`

fi

# Ensure that neither CATALINA_HOME nor CATALINA_BASE contains a colon

# as this is used as the separator in the classpath and Java provides no

# mechanism for escaping if the same character appears in the path.

case $CATALINA_HOME in

  *:*) echo "Using CATALINA_HOME:  $CATALINA_HOME";

      echo "Unable to start as CATALINA_HOME contains a colon (:) character";

      exit 1;

esac

case $CATALINA_BASE in

  *:*) echo "Using CATALINA_BASE:  $CATALINA_BASE";

      echo "Unable to start as CATALINA_BASE contains a colon (:) character";

      exit 1;

esac

# For OS400

if $os400; then

  # Set job priority to standard for interactive (interactive - 6) by using

  # the interactive priority - 6, the helper threads that respond to requests

  # will be running at the same priority as interactive jobs.

  COMMAND='chgjob job('$JOBNAME') runpty(6)'

  system $COMMAND

  # Enable multi threading

  export QIBM_MULTI_THREADED=Y

fi

# Get standard Java environment variables

if $os400; then

  # -r will Only work on the os400 if the files are:

  # 1. owned by the user

  # 2. owned by the PRIMARY group of the user

  # this will not work if the user belongs in secondary groups

  . "$CATALINA_HOME"/bin/setclasspath.sh

else

  if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then

    . "$CATALINA_HOME"/bin/setclasspath.sh

  else

    echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"

    echo "This file is needed to run this program"

    exit 1

  fi

fi

# Add on extra jar files to CLASSPATH

if [ ! -z "$CLASSPATH" ] ; then

  CLASSPATH="$CLASSPATH":

fi

CLASSPATH="$CLASSPATH""$CATALINA_HOME"/bin/bootstrap.jar

if [ -z "$CATALINA_OUT" ] ; then

  CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out

fi

if [ -z "$CATALINA_TMPDIR" ] ; then

  # Define the java.io.tmpdir to use for Catalina

  CATALINA_TMPDIR="$CATALINA_BASE"/temp

fi

# Add tomcat-juli.jar to classpath

# tomcat-juli.jar can be over-ridden per instance

if [ -r "$CATALINA_BASE/bin/tomcat-juli.jar" ] ; then

  CLASSPATH=$CLASSPATH:$CATALINA_BASE/bin/tomcat-juli.jar

else

  CLASSPATH=$CLASSPATH:$CATALINA_HOME/bin/tomcat-juli.jar

fi

# Bugzilla 37848: When no TTY is available, don't output to console

have_tty=0

if [ "`tty`" != "not a tty" ]; then

    have_tty=1

fi

# For Cygwin, switch paths to Windows format before running java

if $cygwin; then

  JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`

  JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"`

  CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"`

  CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"`

  CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"`

  CLASSPATH=`cygpath --path --windows "$CLASSPATH"`

fi

if [ -z "$JSSE_OPTS" ] ; then

  JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"

fi

JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"

# Register custom URL handlers

# Do this here so custom URL handles (specifically 'war:...') can be used in the security policy

JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"

# Set juli LogManager config file if it is present and an override has not been issued

if [ -z "$LOGGING_CONFIG" ]; then

  if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then

    LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"

  else

    # Bugzilla 45585

    LOGGING_CONFIG="-Dnop"

  fi

fi

if [ -z "$LOGGING_MANAGER" ]; then

  LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

fi

# Set UMASK unless it has been overridden

if [ -z "$UMASK" ]; then

    UMASK="0027"

fi

umask $UMASK

# Uncomment the following line to make the umask available when using the

# org.apache.catalina.security.SecurityListener

#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"

if [ -z "$USE_NOHUP" ]; then

    if $hpux; then

        USE_NOHUP="true"

    else

        USE_NOHUP="false"

    fi

fi

unset _NOHUP

if [ "$USE_NOHUP" = "true" ]; then

    _NOHUP=nohup

fi

# ----- Execute The Requested Command -----------------------------------------

# Bugzilla 37848: only output this if we have a TTY

if [ $have_tty -eq 1 ]; then

  echo "Using CATALINA_BASE:  $CATALINA_BASE"

  echo "Using CATALINA_HOME:  $CATALINA_HOME"

  echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"

  if [ "$1" = "debug" ] ; then

    echo "Using JAVA_HOME:      $JAVA_HOME"

  else

    echo "Using JRE_HOME:        $JRE_HOME"

  fi

  echo "Using CLASSPATH:      $CLASSPATH"

  if [ ! -z "$CATALINA_PID" ]; then

    echo "Using CATALINA_PID:    $CATALINA_PID"

  fi

fi

if [ "$1" = "jpda" ] ; then

  if [ -z "$JPDA_TRANSPORT" ]; then

    JPDA_TRANSPORT="dt_socket"

  fi

  if [ -z "$JPDA_ADDRESS" ]; then

    JPDA_ADDRESS="localhost:8000"

  fi

  if [ -z "$JPDA_SUSPEND" ]; then

    JPDA_SUSPEND="n"

  fi

  if [ -z "$JPDA_OPTS" ]; then

    JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"

  fi

  CATALINA_OPTS="$JPDA_OPTS $CATALINA_OPTS"

  shift

fi

if [ "$1" = "debug" ] ; then

  if $os400; then

    echo "Debug command not available on OS400"

    exit 1

  else

    shift

    if [ "$1" = "-security" ] ; then

      if [ $have_tty -eq 1 ]; then

        echo "Using Security Manager"

      fi

      shift

      exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \

        -classpath "$CLASSPATH" \

        -sourcepath "$CATALINA_HOME"/../../java \

        -Djava.security.manager \

        -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \

        -Dcatalina.base="$CATALINA_BASE" \

        -Dcatalina.home="$CATALINA_HOME" \

        -Djava.io.tmpdir="$CATALINA_TMPDIR" \

        org.apache.catalina.startup.Bootstrap "$@" start

    else

      exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \

        -classpath "$CLASSPATH" \

        -sourcepath "$CATALINA_HOME"/../../java \

        -Dcatalina.base="$CATALINA_BASE" \

        -Dcatalina.home="$CATALINA_HOME" \

        -Djava.io.tmpdir="$CATALINA_TMPDIR" \

        org.apache.catalina.startup.Bootstrap "$@" start

    fi

  fi

elif [ "$1" = "run" ]; then

  shift

  if [ "$1" = "-security" ] ; then

    if [ $have_tty -eq 1 ]; then

      echo "Using Security Manager"

    fi

    shift

    eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \

      -classpath "\"$CLASSPATH\"" \

      -Djava.security.manager \

      -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \

      -Dcatalina.base="\"$CATALINA_BASE\"" \

      -Dcatalina.home="\"$CATALINA_HOME\"" \

      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \

      org.apache.catalina.startup.Bootstrap "$@" start

  else

    eval exec "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \

      -classpath "\"$CLASSPATH\"" \

      -Dcatalina.base="\"$CATALINA_BASE\"" \

      -Dcatalina.home="\"$CATALINA_HOME\"" \

      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \

      org.apache.catalina.startup.Bootstrap "$@" start

  fi

elif [ "$1" = "start" ] ; then

  if [ ! -z "$CATALINA_PID" ]; then

    if [ -f "$CATALINA_PID" ]; then

      if [ -s "$CATALINA_PID" ]; then

        echo "Existing PID file found during start."

        if [ -r "$CATALINA_PID" ]; then

          PID=`cat "$CATALINA_PID"`

          ps -p $PID >/dev/null 2>&1

          if [ $? -eq 0 ] ; then

            echo "Tomcat appears to still be running with PID $PID. Start aborted."

            echo "If the following process is not a Tomcat process, remove the PID file and try again:"

            ps -f -p $PID

            exit 1

          else

            echo "Removing/clearing stale PID file."

            rm -f "$CATALINA_PID" >/dev/null 2>&1

            if [ $? != 0 ]; then

              if [ -w "$CATALINA_PID" ]; then

                cat /dev/null > "$CATALINA_PID"

              else

                echo "Unable to remove or clear stale PID file. Start aborted."

                exit 1

              fi

            fi

          fi

        else

          echo "Unable to read PID file. Start aborted."

          exit 1

        fi

      else

        rm -f "$CATALINA_PID" >/dev/null 2>&1

        if [ $? != 0 ]; then

          if [ ! -w "$CATALINA_PID" ]; then

            echo "Unable to remove or write to empty PID file. Start aborted."

            exit 1

          fi

        fi

      fi

    fi

  fi

  shift

  touch "$CATALINA_OUT"

  if [ "$1" = "-security" ] ; then

    if [ $have_tty -eq 1 ]; then

      echo "Using Security Manager"

    fi

    shift

    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \

      -classpath "\"$CLASSPATH\"" \

      -Djava.security.manager \

      -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \

      -Dcatalina.base="\"$CATALINA_BASE\"" \

      -Dcatalina.home="\"$CATALINA_HOME\"" \

      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \

      org.apache.catalina.startup.Bootstrap "$@" start \

      >> "$CATALINA_OUT" 2>&1 "&"

  else

    eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \

      -classpath "\"$CLASSPATH\"" \

      -Dcatalina.base="\"$CATALINA_BASE\"" \

      -Dcatalina.home="\"$CATALINA_HOME\"" \

      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \

      org.apache.catalina.startup.Bootstrap "$@" start \

      >> "$CATALINA_OUT" 2>&1 "&"

  fi

  if [ ! -z "$CATALINA_PID" ]; then

    echo $! > "$CATALINA_PID"

  fi

  echo "Tomcat started."

elif [ "$1" = "stop" ] ; then

  shift

  SLEEP=5

  if [ ! -z "$1" ]; then

    echo $1 | grep "[^0-9]" >/dev/null 2>&1

    if [ $? -gt 0 ]; then

      SLEEP=$1

      shift

    fi

  fi

  FORCE=0

  if [ "$1" = "-force" ]; then

    shift

    FORCE=1

  fi

  if [ ! -z "$CATALINA_PID" ]; then

    if [ -f "$CATALINA_PID" ]; then

      if [ -s "$CATALINA_PID" ]; then

        kill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1

        if [ $? -gt 0 ]; then

          echo "PID file found but no matching process was found. Stop aborted."

          exit 1

        fi

      else

        echo "PID file is empty and has been ignored."

      fi

    else

      echo "\$CATALINA_PID was set but the specified file does not exist. Is Tomcat running? Stop aborted."

      exit 1

    fi

  fi

  eval "\"$_RUNJAVA\"" $JAVA_OPTS \

    -classpath "\"$CLASSPATH\"" \

    -Dcatalina.base="\"$CATALINA_BASE\"" \

    -Dcatalina.home="\"$CATALINA_HOME\"" \

    -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \

    org.apache.catalina.startup.Bootstrap "$@" stop

  # stop failed. Shutdown port disabled? Try a normal kill.

  if [ $? != 0 ]; then

    if [ ! -z "$CATALINA_PID" ]; then

      echo "The stop command failed. Attempting to signal the process to stop through OS signal."

      kill -15 `cat "$CATALINA_PID"` >/dev/null 2>&1

    fi

  fi

  if [ ! -z "$CATALINA_PID" ]; then

    if [ -f "$CATALINA_PID" ]; then

      while [ $SLEEP -ge 0 ]; do

        kill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1

        if [ $? -gt 0 ]; then

          rm -f "$CATALINA_PID" >/dev/null 2>&1

          if [ $? != 0 ]; then

            if [ -w "$CATALINA_PID" ]; then

              cat /dev/null > "$CATALINA_PID"

              # If Tomcat has stopped don't try and force a stop with an empty PID file

              FORCE=0

            else

              echo "The PID file could not be removed or cleared."

            fi

          fi

          echo "Tomcat stopped."

          break

        fi

        if [ $SLEEP -gt 0 ]; then

          sleep 1

        fi

        if [ $SLEEP -eq 0 ]; then

          echo "Tomcat did not stop in time."

          if [ $FORCE -eq 0 ]; then

            echo "PID file was not removed."

          fi

          echo "To aid diagnostics a thread dump has been written to standard out."

          kill -3 `cat "$CATALINA_PID"`

        fi

        SLEEP=`expr $SLEEP - 1 `

      done

    fi

  fi

  KILL_SLEEP_INTERVAL=5

  if [ $FORCE -eq 1 ]; then

    if [ -z "$CATALINA_PID" ]; then

      echo "Kill failed: \$CATALINA_PID not set"

    else

      if [ -f "$CATALINA_PID" ]; then

        PID=`cat "$CATALINA_PID"`

        echo "Killing Tomcat with the PID: $PID"

        kill -9 $PID

        while [ $KILL_SLEEP_INTERVAL -ge 0 ]; do

            kill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1

            if [ $? -gt 0 ]; then

                rm -f "$CATALINA_PID" >/dev/null 2>&1

                if [ $? != 0 ]; then

                    if [ -w "$CATALINA_PID" ]; then

                        cat /dev/null > "$CATALINA_PID"

                    else

                        echo "The PID file could not be removed."

                    fi

                fi

                echo "The Tomcat process has been killed."

                break

            fi

            if [ $KILL_SLEEP_INTERVAL -gt 0 ]; then

                sleep 1

            fi

            KILL_SLEEP_INTERVAL=`expr $KILL_SLEEP_INTERVAL - 1 `

        done

        if [ $KILL_SLEEP_INTERVAL -lt 0 ]; then

            echo "Tomcat has not been killed completely yet. The process might be waiting on some system call or might be UNINTERRUPTIBLE."

        fi

      fi

    fi

  fi

elif [ "$1" = "configtest" ] ; then

    eval "\"$_RUNJAVA\"" $LOGGING_MANAGER $JAVA_OPTS \

      -classpath "\"$CLASSPATH\"" \

      -Dcatalina.base="\"$CATALINA_BASE\"" \

      -Dcatalina.home="\"$CATALINA_HOME\"" \

      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \

      org.apache.catalina.startup.Bootstrap configtest

    result=$?

    if [ $result -ne 0 ]; then

        echo "Configuration error detected!"

    fi

    exit $result

elif [ "$1" = "version" ] ; then

    "$_RUNJAVA"  \

      -classpath "$CATALINA_HOME/lib/catalina.jar" \

      org.apache.catalina.util.ServerInfo

else

  echo "Usage: catalina.sh ( commands ... )"

  echo "commands:"

  if $os400; then

    echo "  debug            Start Catalina in a debugger (not available on OS400)"

    echo "  debug -security  Debug Catalina with a security manager (not available on OS400)"

  else

    echo "  debug            Start Catalina in a debugger"

    echo "  debug -security  Debug Catalina with a security manager"

  fi

  echo "  jpda start        Start Catalina under JPDA debugger"

  echo "  run              Start Catalina in the current window"

  echo "  run -security    Start in the current window with security manager"

  echo "  start            Start Catalina in a separate window"

  echo "  start -security  Start in a separate window with security manager"

  echo "  stop              Stop Catalina, waiting up to 5 seconds for the process to end"

  echo "  stop n            Stop Catalina, waiting up to n seconds for the process to end"

  echo "  stop -force      Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running"

  echo "  stop n -force    Stop Catalina, wait up to n seconds and then use kill -KILL if still running"

  echo "  configtest        Run a basic syntax check on server.xml - check exit code for result"

  echo "  version          What version of tomcat are you running?"

  echo "Note: Waiting for the process to end and use of the -force option require that \$CATALINA_PID is defined"

  exit 1

fi

```

构建tomcat镜像

  docker build -t tomcatskywalking .


2.启动skywalking 本地服务程序(接受远程监控服务调用的程序)

---->修改本地服务程序的相关地址:

skywalking默认12800为rest api通信端口,

默认11800为gRPC api通信端口。这些都可以在配置文件中进行修改

vim /packages/apache-skywalking-apm-bin/webapp/webapp.yml

vim /packages/apache-skywalking-apm-bin/config/application.yml

3.启动skywalking本地服务程序,然后再启动tomcat应用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343