精华内容
下载资源
问答
  • Logstash 读取tomcat错误日志

    千次阅读 2018-04-16 07:30:14
    Logstash 读取tomcat错误日志分布式实战(干货)spring cloud 实战(干货)mybatis 实战(干货)spring boot 实战(干货)React 入门实战(干货)构建中小型互联网企业架构(干货)python 学习持续更新ElasticSearch...

    Logstash 读取tomcat错误日志

    概述

    最近搭建了elk日志分析系统、想读取一下tomcat的错误日志、但是一个异常由于换行总是分多次存储展示、导致不是很清晰的看一个错误日志信息

    • inputs 输入
    • codecs 解码
    • filters 过滤
    • outputs 输出

    image image image

    例子

    安装插件 logstash-filter-multiline

    在线安装插件
    
    logstash-plugin.bat install logstash-filter-multiline
    
    升级插件 
    logstash-plugin.bat update logstash-filter-multiline
    
    离线安装
    logstash-plugin.bat install logstash-filter-multiline.gem
    
    卸载
    logstash-plugin.bat uninstall logstash-filter-multiline
    
    

    例子

    如果不是以 “[“开头的日志 都跟上一个日志合并在一起。以此类推遇到其他的多行日志也可以按照这个方法来做合并。

    input {  
        file { 
    		type => "tomcat_error"
            path => "E:/install/temp/*.log"
    		start_position => beginning
        }  
    } 
    
    filter {
        if [type] == "tomcat_error" {
                multiline {
                          pattern => "^[^\[]"
                          what => "previous"
                      }
                    mutate {
               split => ["message", "|"]
            }
            grok {
                match => { 
                               "message" => "(?m)%{TIMESTAMP_ISO8601:logtime}"
                }
            }
        }
    }
     
    
    output {    
        elasticsearch { hosts => localhost   
                        index => "logstash-cmis"  
                        document_type =>"tomcat"}  
          
        stdout { codec => rubydebug  }   
    }  
    

    例子一

    input {  
        file {  
            path => "E:/install/temp/*.log"
    		start_position => beginning
        }  
    } 
     
    
    output {    
        elasticsearch { hosts => localhost   
                        index => "logstash-cmis"  
                        document_type =>"tomcat"}  
          
        stdout { codec => json_lines }   
    }  
    

    例子二

    
    input {  
        file {  
            path => "E:/install/temp/*.log"
    		start_position => beginning
            codec => multiline {  
                pattern => "^\s"  
                what => "previous"  
            }  
        }  
    } 
    
     filter {  
        multiline {    
    		pattern => "^\s+%{TIMESTAMP_ISO8601}"  
    		negate=>true    
    		what=>"previous"    
    	}
    
    }
    
    output {    
        elasticsearch { hosts => localhost   
                        index => "logstash-cmis"  
                        document_type =>"tomcat"}  
          
        stdout { codec => json_lines }   
    }  
    

    例子

    input {  
        file{  
            path => "E:/install/temp/*.csv"  
            start_position => beginning  
        }  
     }    
        
    filter {  
        grok {  
            patterns_dir => "patterns.txt"  
            match =>{ "message" => "%{DATA:name},%{DATA:person_id},%{DATA:email},%{DATA:tel},%{DATA:adress},%{DATA:from}%{S}" }  
            }  
        mutate{  
            remove_field => ["host","path","message","@version"]  
    }  
    }  
        
    output {    
        elasticsearch { hosts => localhost   
                        index => "sgdb"  
                        document_type =>"sgdb"}  
          
        stdout { codec => rubydebug }   
    }  
    

    例子四

    • 分割匹配日志

    日志格式

    2015-09-28·09:50:48·[http-bio-80-exec-13]·DEBUG·com.weitoo.server.aspect.LogAspect·-{ip:183.16.4.40,url:http://api.xx.com/server/sc/commodity/getOnlineCommodity,param:{"shopId":1000001,"needCategory":false,"needCommodityTotal":false,"searchCommodityId":1002001},return:{"status":1},cost:3.911ms}
    
    SERVER_LOG %{DATA:year}-%{DATA:month}-%{DATA:day}\ %{DATA:hour}\:%{DATA:min}\:%{DATA:sec}\ %{DATA:level}\ %{DATA:class} -{ip:%{DATA:ip},url:%{DATA:url},param:%{DATA:param},return:%{DATA:return},cost:%{BASE10NUM:cost}
    

    conf

    input {
      file {
       type=>"xx_server_log"
       path=>"/opt/software/apache-tomcat-7.0.59/logs/catalina.out"
       codec=> multiline {
               pattern => "(^.+Exception:.+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)"
               what=> "previous"
        }
    
     }
    }
    
    
    
    filter {
            if [type] == "xx_server_log" {
               grok {
                     match => [ "message","%{SERVER_LOG}"]
                     patterns_dir => ["/opt/conf/logstash"]
                     remove_field => ["message"]
              }
            }
    }
    
    
    output {
       elasticsearch {
      host =>"xx-management"
      protocol =>"http"
      workers => 5
      template_overwrite => true
    
    }
       stdout { codec=> rubydebug }
    }
    

    清空es数据

    DELETE /logstash-cmis
    
    DELETE /.kibana/index-pattern/logstash-cmis
    
    GET /_search
    展开全文
  • 1 定义好2个监控项(1一个统计错误个数,一个统计错误日志内容)vim /etc/zabbix/zabbix_agentd.d/tomcat-params.conf(我的路径在这里, 根据agent自己的路径填写)UserParameter=tomcat.errorLog,/etc/zabbix/sh/...

    1 定义好2个监控项(1一个统计错误个数,一个统计错误日志内容)

    vim /etc/zabbix/zabbix_agentd.d/tomcat-params.conf(我的路径在这里, 根据agent自己的路径填写)

    UserParameter=tomcat.errorLog,/etc/zabbix/sh/monitor_tomcat_error_log.sh

    UserParameter=tomcat.errorCount,/etc/zabbix/sh/count_tomcat_error_log.sh

    2 编写监控脚本

    vim /etc/zabbix/sh/count_tomcat_error_log.sh(统计错误日志条数)

    #!/bin/bash

    LAST_MINUTES=$(date -d ‘-1 minute’ +%H%M%S)

    LOG_NUM=0

    LOG_PATH=”/data/log/tomcat8/test.$(date +%Y-%m-%d).mon”

    if [[ ! -f “$LOG_PATH” ]];then

    echo “ZBX_NOTSUPPORTED”

    exit 1

    fi

    while read line;do

    if [[ “$line” =~ ^[0-9]{2}:[0-9]{2}:[0-9]{2} ]];then

    date_time=$(echo $line | grep -E -o “[0-9]{2}:[0-9]{2}:[0-9]{2}” | tr -d ‘:’)

    date_time=$(echo $date_time | sed ‘s/^0//’)

    LAST_MINUTES=$(echo $LAST_MINUTES | sed ‘s/^0//’)

    if [[ “$date_time” -gt “$LAST_MINUTES” ]];then

    ((LOG_NUM++))

    else

    break

    fi

    fi

    done <

    echo -n $LOG_NUM

    chmod 777 /etc/zabbix/sh/count_tomcat_error_log.sh 记得给脚本权限

    vim /etc/zabbix/sh/monitor_tomcat_error_log.sh(统计错误日志内容,这样不需要上服务器查看错误日志)

    #!/bin/bash

    LAST_MINUTES=$(date -d ‘-1 minute’ +%H%M%S)

    LOG_NUM=0

    MAX_LOG_RECORD=3

    MAX_LOG=30

    LOG_CONTENT=””

    LOG_PATH=”/data/log/tomcat8/test.$(date +%Y-%m-%d).mon”

    while read line;do

    if [[ “$line” =~ ^[0-9]{2}:[0-9]{2}:[0-9]{2} ]];then

    date_time=$(echo $line | grep -E -o “[0-9]{2}:[0-9]{2}:[0-9]{2}” | tr -d ‘:’)

    date_time=$(echo $date_time | sed ‘s/^0//’)

    LAST_MINUTES=$(echo $LAST_MINUTES | sed ‘s/^0//’)

    if [[ “$date_time” -gt “$LAST_MINUTES” ]];then

    ((LOG_NUM++))

    [[ “$LOG_NUM” -gt “$MAX_LOG_RECORD” ]] || log_entry=”$line\n$log_entry”

    [[ “$LOG_NUM” -gt “$MAX_LOG_RECORD” ]] || LOG_CONTENT=”$LOG_CONTENT\n$log_entry”

    else

    break

    fi

    log_entry=””

    else

    [[ “$LOG_NUM” -gt “$MAX_LOG_RECORD” ]] || log_entry=”$line\n$log_entry”

    fi

    if [[ “$LOG_NUM” -gt “$MAX_LOG” ]];then

    break

    fi

    done <

    [[ “$LOG_NUM” -gt “$MAX_LOG” ]] && echo -n -e “$LOG_CONTENT” | sed ‘s#^#
    #’

    chmod 777 /etc/zabbix/sh/monitor_tomcat_error_log.sh(记得给脚本权限)

    3 在zabbix 里面添加监控项

    第一张是统计个数, 第二张是统计内容

    761f63d3250c6acec7b02d2c20bb9459.png

    e7fd209eabcace48413ebab0af972201.png

    展开全文
  • Python截取Tomcat错误日志详解

    千次阅读 2018-12-19 15:10:27
    日常运维过程中,Tomcat日志较多难于分析,此Python脚本可以自动截取Tomcat日志错误部分,方便快捷,
    import re
    import os
    def error(logname):
        f1=open(logname,encoding='utf-8')#encoding='gbk'
        my=[]
        for a in f1:
            b=re.search('error',a,re.IGNORECASE)
            c=re.search('exception',a,re.IGNORECASE)
            d=re.search('at java',a,re.IGNORECASE)
            e=re.search('at com',a,re.IGNORECASE)
            f=re.search('at org',a,re.IGNORECASE)
            g=re.search('at sun',a,re.IGNORECASE)
            if b or c or d or e or f or g:
                log_str=a
                my.append(log_str)
        errlog='C:\\Users\\user\\Desktop\\error.log'
        f2=open(errlog,'w')
        f2.writelines(my)
        f2.flush()
        f2.close()
        f1.close()
        return 0
    
    error('C:\\Users\\user\\Desktop\\11.txt')
    
    
    展开全文
  • 当我在Eclipse里编写好web程序后,直接在文件系统中启动Tomcat,发现没有错误日志输出了 但是在Eclipse中启动会有日志输出 直接使用命令行的方式跑catalina.bat 也没有作用 问题解决 通过查阅,发现高版本Tomcat...

    Hello,I'm Shendi


     

    目录

     

    问题描述

    问题解决

    1. Create a file called log4j.properties with the following content and save it into $CATALINA_BASE/lib

    2.Download Log4J (Tomcat requires v1.2.x).

    3.Download or build tomcat-juli.jar and tomcat-juli-adapters.jar that are available as an "extras" component for Tomcat.

    4.If you want to configure Tomcat to use log4j globally:

    5.If you are running Tomcat with separate $CATALINA_HOME and $CATALINA_BASE and want to configure to use log4j in a single $CATALINA_BASE only:

    6.Delete $CATALINA_BASE/conf/logging.properties to prevent java.util.logging generating zero length log files.

    7.启动Tomcat


     

    问题描述

    当我在Eclipse里编写好web程序后,直接在文件系统中启动Tomcat,发现没有错误日志输出了

    但是在Eclipse中启动会有日志输出

    直接使用命令行的方式跑catalina.bat 也没有作用


    问题解决

    通过查阅,发现高版本Tomcat默认是不带控制台日志输出的

    解决办法就是将默认日志输出替换为 log4j

    官网文档,可进入官网自行查看

    http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Using_Log4j

     

    1. Create a file called log4j.properties with the following content and save it into $CATALINA_BASE/lib

    创建log4.properties到Tomcat的lib目录下

    默认内容如下

    log4j.rootLogger = INFO, CATALINA
    
    # Define all the appenders
    log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina
    log4j.appender.CATALINA.Append = true
    log4j.appender.CATALINA.Encoding = UTF-8
    # Roll-over the log once per day
    log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'
    log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
    log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
    
    log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost
    log4j.appender.LOCALHOST.Append = true
    log4j.appender.LOCALHOST.Encoding = UTF-8
    log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'
    log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
    log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
    
    log4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.MANAGER.File = ${catalina.base}/logs/manager
    log4j.appender.MANAGER.Append = true
    log4j.appender.MANAGER.Encoding = UTF-8
    log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
    log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
    log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
    
    log4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-manager
    log4j.appender.HOST-MANAGER.Append = true
    log4j.appender.HOST-MANAGER.Encoding = UTF-8
    log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
    log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
    log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
    
    log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.Encoding = UTF-8
    log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
    
    # Configure which loggers log to which appenders
    log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO, LOCALHOST
    log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager] =\
      INFO, MANAGER
    log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager] =\
      INFO, HOST-MANAGER

     

    2.Download Log4J (Tomcat requires v1.2.x).

    下载log4j,版本最低为1.2

    这是官网提供的链接 http://logging.apache.org/log4j

    也可以直接通过此链接下载 

    http://archive.apache.org/dist/logging/log4j/1.2.17/

     

    3.Download or build tomcat-juli.jar and tomcat-juli-adapters.jar that are available as an "extras" component for Tomcat.

    下载 tomcat-juli.jar 和 tomcat-juli-adapters.jar

    官网链接  http://tomcat.apache.org/tomcat-7.0-doc/extras.html

    可以在 http://tomcat.apache.org/download-70.cgi 下找到extras 里找到对应jar

    这里直接提供地址了,不确定你是否需要的是这个版本

     

    tomcat-juli

    https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-7/v7.0.107/bin/extras/tomcat-juli.jar

    tomcat-juli-adapters

    https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-7/v7.0.107/bin/extras/tomcat-juli-adapters.jar

    4.If you want to configure Tomcat to use log4j globally:

    配置Tomcat全局使用log4j

    • Put log4j.jar and tomcat-juli-adapters.jar from "extras" into $CATALINA_HOME/lib.
    • Replace $CATALINA_HOME/bin/tomcat-juli.jar with tomcat-juli.jar from "extras".

    将log4j和tomcat-juli-adapters放到Tomcat的lib目录下

    将tomcat-juli.jar放入Tomcat的bin目录下,如果有,直接替换

     

    5.If you are running Tomcat with separate $CATALINA_HOME and $CATALINA_BASE and want to configure to use log4j in a single $CATALINA_BASE only:

    这一部分没啥好说的,一般都不设置自己的目录,所以我就直接用翻译软件复制过来了

    如果您使用单独的$ CATALINA_HOME和$ CATALINA_BASE运行Tomcat,并且希望配置为仅在单个$ CATALINA_BASE中使用log4j:

    • 创建$CATALINA_BASE/bin和 $CATALINA_BASE/lib目录(如果不存在)。
    • log4j.jar与 tomcat-juli-adapters.jar从“临时演员”成 $CATALINA_BASE/lib
    • tomcat-juli.jar从“ extras” 放入$CATALINA_BASE/bin/tomcat-juli.jar
    • 如果使用安全管理器运行,则 需要编辑 $CATALINA_BASE/conf/catalina.policy文件以将其调整为使用tomcat-juli.jar的其他副本。

     

    6.Delete $CATALINA_BASE/conf/logging.properties to prevent java.util.logging generating zero length log files.

    删除conf下的loggin.properties文件

    7.启动Tomcat

     

    展开全文
  • #!/usr/bin/python # coding=utf-8 #-----------------------------------------------------...# Name: Tomcat错误日志发送邮件脚本 # Purpose: 收集Tomcat异常日志并发送邮件 # Python: 2.7/2.4 皆可使用 #----
  • tomcat错误日志分析

    千次阅读 2017-07-01 12:57:08
    private WebSocketProcessor ...这样的错误,在tomcat路径下,报的错误是,不能把webSocketProcesser转化为WebSocketProcessor,这样在以后的时候,就知道,是字母写错了,导致不能转化。同时也要注意代码的规范性。
  • linux下抓取错误日志并输出到指定文件 tail -f catalina.out |grep -C 36 Exception >>error.log
  • Tomcat错误日志查看

    万次阅读 2014-08-27 14:44:16
    今天启动Tomcat启动不了,报以下错:  org.apache.catalina.core.StandardContext startInternal  SEVERE: Error listenerStart  org.apache.catalina.core.StandardContext startInternal  SEVERE: ...
  • tomcat错误日志详细

    2013-12-02 06:42:51
    日志jar包copy至common\lib下面去(log4j.jar和common-logging.jar)将log4j.properties文件放到common\classes文件夹下面需要包:commons-logging.jarlog4j-1.2.8.jarlog4j.properties文件内容如下:log4j.root...
  • 日志监控 ' % from_mail).encode() msg[ ' To ' ] = ' , ' .join(to_mail) msg[ ' Cc ' ] = ' , ' .join(cc_mail) msg[ ' Subject ' ] = Header(subject, ' utf-8 ' ).encode() try : s = smtplib....
  • 今天启动Tomcat启动不了,报以下错: org.apache.catalina.core.StandardContext startInternalSEVERE: Error listenerStartorg.apache.catalina.core.StandardContext startInternalSEVERE: Context [/******] ...
  • 一月 09, 2014 8:44:21 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 严重: The web application [] appears to have started a thread named [SeedGenerator Thread] but has ...
  • ▼本文共1100字,预计阅读时间3分钟上周《投资日志 #112 我是如何挑选基金的(一)》中,简单聊了,我自己在挑选基金时,关注的几个要点。其中有提到,挑选主动型基金,其实是在挑选基金经理。但基金经理是人。人,是...
  • 配电箱一次系统图首先,我们看下下面这张配电箱的一次系统图,这是一台非标箱,配电箱编号JF-ATP-DT,配电箱的尺寸是800宽*1000高*200深;配电箱底边距离地边1米,明装;配电箱一次系统图配电箱参数的认识大家知道...
  • 猪肉一直是我们餐桌上面的主角,很多的美食都是依靠猪肉完成的。都说猪浑身上下都是宝,我们时不时就会买上一点猪肉来打打牙祭。但是今年的猪肉价格一直非常地昂贵,一直也没有打消我们对于美食的向往,菜市场的猪肉...
  • tomcat查看错误日志

    2016-10-31 15:58:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • tomcat日志

    2019-10-11 19:35:32
    为什么要说tomcat的日志,因为凡是部署在tomcat容器上的web应用,运行过程都记录在对应的日志中...Tomcat 的日志信息分为两类 :一是运行日志,它主要记录运行过程中的一些信息,尤其是一些异常错误日志信息 ; 二是...
  • tomcat6.0.36 错误日志

    千次阅读 2014-07-26 19:46:29
    前段时间在给客户部署程序时候,按照常规方法部署完毕之后,tomcat的stdout日志中,就一直报上面的错误。   D:\Magtech\tomcat\apache-tomcat-6.0.36\bin\velocity.log 拒绝访问。心想不会是因为文件没有权限...
  • 因为日志不全,所以看不到,解决方法?添加日志文件。具体方法:https://juejin.im/post/6865962931037995021 真正的错误 INFO: No Spring WebApplicationInitializer types detected on classpath Sep 10,...
  • tomcat控制台详细错误日志设置

    热门讨论 2011-09-07 19:12:21
    tomcat控制台详细错误日志设置,有时tomcat控制台报的错误比较模糊,不知道该怎样去找原因,现在好了,按照简单说明配置一下
  • 常使用web服务器的朋友大都了解,一般的web server有两部分日志:一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息二是访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。...
  • 为了获得更好的调试日志记录,请在webapps WEB-INF /...然后,您的服务器日志将显示调试的描述性错误:handlers = org.apache.juli.FileHandler,java.util.logging.ConsoleHandler##################### ##########...
  • 以前用Tomcat用得好好的,项目启动的时候错误日志都会输出到控制台,不知道从啥时候开始,Tomcat的详细错误日志不见了,只报一个万恶的Context [] startup failed due to previous errors,却找不到previous errors...
  • tomcat日志脚本

    2017-11-12 15:52:00
    #!/usr/bin/env python # coding=utf-8 #--------------------------------------------------------- # Name: Tomcat错误日志发送邮件脚本 # Purpose: 收集Tomcat异常日志并发送邮件 # Version:...
  • Tomcat日志

    2021-04-08 19:51:33
    Tomcat在应用过程中,难免会出现错误,如何去查看这些错误,这就需要查看Tomcat日志Tomcat日志存放在/usr/local/tomcat/logs/目录下。 查看Tomcat日志命令如下: [root@tomcat ~]# ls /usr/local/tomcat/logs/ ...
  • Tomcat:第二章:Tomcat日志文件分析

    万次阅读 多人点赞 2020-10-24 11:54:21
    一是运行日志,它主要记录运行过程中的一些信息,尤其是一些异常错误日志信息 ; 二是访问日志,它记录访问的时间、IP 地址、访 问的路径等相关信息。 日志文件类型分析: catalina.***.log :主
  • 比较正常的项目和异常的项目 正常项目 异常项目 //多了一个jdk14的日志jar,多的jar刚好可以和报错信息匹配 解决方法 排除jar slf4j-jdk14 paylib.log activemq-all paylib.mq.activemq activemq-pool paylib.mq....
  • input{ file { path => "/opt/Tomcat7.0.28/logs/*.txt" start_position => "beginning" sincedb_path => "/dev/null" } } filter { grok { match =&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,485
精华内容 994
关键字:

tomcat错误日志