logstash 配置

今天重新调整了下配置文件,之前的apache_errorlog未匹配到clientip。

1.首先修改shipper.conf

input {
    file {
      type => "apache-accesslog" 
      path => "/var/log/httpd/access_log"
    }
    file {
      type => "apache-errorlog"
      path => "/var/log/httpd/error_log" 
    }
} 
 

filter {
  if [type] == "apache-accesslog" {
    grok {
      type => "apache-accesslog"
      pattern => "%{COMBINEDAPACHELOG}"  
      patterns_dir => "/opt/logstash/patterns"
    }
  }
  else if [type] == "apache-errorlog" {
    grok {
      type => "apache-errorlog"
      match => { "message" => "%{APACHEERRORLOG}" }
      patterns_dir => [ "/opt/logstash/lib/logstash/grok" ]
      #pattern => "%{LOGLEVEL}"
      #patterns_dir => "/usr/local/src/logstash-1.4.2/patterns"
    }
  }
}

output {
      redis {
      host => ‘192.168.1.101‘
      data_type => ‘list‘
      key => ‘logstash‘
      }
}

apache-errorlog匹配的patterns写入一个文件中,也可以直接在后面写。我这里写入文件中,文件内容如下:

HTTPERRORDATE %{DAY} %{MONTH} %{MONTHDAY} %{TIME} %{YEAR}
APACHEERRORLOG \[%{HTTPERRORDATE:timestamp}\] \[%{WORD:severity}\] \[client %{IPORHOST:clientip}\] %{GREEDYDATA:message_remainder}

2.下面是indexer.conf

input {
    redis {
    host => "localhost"
    data_type =>"list"
    port => "6379"
    key => "logstash"
    type => "apache-(access|error)log"
    codec => "json"
    }
}
 
output {
  elasticsearch {
  host => "localhost"
  }
}

3.重启服务

# /bin/logstash -f conf/shipper.conf &
# /bin/logstash -f conf/indexer.conf &

4.查看图形,访问日志跟错误日志都能显示客户端IP

时间: 2024-10-05 21:54:58

logstash 配置的相关文章

logstash 配置 logstash-forwarder (前名称:lumberjack)

logstash-forwarder(曾名lumberjack)是一个用go语言写的日志发送端, 主要是为一些机器性能不足,有性能强迫症的患者准备的. 主要功能: 通过配置的信任关系,把被监控机器的日志加密后传送给logstash, 减少被收集日志机器的性能消耗,相当于日志的计算换一台机器: 仅支持加密连接: 支持监控多个目录的多个文件,每个监控组增加tag属性,方便logstash后续分拣: 性能相当强劲: 多个下游logstash,一个fail/connection broken,自动更换:

【logstash】 - logstash配置语言基础

在网上很难找到logstash中文资料,ruby也没了解过,看官方文档太吃力,而我的要求也不高,使用loggstash可以提取想要的字段即可. 以下内容纯粹想当然的理解: logstash配置格式 #官方文档:http://www.logstash.net/docs/1.4.2/ input {   ...#读取数据,logstash已提供非常多的插件,比如可以从file.redis.syslog等读取数据 } filter {   ...#想要从不规则的日志中提取关注的数据,就需要在这里处理.

生产环境filebeat logstash配置模板

filebeat logstash配置模板说明 为了让不同类型的日志记录到不同index,实现日志分类,需要更改默认的配置文件,ELK更新迭代速度很快,网上以前的文档适用于之前的版本 filebeat的docment_type配置项已经在6版本中弃用,请使用本文配置 filebeat配置模板 [email protected]:~$ cat /etc/filebeat/filebeat.yml filebeat.prospectors: - type: log   enabled: true  

Logstash配置安装

logstash配置 http.host: xpack.monitoring.enabled: true xpack.monitoring.elasticsearch.username: xpack.monitoring.elasticsearch.password: xpack.monitoring.elasticsearch.url: 在bin文件下面新建logstash.conf input { rabbitmq { host => "rabbitmqip地址" subsc

详解Logstash配置

Logstash管道可以配置一个或多个输入插件.过滤器插件和输出插件.其中,输入插件和输出插件是必选的,过滤器插件是可选的.下图是Logstash常见的使用场景. 上一节的例子中我们使用标准的输入和输出插件做了简单的示例.接下来我们演示一些复杂的场景.如下图所示是Logstash的标准管道结构,我们通过一些高级配置来完成Apache日志的过滤. # The # character at the beginning of a line indicates a comment. Use# comme

logstash配置语法

Logstash 用 {} 来定义区域 input { stdin {} syslog {} } 数据类型 bool debug => true string host => "hostname" number port => 514 array match => ["datetime", "UNIX", "666"] hash options => { key1 => "valu

Logstash配置同步mysql到es配置

关于logstash安装:https://www.cnblogs.com/toov5/p/10301727.html Logstash是一个开源数据收集引擎,具有实时管道功能.Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地 下面进一步详细说配置: jdbc_driver_library: jdbc mysql 驱动的路径,在上一步中已经下载 jdbc_driver_class: 驱动类的名字,mysql 填 com.mysql.jdbc.Driver

windows logstash配置

E:\logstash-6.2.4\bin目录下新建logstash.conf input { stdin { } } output { stdout { codec=> rubydebug } elasticsearch { hosts => localhost } } E:\logstash-6.2.4\bin目录下新建run.bat logstash -f logstash.conf 修改logstash.bat %JAVA% %JAVA_OPTS% -cp "%CLASSPA

两份简单的logstash配置

input{http{port=>7474}} filter{ grok{ match =>{ #"message" => "%{COMBINEDAPACHELOG}" "message" => '%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:[@metadata][timestamp]}\] "(?:%{WORD:verb} %{NOT