ELKF日志学习(九)Logstash基础介绍
前言
Logstash 是数据收集引擎,可以对数据进行过滤、分析、丰富、统一格式等操作,存储到用户指定的位置,包含但不限于文件、 elasticsearch 。
代码仓库
配置
Logstash 的配置分为 3 部分,输入、过滤器 和 输出。
input {
    # 这里填写输入部分
}
filter {
    # 这里填写过滤、解析部分
}
output {
    # 这里填写解析部分
}输入
相对于 FileBeat,Logstash 的输入类型丰富很多。
支持 FileBeat、文件、Kafka、redis、Github Webhook 等。
FileBeat
接收来自 FileBeat 的输入。官方文档传送门
input {
  beats {
    port => 5044
  }
}File
接收来自 文件 的输入。官方文档传送门
input {
  file {
    path => "/var/log/nginx/access.log"
  }
}Kafka
接收来自 Kafka 的输入。官方文档传送门
input {
  kafka {
    zk_connect => "kafka:2181"
    group_id => "logstash"
    topic_id => "test"
    reset_beginning => false
    consumer_threads => 5
    decorate_events => true
  }
}过滤器
这算是一个重点了,可以帮助我们将杂乱的日志解析成 json 方便分析。
用的比较多的就是 Gork 了。
输出
比起 FileBeat,Logstash 的输出可以做更多的事情,比如我们想要实现的 告警 功能。
支持 Elasticsearch、文件、Email、Kafka、redis、TCP 等。
其中,我们可以使用 TCP 实现我们的 钉钉告警。
我们目前是直接写入 Elasticsearch 的,这里放个 demo。
output {
  elasticsearch {
    index => "%{[fields][source]}-%{+YYYY.MM.dd}"
    hosts => "elasticsearch:9200"
  }
}最后
本文只是做一些简单的介绍,实际应用,还是要依赖官方文档的帮助。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!