logstashlogstash入门


备注

本节概述了logstash是什么,以及开发人员可能想要使用它的原因。

它还应该提到logstash中的任何大型主题,并链接到相关主题。由于logstash的文档是新的,您可能需要创建这些相关主题的初始版本。

一个基本的,完整的Syslog示例

从根本上说,Logstash能够解析和存储系统日志数据。此示例显示了一个基本配置,可以帮助您实现此目的。

input {
  file {
    path => [
      "/var/log/syslog",
      "/var/log/auth.log"
    ]
    type => "syslog"
  }
}

filter {
  if [type] == "syslog" {
    # Uses built-in Grok patterns to parse this standard format
    grok {
      match => {
        "message" => "%{SYSLOGBASE}%{SPACE}%{GREEDYDATA:SYSLOGMESSAGE}"
      }
    }
    # Sets the timestamp of the event to the timestamp of recorded in the log-data
    # By default, logstash sets the timestamp to the time it was ingested.
    date {
      match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

output {
  # Outputs processed events to an elasticsearch instance local to the box.
  elasticsearch {
    hosts => [
      "localhost"
    ]
  }
}
 

安装或设置

有关设置或安装logstash的详细说明。

输出到ElasticSearch:多个索引和映射

有时,您需要在ElasticSearch中输出到多个索引,或者在它们滚入时具有要应用于新索引的自定义映射。

有两种方法可以应用自定义映射。一种方法是上传ElasticSearch模板。请参阅ElasticSearch文档。另一种方法是在elasticsearch {} 输出本身中指定映射。这就是这里显示的内容。

output {
  if [type] == 'metrics' {
    # The 'metrics' index rotates weekly.
    # The 'metrics-mapping.json' file defines the custom mappings.
    elasticsearch {
      hosts              => [ 'localhost' ]
      index              => "metrics-%{xxxx.ww}"
      manage_template    => true
      template           => "/etc/logstash/metrics-mapping.json"
      template_overwrite => true
    }
  }
}
 

这会将metrics 事件输出到metrics- 上的metrics 索引,这将使用ISO周每周轮换一次。用于新索引的模板定义为此配置的一部分。定义模板具有将字段类型强制为统一类型的优点。这在较大的配置中很有用,其中多种类型可能尝试将字段定义为稍微不同的数据类型。

此方法在登台和QA环境中很有用,因为ElasticSearch模板由LogStash代码定义,不必作为ElasticSearch集群设置的一部分单独配置。