精华内容
下载资源
问答
  • Linux下实现tomcat线程监控并自启

    千次阅读 2018-03-17 08:18:10
    应用场景 CENTOS服务器运行tomcat服务器,为了保证服务器正常运行并实现崩溃自启,通过系统自带的crontab执行定时.sh脚本任务,对tomcat系统进行检测,tomcat崩溃,自动重启服务。快速开始 准备环境:CentOS Linux ...

    应用场景

      CENTOS服务器运行tomcat服务器,为了保证服务器正常运行并实现崩溃自启,通过系统自带的crontab执行定时.sh脚本任务,对tomcat系统进行检测,tomcat崩溃,自动重启服务。


    快速开始

    1.  准备环境:CentOS Linux release 7.2、apache-tomcat-8.5.15、能够运行的项目一份
    2. 查看crontab是否安装,crontab命令用于linux和unix一般情况下,用于周期性执行指令。linux发行版本都已经预安装了cron工具。如果未安装,可以使用以下命令进行安装。
      yum install -y vixie-cron
    3. 使用crontab的相关命令:
      service crond start//启动服务
      
      service crond status//查看状态
      
      service crond restart//重启服务
      
      service crond reload//重新载入配置
    4. 编写shell脚本,用于监控tomcat线程并处理逻辑:

            分析:首先我们应该查看tomcat线程ID,如果线程ID不存在,则重启tomcat服务器,如果存在,则我们请求项目,这个请求可以是项目的一个页面,也可以特意为项目写的一个方法,不需要任何的逻辑,只需要返回数据即可。得到请求返回的状态码status,如果返回的status==200,则说明系统运行正常,如果返回其他的状态码,则说明系统异常,将tomcat的线程杀掉并重启服务。下面是演示的shell脚本代码

    #tomcat监控脚本,记录tomcat运行状况,并在系统出现异常的时候重启服务
    
    # 获取线程ID,执行该命令,可以得到tomcat线程,grep -w用于执行单词搜索
    TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-8.5.20'|grep -v 'grep'|awk '{print $2}')
    
    # tomcat启动的脚本文件,一般位于tomcat服务器bin目录下面
    StartTomcat=/tal/apache-tomcat-8.5.20/bin/startup.sh
    
    # 项目的一个方法,该方法只要能够请求到,则返回成功
    WebUrl=http://47.92.108.67:8080/ProjectSystem/shTest
    
    #tomcatwork空间
    TomcatCache=/tal/apache-tomcat-8.5.20/work
    
    # 日志输出地址
    GetPageInfo=/dev/null
    TomcatMonitorLog=/tmp/TomcatMonitor.log
    
    #监控的代码
    Monitor()
    {
      #输出到日志文件,并将时间保存
      echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
      #查看tomcatID,如果存在,则进入处理逻辑,如果不存在,则重启tomcat
      if [ $TomcatID ];then
        #记录日志
        echo "[info]tomcat进程ID为:$TomcatID."
        # 请求项目,$WebUrl是相应的请求地址,该命令执行之后会得到相应的线程ID
        TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})
        #系统运行正常
        if [ $TomcatServiceCode -eq 200 ];then
            echo "[info]返回码为$TomcatServiceCode,tomcat运行正常."
        else
            #系统运行异常
            echo "[error]访问出错,状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"
            echo "[error]开始重启tomcat"
            #杀掉相应的进程
            kill -9 $TomcatID  # 杀掉原tomcat进程
    		./email.sh
            sleep 1
    	#清理work空间
            rm -rf $TomcatCache # 清理tomcat缓存
    	#重启
            $StartTomcat
        fi
      else
        echo "[error]进程不存在!tomcat自动重启..."
        echo "[info]$StartTomcat,请稍候......"
        #rm -rf $TomcatCache
        $StartTomcat
      fi
      echo "------------------------------"
    }
    Monitor>>$TomcatMonitorLog

                5.在linux中添加定时任务,输入下面代码,然后添加定时任务每分钟执行一次

                    

    crontab -e 

      6.启动定时任务,则开始执行定时任务,运行截图如下:

            

    日志脚本:

            

    ----------------------------------------------------------------------------------------------------------------------

    参考文档:http://www.voidcn.com/article/p-bjawfbcq-cm.html 

                    http://www.cnblogs.com/pipelone/archive/2009/04/17/1437879.html

         知识点及问题总结:

    1. 完成之后先执行脚本,脚本执行成功再加入定时任务。在尝试过程中,定时任务显示执行成功,但是脚本没有执行,手动杀掉线程之后,系统并没有重新启动。手动执行shell脚本出现异常,才知道脚本出现了问题。首先需要给脚本执行权限,具体做法是chmod 777 /usr/xxx.sh;chmod的意思是修改文件权限。其次我的脚本是在windows下生成,通过xftp上传到服务器,需要转换,试用命令set ff即可。

    展开全文
  • 远程服务器切换到你的jdk/bin目录。我的是/usr/lib/jvm/java-1.8.0/bin 。 执行如下命令: jstatd -p 1099 -J-Djava.security.policy=<(echo 'grant codebase "file:${java.home}/../lib/tools.jar&...

    远程服务器切换到你的jdk/bin目录。我的是/usr/lib/jvm/java-1.8.0/bin  。

    执行如下命令:

    jstatd -p 1099 -J-Djava.security.policy=<(echo 'grant codebase "file:${java.home}/../lib/tools.jar" {permission java.security.AllPermission;};') &

    然后你可能要弄一台windows server服务器安装好jdk,以及下载好visual vm

    弄好以上环境后打开visual vm  鼠标右击 Remote  -> Add Remote Host ->

    在Host name 中填入你服务器的内部ip地址

    输入好了点击OK就会出现类似于如下界面:

    就说明你连接成功了。

    展开全文
  • 1、看看tomcat进程pidps -ef|grep tomcatroot 14635 1 2 12:34 pts/0 00:01:21 /usr/bin/java -Djava.util.logging.config.file=获的到pid为146352、查看当前线程个数[root@localhost ~]# ps -Lf 14635|wc -l353、...

    1、看看tomcat进程pid

    ps -ef|grep tomcat

    root 14635 1 2 12:34 pts/0 00:01:21 /usr/bin/java -Djava.util.logging.config.file=

    获的到pid为14635

    2、查看当前线程个数

    [root@localhost ~]# ps -Lf 14635|wc -l

    35

    3、查看线程详细信息

    [root@localhost ~]# top -Hp 14635

    top - 13:39:56 up 1 day, 57 min, 1 user, load average: 0.00, 0.02, 0.05

    Threads: 33 total, 0 running, 33 sleeping, 0 stopped, 0 zombie

    %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.3 st

    KiB Mem: 1532752 total, 1380028 used, 152724 free, 126608 buffers

    KiB Swap: 0 total, 0 used, 0 free. 287584 cached Mem

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

    14644 root 20 0 2526016 345728 12268 S 0.3 22.6 0:03.10 java

    14635 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.00 java

    14636 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.97 java

    14637 root 20 0 2526016 345728 12268 S 0.0 22.6 0:03.76 java

    14638 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.03 java

    14639 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.04 java

    14640 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.00 java

    14641 root 20 0 2526016 345728 12268 S 0.0 22.6 0:36.11 java

    14642 root 20 0 2526016 345728 12268 S 0.0 22.6 0:07.06 java

    14643 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.00 java

    14645 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.26 java

    14646 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.00 java

    14647 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.24 java

    14648 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.19 java

    14652 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.04 java

    14653 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.20 java

    14654 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.05 java

    14655 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.09 java

    14660 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.47 java

    14661 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.49 java

    14662 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.30 java

    14663 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.24 java

    14664 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.00 java

    14665 root 20 0 2526016 345728 12268 S 0.0 22.6 0:02.17 java

    14667 root 20 0 2526016 345728 12268 S 0.0 22.6 0:01.09 java

    14668 root 20 0 2526016 345728 12268 S 0.0 22.6 0:01.72 java

    14670 root 20 0 2526016 345728 12268 S 0.0 22.6 0:01.40 java

    14671 root 20 0 2526016 345728 12268 S 0.0 22.6 0:01.67 java

    14672 root 20 0 2526016 345728 12268 S 0.0 22.6 0:01.68 java

    14673 root 20 0 2526016 345728 12268 S 0.0 22.6 0:01.55 java

    14674 root 20 0 2526016 345728 12268 S 0.0 22.6 0:01.88 java

    15042 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.75 java

    15043 root 20 0 2526016 345728 12268 S 0.0 22.6 0:00.75 java

    4、参考文章

    http://blog.csdn.net/lxxxzzl/article/details/45973925

    展开全文
  • Tomcat ManagerTomcat Manager是一个Tomcat内置的管理界面, 管理界面随Tomcat的每次安装一起启动,提供包括快速入门指南和相关文档的链接。通过此界面,您可以查看Tomcat指标,并通过JMX代理Servlet查询指标数据。...

    8cb839f48465a8a62f252cc58c666021.png

    Tomcat Manager

    Tomcat Manager是一个Tomcat内置的管理界面, 管理界面随Tomcat的每次安装一起启动,提供包括快速入门指南和相关文档的链接。通过此界面,您可以查看Tomcat指标,并通过JMX代理Servlet查询指标数据。

    b9c9b84f23bc37728c8411e3f123571b.png

    Tomcat Manager角色和权限

    虽然管理界面是开箱即用的,但是在没有设置适当的用户和角色之前,您将无法访问。Tomcat提供多个角色访问Tomcat Manager,主要的两个角色是:

    • manager-jmx :提供对JMX代理servlet和Tomcat服务器状态页面的访问

    • manager-gui :授予对Tomcat应用程序管理器的访问权限,您可以在其中运行诊断程序并手动触发垃圾回收

    如果需要从管理界面访问Tomcat指标,您需要为用户分配适当的角色。您可以通过更新Tomcat的conf / tomcat-users.xml配置文件来完成此操作:

    rolename="manager-gui"/>

    rolename="manager-jmx"/>

    " roles="manager-jmx,manager-gui"/>

    此代码段首先定义了我们要分配给用户的两个角色。然后,它创建一个新的 tomcat-jmx用户,为其分配这些角色,并为用户设置密码。如果您使用全新安装的Tomcat,则需要创建一个新用户; 否则,您可以将角色分配给现有用户。

    Tomcat Manager的Web界面

    默认情况下,可以从 http://localhost:8080本地访问Tomcat Manager,你也可以在Tomcat的服务器配置文件中进行更改。当你访问Web界面前,系统将提示您登录。主要的数据指标如下:

    • 服务器和应用程序状态页面 :显示JVM,连接器和应用程序指标的高级概述,包括内存使用,线程计数和请求处理时间

    • 应用程序管理器 :提供诊断工具,用于调查应用程序中的内存泄漏

    • JMX代理 :用于查询Tomcat指标的基于文本的界面

    Tomcat的服务器状态页面

    应用程序和服务器状态的高级视图 ,可以导航到 /manager/status页面或单击主页上的“Server Status”按钮。此页面包含有关Tomcat服务器及其AJP和HTTP连接器的信息,以及JVM的内存使用情况。

    7715c6fc663f34e24a6ce6c0c331db8d.png

    每个连接器部分显示有关线程使用情况的信息(例如,最大线程数,当前线程数和当前繁忙线程数)以及请求吞吐量和性能(例如,处理时间,错误计数和接收的字节数),以及每个连接器的信息。

    每个线程在处理请求时都会经历一系列阶段:

    • 就绪(Ready):该线程可用于处理请求。

    • 解析和准备请求(Parse and prepare request):该线程正在解析请求头或准备读取请求的主体。

    • 服务(Service):线程正在处理并生成传入请求的响应。

    • 完成(Finishing):线程已完成处理请求并将生成的响应发送回客户端。

    • Keep-Alive:线程保持连接打开,以便同一客户端发送另一个请求。此阶段的最长持续时间由服务器配置文件中设置的 keepAliveTimeout值确定。连接超时后,线程返回就绪阶段。

    线程阶段可以帮助您准确地衡量准备接受传入请求的线程数。您还可以在服务器状态页面上的Tomcat应用程序列表中查看每个已部署应用程序的请求计数。

    Tomcat应用程序状态页面

    如果要查看所有已部署应用程序的状态,您可以导航到 manager/status/all页面。此页面(页面往下拉)列出了所有应用程序,包括Tomcat Manager本身,因此您可以快速查看处理时间,活动会话以及为每个应用程序加载的JSP servlet数量。

    e0174329789839eaaa6f10bb2e30a317.png

    应用程序管理器

    要运行诊断程序,您可以在 /manager/html导航到Tomcat的应用程序管理器界面,或者单击Tomcat Manager主页上的“Manager App”按钮。应用程序管理器提供了一个用于快速管理应用程序的简单界面,以及用于排除内存泄漏故障的诊断部分。

    a6d08ab3eb8edd5a8a9be8aebdb899a1.png

    “Find leaks”按钮可以对应用程序中的内存泄漏运行诊断检查。当垃圾收集器无法通过删除应用程序不再需要的对象来释放工作内存时,会发生内存泄漏。这会导致应用程序使用更多资源,直到它用完为止,从而产生致命的内存错误甚至内存溢出。请注意,应谨慎使用此诊断检查,因为它会触发垃圾回收,对性能有一定的影响。

    这个界面只是简单的访问Tomcat服务器的状态,使您能够快速查看相关数据。后面的章节会有详细的讲解。

    查询Tomcat指标

    Tomcat Manager可以使用 manager-jmx角色访问JMX代理servlet,该角色允许您从Web浏览器查询。您可以在 http://localhost:8080/manager/jmxproxy找到Tomcat的可用MBean列表(纯文本格式)。

    5b345a6e2c355df77138b4035dd421ad.png

    如果要查询特定MBean的数据,可以按以下格式将参数添加到MBean的域,类型,名称和属性的URL中:

    http://localhost:8080/manager/jmxproxy/?get=:type=,name=""&att=

    在上述的JMX属性和MBean列中找到这些参数。您可以使用以下命令查看HTTP连接器的最大请求处理时间的数据:

    http://localhost:8080/manager/jmxproxy/?get=Catalina:type=GlobalRequestProcessor,name="http-nio-8080"&att=maxTime

    这将产生以下结果:

    OK - Attribute get 'Catalina:type=GlobalRequestProcessor,name="http-nio-8080"' - maxTime = 189

    命令模式使用起来比较复杂并且不直观,同时不能比较多个指标或查看数据随时间的变化情况。为了更深入地了解Tomcat的运行状况和性能,我们需要使用其他工具,如JConsole。

    为Tomcat监视工具启用远程JMX连接

    在使用JConsole监视Tomcat服务器之前,需要为JMX启用远程连接。JConsole可能会消耗大量系统资源,因此Oracle 建议仅通过连接到远程主机,将JConsole与正在监视的服务器隔离。请注意,启用远程JMX访问需要适当的安全预防措施,因为JMX提供有限制的访问控制。为了演示的方便,我们禁用SSL。

    首先,在Tomcat的/ bin目录中创建一个setenv.sh文件,并包含以下内容:

    export JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote" export JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.port=" export JAVA_OPTS="${JAVA_OPTS} -Djava.rmi.server.hostname=" export JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.ssl=false" export JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.authenticate=true" export JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.access.file=${CATALINA_BASE}/conf/jmxremote.access export JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.password.file=${CATALINA_BASE}/conf/jmxremote.password

    这将设置JConsole可用于远程连接到Tomcat服务器的主机名和端口。您可以指定任何主机名和未使用的端口。虽然此示例不包含SSL,但它确实启用了密码验证,并指定了在何处查找访问(用户名)和密码文件; 如果它们尚不存在,您可能需要创建它们。您可以通过编辑$ {CATALINA_BASE} /conf/jmxremote.access文件来添加新用户并为他们提供两种权限之一( readonlyreadwrite ):

    tomcatUserRead readonly

    tomcatUserWrite readwrite

    第一行授予 tomcatUserRead用户 readonly权限,这意味着该用户可以查看MBean属性并接收通知。

    第二行 tomcatUserWrite用户提供了 readwrite权限,允许该用户添加和删除MBean,设置属性和运行操作。

    接下来,在$ {CATALINA_BASE} /conf/jmxremote.password文件中为这些用户设置密码:

    tomcatRead tomcatWrite

    保存文件并重新启动Tomcat服务器。接下来,打开JConsole并运行以下命令,确保包含您在setenv.sh文件中定义的主机和端口:

    jconsole :

    这将打开JConsole界面,您可以在其中开始查看与JVM和Tomcat服务器相关的数据。

    使用JConsole

    JConsole是JDK附带的图形界面。JConsole提供了一种更直观的方式来监视关键JVM指标,如堆内存使用情况,线程使用情况和CPU使用情况。而不是通过有限的接口(如JMX代理)查询数据,您可以使用JConsole快速查看多个指标的数据,并深入查看Tomcat的Catalina和JVM的java.lang域的特定MBean类型和属性。您可以导航到六个不同的选项卡:概览,内存,线程,类,VM摘要和MBean。每个选项卡都提供一个下拉菜单,使您可以查看作用于不同时间范围的数据,例如最近五分钟,过去一个月或从服务器开始(在下拉列表中显示为“全部”选项)。

    概览

    JConsole的Overview选项卡显示了与JVM的内存使用情况,线程数,应用程序加载的Java类以及CPU使用率相关的信息,因此您可以一目了然地监视虚拟机的运行状况。

    34d158c627f0d1ef1bc3d48ad7acc9c8.png

    VM摘要

    在“VM摘要”选项卡中,您可以查看有关JVM体系结构及其特征的更多详细信息。如果您需要快速查看系统级属性或JVM配置设置,这将非常有用。这包括您在Tomcat的/bin/setenv.sh配置文件中指定的任何参数。

    6467c550f5c8ef50834ffe71ef398d8c.png

    内存

    在“内存”选项卡下,您可以查看有关虚拟机堆和非堆内存使用情况的更详细统计信息,以及有关内存池的数据。在此选项卡中,您可以单击“执行GC”以运行垃圾回收,就像在Tomcat管理器中一样。

    74b8e281209e802aefa84482a259fc79.png

    如果需要查看与特定内存池相关的数据,可以从“内存”选项卡左上角的“图表”下拉列表中选择该数据。

    393ee566eea3c831ab98666b83fb8e20.png

    线程

    JConsole的“线程”选项卡提供有关可用JVM线程的更多详细信息以及对死锁线程的检查。“线程”列表显示线程名称,状态(类似于您在Tomcat的服务器状态页面上看到的线程“阶段”),以及每个可用线程的堆栈跟踪。死锁检查对于查找可能导致应用程序挂起的线程非常有用。如果找到任何死锁线程,您将看到一个新的死锁选项卡,其中包含有关导致死锁的更多信息。

    2425275db0d58a7db6443c4d4799b107.png

    MBean

    要查看与您正在监视的Tomcat指标相关的实时数据,您可以在MBeans选项卡下查看Catalinajava.lang域,并深入查看特定属性。与Tomcat Manager一样,JConsole从MBean服务器收集数据,但提供了一个更简单的界面来查找所需的指标。

    7ccaa098b980c0eb1c88c307abf57b6d.png

    JConsole提供了JVM和MBean数据的完美摘要,它使您能够绘制JVM数据图形,以可视化资源使用趋势。

    自定义Tomcat访问和服务器日志

    默认情况下,Tomcat访问日志使用公共日志格式 ,并记录服务器处理的所有请求。您可以在Tomcat的conf / server.xml配置文件中查看访问日志中包含的内容:

    className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />

    Valve元素的 pattern属性指定应包含在每个日志条目中的每个请求(及其响应)的信息:

    • 发出请求的客户端的主机名或IP地址( %h )

    • 来自identd服务的用户名(总是返回' - ')( %l )

    • 经过身份验证的用户名(返回 -如果未使用)( %u )

    • 请求的日期和时间( %t )

    • 请求方法和URI( %r )

    • 响应的HTTP状态代码( %s )

    • 返回给客户端的对象大小,以字节为单位( %b )

    上面示例中使用的模式将按以下格式记录请求:

    192.168.33.1 - - [21/Sep/2018:16:51:59 +0000] "GET /sample/ HTTP/1.1" 403 1145

    Tomcat默认也会生成服务器日志,并使用java.util.logging 包来实现 。服务器日志显示与Tomcat JVM和Catalina服务器相关的信息,包括内存不足(OOM)错误和部署活动,如下例所示:

    16-Oct-2018 18:37:08.624 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 16-Oct-2018 18:37:08.625 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/9.0.10 16-Oct-2018 18:37:08.629 SEVERE [main] org.apache.catalina.startup.HostConfig.beforeStart Unable to create directory for deployment: [/opt/tomcat/conf/Catalina/localhost] 16-Oct-2018 18:37:08.672 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/tomcat/webapps/sample.war] 16-Oct-2018 18:37:09.341 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/tomcat/webapps/sample.war] has finished in [667] ms

    Tomcat将服务器日志写入控制台和Catalina日志文件(例如, catalina.2018-07-03.log)。您可以自定义Tomcat应记录的信息类型,例如Tomcat日志记录属性文件( conf / logging.properties )中的最小日志级别,输出目录和输出格式。

    处理程序是处理传入日志消息并格式化其输出的Java组件,使用格式化程序记录到文件( FileHandler )或控制台( ConsoleHandler )。Tomcat的日志记录属性文件包括Catalina服务器,Tomcat Manager和已部署的Web应用程序日志的配置:

    ############################################################ # Handler specific properties. # Describes specific configuration info for Handlers. ############################################################ 1catalina.org.apache.juli.FileHandler.level = FINE 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. 2localhost.org.apache.juli.FileHandler.level = FINE 2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 2localhost.org.apache.juli.FileHandler.prefix = localhost. 3manager.org.apache.juli.FileHandler.level = FINE 3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 3manager.org.apache.juli.FileHandler.prefix = manager. 3manager.org.apache.juli.FileHandler.bufferSize = 16384 java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter ############################################################ # Facility specific properties. # Provides extra control for each logger. ############################################################ org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = \ 2localhost.org.apache.juli.FileHandler org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = \ 3manager.org.apache.juli.FileHandler

    默认情况下,Tomcat为其处理程序( FINE )和工具( INFO )设置两个不同的日志级别。FINE日志级别包括有关服务器活动的详细信息, INFO级别记录更高级别的信息性消息。处理程序属性整体管理Tomcat日志,而工具属性使您可以管理每个已部署应用程序的配置,包括Tomcat Manager。例如,要调整Tomcat Manager的日志级别,可以编辑以下处理程序和工具属性:

    3manager.org.apache.juli.FileHandler.level = FINE 3manager.org.apache.juli.FileHandler.directory = ${catalina.

    总结

    通过设置一些简单权限,您可以立即开始使用Tomcat Manager查看Tomcat和JVM数据。一旦为JMX启用了远程连接,就可以使用JConsole等工具通过简单的图形界面监控Tomcat数据。Tomcat还在其访问和服务器日志中提供有关请求和服务器活动的基本诊断信息。

    推荐阅读:

    filter、interceptor、aspect不知如何选择

    Redis 下购物车设计实战

    Lambda表达式入门(下篇)

    9a9650d7d689c7769e04a996040a2137.png

    就知道你 “在看458599427907f14a8f97aea56c3e6733.gif

    展开全文
  • 1.前言:我们的监控系统是zabbix,最近刚做完jvm还有tomcat监控,需要吐槽以下内容:zabbix官方提供的jvm和tomcat监控模版,存在item书写格式的坑,导致很多内容无法获取到监控。网友写的zabbix监控java文章,99%...
  • 1、首先需要配置tomcat,编辑tomcat/bin/catalina.bat,在第一行加上 set JAVA_OPTS= -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10004 -Dcom.sun.management.jmxremote.ssl=fa
  • 专栏上一期我们分析了 JVM GC 的基本原理以及监控和分析工具,今天我们接着来聊如何监控 Tomcat 的各种指标,因为只有我们掌握了这些指标和信息,才能对 Tomcat 内部发生的事情一目了然,让我们明白系统的瓶颈在哪里...
  • 1 起一个监控服务,写一个listner,服务启动即开启监控线程 public class CheckServerListner implements ServletContextListener { private CheckServerThread myThread; @Override public void ...
  • Zabbix在线监控tomcat线程数,因为线上没有配置jmx,所以使用jstack pid的方式获取thread线程。脚本结合zabbix的自动发现,可以实现多个tomcat实例的自动发现配置。免去以后tomcat增加后一个个手动添加的烦恼。...
  • 监控指标说明Tomcat主要监控线程工作状态、请求数、 会话数、线程数、虚拟主机、JAVA虚拟机内存占用情况。监控工具Tomcat提供的manager通过使用Applications Manager(又称opManager)来进行监控。使用这种方式,所...
  • Tomcat测试监控Tomcat性能监控工具

    千次阅读 2019-07-30 09:15:31
    Tomcat主要监控线程工作状态、请求数、 会话数、线程数、虚拟主机、JAVA虚拟机内存占用情况。 监控工具 Tomcat提供的manager 通过使用Applications Manager(又称opManager)来进行监控。 使用这种方式,所监控Tomc...
  • 二、安装步骤将安装包 apache-tomcat-8.5.39.tar.gz 上传至服务器 /usr/local 目录下,再执行如下步骤:[root@admin local]# cd /usr/local [root@admin local]# tar -zxvf apache-tomcat-8.5.39...
  • #include #include #include #define OK 0 #define WARNING 1 #define CRITICAL 2 #define UNKNOWN 3 #define LEN 1023 #define CMD "ps -efL | grep tomcat | wc -l" int exitstatus=
  • 后台有很多线程在运行,我要监控这些线程是否成功启动,运行。如果没有启动或是启动失败,我就要重启tomcat。。。这些都基于web网页实现。。。。。,java控制tomcat,除了public static Process run(File dir)throws...
  • tomcat 线程守护

    2010-04-27 09:59:45
    在J2EE开发过程中经常由于内存溢出等多方面原因,导致tomcat服务器软件自动停止服务,从而影响了Web服务,本代码采用VB开发,主要是监控tomcat是否被关闭,保证tomcat的正常运行!
  • nagios插件之监控多个tomcat线程

    千次阅读 2015-05-27 00:14:31
    vi check_tomcat_threads.c #include #include #include #define OK 0 #define WARNING 1 #define CRITICAL 2 #define UNKNOWN 3 #define LEN 1000 #define MIN_LEN 100 #define CMD1 "p
  • Tomcat 监控

    千次阅读 2015-09-11 15:48:00
     对Tomcat线程性能进行监控,可使用Tomcat自带的Status页面进行监控监控方案如下:  1、修改配置文件tomcat-users,设置admin权限,在配置:  2、重启Tomcat服务,在浏览器中输入URL...
  • 线程的五种状态* 新建:new* 运行:runnable* 等待:waitting(无限期等待),timed waitting(限期等待)* 阻塞:blocked* 结束:terminated线程转换关系线程的两种监控方法一,jvisualvm,图形界面的方式 监控之前先对...
  • Zabbix在线监控tomcat线程数,因为线上没有配置jmx,所以使用jstack pid的方式获取thread线程。脚本结合zabbix的自动发现,可以实现多个tomcat实例的自动发现配置。免去以后tomcat增加后一个个手动添加的烦恼。 ...
  • Tomcat远程监控

    2016-04-17 22:29:20
    //具体步骤如下: 1.利用JDK自带jvisualvm.exe工具进行本地及远程监控... 本机运行jvisualvm.exe,选中要监控的本地Tomcat即可查看内存,线程,cpu,对象等信息。 3.远程监控 修改远程Tomcat应用服务器bin/cata...
  • Tomcat线程Stage值说明

    2011-07-22 19:58:49
    TOM猫的控制台,可监控所有线程的情况,其中的Stage状态图如下: [img]http://dl.iteye.com/upload/attachment/523348/0b6823ec-7809-3237-b623-7a83e1967b63.jpg[/img] Tomcat文档中提到: A table showing ...
  • zabbix监控tomcat线程

    千次阅读 2018-05-19 09:31:10
    vi check_tomcat_thread_num.sh #!/bin/sh port=$1 pstree -a | awk -v port=$port -F'[-*]+' '{a[NR]=$0; if(a[NR-1] ~ port) {printf("%s\n",$2); exit}}' 改为如下,增加查找为0的(即程序已退出): ...
  • 时间线2020-07-11 17:40:00 hotfix修复版本上线2020-07-11 17:50:00 用户反馈页面无法访问,所有的请求全部爆502 bad gateway , 显示连接不上后端服务... 版本回滚排查过程查看grafana应用监控,可以很明显的看到,t...
  • 时间线2020-07-11 17:40:00 hotfix修复版本上线2020-07-11 17:50:00 用户反馈页面无法访问,所有的请求全部爆502 bad gateway , 显示连接不上后端服务... 版本回滚排查过程查看grafana应用监控,可以很明显的看到,t...
  •  如果你所使用的服务器是linux,可以点击[Linux下实现tomcat线程监控并自启]进行设置。 下面是一个实现tomcat监控并重启的例子 //echo off是批处理文件中的命令,可以使得下面的命令不在显示屏上面...
  • Tomcat 管理监控工具

    2019-04-15 17:34:19
    从github的链接下载psi-probe的war包,部署到您本地的Tomcat服务器即可。 放到本地Tomcat目录下 进入manager页面(需要添加相应的权限),添加权限如下 访问链接 点击国旗图标可以切换显示语言 ...
  • Tomcat监控

    2019-07-09 15:56:05
    Tomcat监控 1、(CMS垃圾回收算法)CMS执行过程可以分成:初始标记,并发标记,并发预处理,重标记,并发清理,重置六个阶段 监控指标: Free Memory 剩余内存 Total Memory 总内存 Max Memory 最大内存 Max ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 429
精华内容 171
关键字:

tomcat线程监控