zoukankan      html  css  js  c++  java
  • tomcat 格式化输出到kafka

    cat /data/tomcat/conf/server.xml

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    prefix="localhost_access_log" suffix=".txt"
    pattern="%h %l %u %t &quot;%r&quot; %s" />
    <Context docBase="/data/webserver/" path="/" reloadable="false" />

    输出格式如下:

     172.16.200.16 - - [21/Oct/2016:16:55:03 +0800] "GET /static/My97DatePicker/skin/WdatePicker.css HTTP/1.1" 304

    input {
      file {
            path => "/data/tomcat/logs/localhost_access_log.2016-10-24.txt"
            start_position => "beginning"
            type => "tomcat_access"
            }
    }
    
    filter {
        if [type] == "tomcat_access" {
            grok{
               match => { "message" => "%{IPORHOST:clientip} %{USER:ident} %{USER:auth} [%{HTTPDATE:timestamp}] "(?:%{WORD:verb} %{URIPATHPARAM:request}(?: HTTP/%{NUMBER:httpversion})?|-)" %{NUMBER:response}"}
           }
        }
    }
    
    output {
        if [type] == "tomcat_access" {
          kafka {
              bootstrap_servers => "kafka1:9092,kafka2:9092,kafka3:9092"
              topic_id => "tomcat_access.log"
              compression_type => "snappy"
           }
        }
    }

     logstash 服务器端

    input {
        if [type] == "haproxy_http" {
            kafka {
                    zk_connect => "zookeeper1:2181,zookeeper2:2181,zookeeper3:2181"
                    topic_id => "haproxy_http.log"
                    reset_beginning => false
                    consumer_threads => 5
                    decorate_events => true
                    }
      } else if [type] == "haproxy_tcp" {
                    kafka {
                    zk_connect => "zookeeper1:2181,zookeeper2:2181,zookeeper3:2181"
                    topic_id => "haproxy_tcp.log"
                    reset_beginning => false
                    consumer_threads => 5
                    decorate_events => true
                    }
     } else if [type] == "tomcat_access" {
                    kafka {
                    zk_connect => "zookeeper1:2181,zookeeper2:2181,zookeeper3:2181"
                    topic_id => "tomcat_access.log"
                    reset_beginning => false
                    consumer_threads => 5
                    decorate_events => true
                    }
            }
    }
    
    
    
    
    output {
            if [type] == "haproxy_http" {
                    elasticsearch {
                    hosts => ["es1:9200","es2:9200","es3:9200"]
                    manage_template => true
                    index => "logstash-haproxy-http.log-%{+YYYY-MM-dd}"
                    }
            }
            if [type] == "haproxy_tcp" {
                    elasticsearch {
                    hosts => ["es1:9200","es2:9200","es3:9200"]
                    manage_template => true
                    index => "logstash-haproxy-tcp.log-%{+YYYY-MM-dd}"
                    }
            }
            if [type] == "tomcat_access" {
                    elasticsearch {
                    hosts => ["es1:9200","es2:9200","es3:9200"]
                    manage_template => true
                    index => "logstash-tomcat_access.log-%{+YYYY-MM-dd}"
                    }
            }
    
    }
                                                                
    
    
  • 相关阅读:
    [转载]C#.NET中Dns类的常用方法及说明
    [转载]如何辨别真假百度蜘蛛
    Lottie的json动画
    iOT
    iOS字体大小
    针对Xcode 9 + iOS11 的修改,及iPhone X的适配
    shell脚本之 给PNG图片添加后缀@3x
    正则表达式
    CSS
    XcodeProj,使用Ruby更改工程文件
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/5985643.html
Copyright © 2011-2022 走看看