logstash安装使用
下载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模式
logstash做的事情分三个阶段依次执行:输入——》处理filter(不是必须)——》输出
logstash配置文件
宏观配置文件格式
# 输入
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}"//索引名称
}
}