zoukankan      html  css  js  c++  java
  • 编写Logstash的配置文件root_tomcat.conf

    4、在/root/logstash_work_dir/config/目录中编写Logstash的配置文件root_tomcat.conf,这是本系统最重要的文件。

    1.  
      input {
    2.  
      file {
    3.  
      path => "/root/tomcat/logs/localhost_access_log*.txt"
    4.  
      sincedb_path => "/root/logstash_work_dir/config/sincedb_apache_access_log.txt"
    5.  
      type => "apache_access_log"
    6.  
      add_field => {"tomcatip" => "10.128.18.61"}
    7.  
      }
    8.  
      }
    9.  
       
    10.  
      filter{
    11.  
      if [type] == "apache_access_log" {
    12.  
      grok{
    13.  
      match => { "message" => "%{IPORHOST:clientip} %{USER:ident} %{USER:auth} [%{HTTPDATE:timestamp}] "(?:%{WORD:verb} %{URIPATHPARAM:request}(?: HTTP/%{NUMBER:httpversion})?|-)" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{NUMBER:responsetime} "(?:%{URI:referrer}|-)" %{QS:agent}" }
    14.  
      }
    15.  
      date{
    16.  
      match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
    17.  
      target => ["writetime"]
    18.  
      }
    19.  
      mutate {
    20.  
      convert => {
    21.  
      "response" => "integer"
    22.  
      "bytes" => "integer"
    23.  
      "responsetime" => "integer"
    24.  
      }
    25.  
      }
    26.  
      }
    27.  
      }
    28.  
       
    29.  
      output {
    30.  
      if [type] == "apache_access_log" {
    31.  
      elasticsearch {
    32.  
      hosts => ["10.128.18.74:9200","10.128.18.75:9200","10.128.18.77:9200"]
    33.  
      index => "logstash-apacheaccesslog-%{+YYYY.MM.dd}"
    34.  
      }
    35.  
      }
    36.  
      }

    Logstash的配置文件包括input、filter和output三部分。

    input部分,使用了file插件。path指定了Logstash扫描的文件,每当有文件变化时,Logstash会读取文件尾部新增的数据;sincedb_path用于存储上一次文件读取的位置信息,如果这个文件不存在,则会从日志文件首部获取所有数据;type用于对这个配置插件做标识,当一个配置文件中有多个数据收集任务时尤其有用;add_field用于标识本机的ip地址,当数据存储在Elasticsearch后,用于区分来自哪一个Tomcat服务器。

    filter插件,使用了grok、date和mutate三个插件。

    grok插件用于解析Tomcat的访问日志,logstash自带了COMBINEDAPACHELOG等多个配置模式,但由于我使用了自定义的Tomcat日志配置,这里也自己编写;

    date部分用于从日志中提取时间戳信息;

    mutate中用convert将response、byte和responsetime三个解析得到的字符串转化为整数integer类型,这个步骤对于后续的分析比较重要,因为这样可以在Elasticsearch中做数值比较运算,比如按照响应时间responsetime排序,找出访问最慢的请求。

    output插件,使用了elasticsearch插件,其中hosts指定了Elasticsearch集群的地址,本例子中指定了三个实例;index指定了数据存储在Elasticsearch中的索引名字,以logstash作为开头是因为Logstash自带的针对ELasticsearch的mapping映射中,对于所有的字符串类型都附带设置了一个raw不做解析的设置,这样便于在Elasticsearch中做底层的文本检索。


    5、设置chkconfig的启动命令

    chkconfig --add logstash

    6、启动Logstash服务

    service logstash start

    转载于:https://my.oschina.net/u/2242064/blog/684313

  • 相关阅读:
    项目包结构
    准备dbcp2-2.1.1和pool2-2.4.2 、commons-dbcp-1.4jar包
    导入javax.servlet。伺服登记无法解决:The import javax.servlet.MultipartConfigElement cannot be resolved
    准备mysql-connector-java
    准备mybatis-spring
    准备spring
    准备MyBatis
    vim编辑器使用
    jquery怎样做出分页效果
    快速入门系列--WCF--02消息、会话与服务寄宿
  • 原文地址:https://www.cnblogs.com/zhoading/p/14743757.html
Copyright © 2011-2022 走看看