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}"
                    }
            }
    
    }
                                                                
    
    
  • 相关阅读:
    [原]Eclipse 安装SVN、Maven插件(补充)
    [原]几个云笔记的简单比较
    [原]Unity3d中奇怪的编译错误
    [原]unity中WWW isDone方法只能在主线程中调用
    C语言。格式化符号
    Unity iOS Guideline 1.3
    AR增强现实 之Metaio For Unity 开发 之HelloWorld
    Unity 4.6 bate 20 or 4.5.5 +vuforia3.0.9 发布到真机错误 解决
    服务器端Ajax异步分页类,基本通用分页类
    从数据库中读取数据并写入到Excle电子表格之2
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/5985643.html
Copyright © 2011-2022 走看看