前言
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"
}
}
最后
本文只是做一些简单的介绍,实际应用,还是要依赖官方文档的帮助。
Logstash 是一款强大的数据收集引擎,支持多种输入源如 FileBeat、文件、Kafka 等,通过配置输入、过滤器和输出,实现数据过滤、解析和存储。过滤器部分,尤其是 Gork,能将杂乱日志转换为 JSON 格式便于分析。输出方面,Logstash 可以将数据存入 Elasticsearch 或实现如 TCP 告警等功能。本文简要介绍了 Logstash 的基本用法,并强调了其在实际应用中的配置和功能。
1629

被折叠的 条评论
为什么被折叠?



