logstash 收集tomcat异常信息

我所期望达到的效果,就是每个日期一条,在kibana界面也是一条。多行异常的也是一条。

其实,很简单,就是加个反向判断。

logstash原理

一个客户端,一个服务器,就是这样的模式

没什么神奇的,最麻烦的正则匹配,不好弄。听说storm更好用。

1.client配置

cat /etc/logstash/conf.d/shipper.conf

input {
    file {
        path => ["/opt/src/logs/*/*/*/*"]
        type => "service"
        start_position => "beginning"
    }
}
filter {
  if [type] == "service" {
      multiline {
          patterns_dir => "/etc/logstash/conf.d"
          pattern => "(^%{MYTIMESTAMP})"
          negate => true
          what => "previous"
      }
      }
  grok {
        patterns_dir => "/etc/logstash/conf.d"
        match => [ "message", "%{MYLOG}" ]
        add_field => [ "log_ip", "随便写" ]
  }
}
output {
        stdout {}
        redis {
        host => "你的服务端ip"
        port => 6379
        password => "8ff35947f8efe8db806622f6a98a1ea3"
        data_type => "list"
        key => "key_count"
    }
}

patterns_dir => "/etc/logstash/conf.d" 这个东西就是正则表达式

新建一个文件 cat /etc/logstash/conf.d/j2ee

JAVACLASS (?:[a-zA-Z$_][a-zA-Z$_0-9]*\.)*[a-zA-Z$_][a-zA-Z$_0-9]*
HTTPPORT  ([a-zA-Z$_0-9]*\-)*([0-9])
JAVALOGMESSAGE (.*)
MYTIMESTAMP 20%{YEAR}-%{MONTHNUM}-%{MONTHDAY}%{HOUR}:%{MINUTE}:%{SECOND}
MYLOG %{MYTIMESTAMP:mytimestamp}\s\[%{HTTPPORT:port}\]\s%{LOGLEVEL:level}\s%{JAVACLASS:class}\s-%{JAVALOGMESSAGE:logmessage}

我的日志格式是这样的

2016-10-2015:52:01.174 [http-apr-8282-exec-4] INFO  c.e.w.c.WorkFlowRestController -resp:

如果你的日志不一样,那么j2ee文件要做相应的修改

http://grokdebug.herokuapp.com/ 这个网站可以测试

比如

启动脚本logstash.sh

#!/bin/bash
. /etc/init.d/functions
function start(){
cd /home/
nohup /opt/logstash/bin/logstash -f /etc/logstash/conf.d/shipper.conf & >>/dev/null 2>&1
}
function stop(){
kill -9 `ps -ef|grep logstash|grep -v grep|awk ‘{print $2}‘`
}
case $1 in
start)
start
;;
stop)
stop
;;
*)
printf "Usage sh *.sh start|stop"
;;
esac

sh logstash.sh stop/start

2.server配置

cat /etc/logstash/conf.d/indexer.conf

input {
    redis {
        host => "172.29.12.193"
        port => 6379
        password => "8ff35947f8efe8db806622f6a98a1ea3"
        type => "redis-input"
        data_type => "list"
        key => "key_count"
    }
}
 
output {
    stdout {}
    elasticsearch {
        cluster => "elasticsearch"
        codec => "json"
        protocol => "http"
        }
}

3.kibana效果

多行为一行就不截图了

时间: 2024-10-13 22:26:59

logstash 收集tomcat异常信息的相关文章

JAVA IO流的简单总结+收集日志异常信息

1.字节流: IuputStream 所有字节输出流的超类 . 抽象类 ---- FileInputStream ---- BufferedInputStream:提供数据的读取效率,拓展方法(内部维护了一个8k字节的数组) OutputStream 所有字节输出流的超类. 抽象类 ---- FileOutputStream ---- BufferedOutputStream:提高数据的写入效率,拓展方法(内部维护一个8k字节数组) 写入数到磁盘: 1.通过刷新flush(), 2.close(

logstash收集tomcat日志

1,日志格式 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,"needCommodityTot

android开发异常信息收集程序代码

首先创建全局的Application ,此Application全局通用. package com.demo.utils; import com.demo.exception.CrashHandler; import android.app.Application; /** * 全局的context,任意位置调用 * @author Administrator * */ public class GlobalApplication extends Application { private st

tomcat的webappclassloader中一个奇怪的异常信息

如果一个应用抛出大量的Class not found信息,一般你会怀疑包冲突.可是tomcat的webappclassloader却有这样的问题: 如果一个应用发布出现问题, webappclassloader的started属性被设为false.然后其它线程如果继续使用webappclassloader进行class load,则大量的Class not found异常 被抛出: 1391       public Class loadClass(String name, boolean re

Oracle 通过ADR工具 收集ORA-600错误信息

 问题描述: 2014-06-10 在点检数据库预警文件时,出现Ora -00600 错误,并且Rman L1 备份失败,查询相关资料,得知是Bug:9835218.于是,提SR寻求Oracle 官方技术支持. Oracle回复如下: Your Service Request has been submitted as anORA-600/ORA-7445 issue based on the problem type you chose when logging the SR. Additio

Tomcat异常:The Tomcat server configuration at\Servers\Tomcat v9.0 Server at localhost-c

今天用Eclipse Java EE版写了几个java工程项目,然后再写java EE项目的jsp页面时,Tomcat出现了这个异常信息: 解决办法: 在菜单栏Window-->Preferences-->Server-->Runtime Environments,将列表中已经配置的Tomcat给Remove掉,再重新Add进来,重新运行java EE项目,eclipse恢复正常. 原文地址:https://www.cnblogs.com/dudududu/p/8490844.html

关于jsp页面中:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path异常信息解决

1.异常信息截图 2.异常发生的原因: 在java的构建环境中没有找到父类:javax.servlet.http.HttpServlet这个类.我们得知这个类所需要的jar包为servlet.jar.我们将该jar包加入到java构建路径中即可.因为该jar包在tomcat下.所以我们只需要将tomcat总体加入到java运行环境中即可 具体步骤如下: 原文地址:https://www.cnblogs.com/aeon/p/9744632.html

logstash收集系统日志配置

查看官方文档 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html 找个路径 /home/data/logstash/logstash/config 创建 vi file.config input {    file {     path => "/var/log/messages"     type => "system"     start_position

PHP 错误与异常 笔记与总结(14 )记录和发送异常信息

当发生异常时,把异常信息记录到日志文件中: 1 <?php 2 header('content-type:text/html; charset=utf-8'); 3 class LogException extends Exception{ 4 public function __construct($message = null, $code = 0){ 5 parent::__construct($message, $code); 6 error_log($this->getMessage