ELK之LogStash

环境:

window10

jdk11

logstash-7.8.0

logstash下载

解压缩目录结构:

ELK之LogStash_第1张图片

LogStash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中 

LogStash 是常用的日志采集系统,常用于输出到Elasticsearch 

一、配置

ELK之LogStash_第2张图片

配置文件结构:

注意:logstash目录路径中不能存在中文名称

# 输入
input {
  ...
}
 
# 过滤器
filter {
  ...
}
 
# 输出
output {
  ...
}

输入源 

过滤器

输出

inpust:必须,负责产生事件(Inputs generate events),常用:File、syslog、redis、beats(如:Filebeats)
filters:可选,负责数据处理与转换(filters modify them),常用:grok、mutate、drop、clone、geoip
outpus:必须,负责数据输出(outputs ship them elsewhere),常用:elasticsearch、file、graphite、statsd

二、示例

1、LogStash直接采集日志输出到 ElasticSearch

input {
        file {
                path => "c:/logs/a.log"
                start_position => "beginning"   # 默认值为end, Logstash 开始读取文件的初始位置:开始或结束

                type => "Information"   # 添加一个type字段

                add_field => {"test"=>"test"}  #添加自定义的字段

                ags => "标签一"   #增加标签

        }

file {
                path => ["c:/logs/error.log","c:/logs/error1.log"]
                start_position => "beginning"   # 默认值为end, Logstash 开始读取文件的初始位置:开始或结束

                type => "Error"   # 添加一个type字段

        }

}
filter {

}
output {
        elasticsearch { hosts => ["localhost:9200"] }
}

2、filebeat采集日志输出到logstash,logstash再输出到 ElasticSearch

修改filebeat中的filebeat.yml: 

filebeat采集日志输出到logstash

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - c:/log/*.log

    - c:/error/*.log
output.logstash:
  hosts: ["localhost:5044"]

修改logstash.conf :

input {
        beats {
                port => "5044"
        }
}
filter {

}
output {
        elasticsearch {
           hosts => [ "127.0.0.1:9200" ]
  }
}
 

三、运行

cmd运行:

找到logstash的bin目录运行,指定 logstash.conf 配置文件路径运行

logstash -f  ../config/logstash.conf

你可能感兴趣的:(ELK,elk)