下载logstash(最好下载与es相同的版本,这里为了测试下载的低版本)
wget https://download.elastic.co/logstash/logstash/logstash-2.3.4.tar.gz
解压
tar -zxvf logstash-2.3.4.tar.gz
运行测试
# 使用标准输入输出 ./logstash-2.3.4/bin/logstash -e 'input { stdin { } } output { stdout {} }' # 使用标准输入输出,输出格式化为json ./logstash-2.3.4/bin/logstash -e 'input { stdin { } } output { stdout {codec => json} }' # 加载配置文件启动 ./logstash-2.3.4/bin/logstash -f logstash-simple.conf # 加载多个配置文件启动 ./logstash-2.3.4/bin/logstash -f .conf/*
logstash做的事情分三个阶段依次执行:输入——》处理filter(不是必须)——》输出
宏观配置文件格式
# 输入 input { ... } # 过滤器 filter { ... } # 输出 output { ... }
配置文件示例:
input { # 从文件读取日志信息 file { path => "/var/log/error.log" type => "error"//type是给结果增加一个type属性,值为"error"的条目 start_position => "beginning"//从开始位置开始读取 # 使用 multiline 插件,传说中的多行合并 codec => multiline { # 通过正则表达式匹配,具体配置根据自身实际情况而定 pattern => "^\d" negate => true what => "previous" } } } #可配置多种处理规则,他是有顺序,所以通用的配置写下面 # filter { # grok { # match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" } } # } output { # 输出到 elasticsearch elasticsearch { hosts => ["192.168.22.41:9200"] index => "error-%{+YYYY.MM.dd}"//索引名称 } }