我们这里的logstash的作用用来做输出,用于输出到elasticsearch中,采集我们用filebeat具体看下一篇博客。
1. logstash是干什么的。
Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。
Logstash 能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用 Grok 从非结构化数据中派生出结构,从 IP 地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程。
数据往往以各种各样的形式,或分散或集中地存在于很多系统中。 Logstash 支持 各种输入选择 ,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。
数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。
尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。
Logstash 采用可插拔框架,拥有 200 多个插件。您可以将不同的输入选择、过滤器和输出选择混合搭配、精心安排,让它们在管道中和谐地运行。
2. logstash需要什么环境启动。
1.该项目需要jdk的支持,启动前先检查是否已安装,推荐使用yum方式安装
2.该项目不能用root用户启动,这里我们用前面创建过的es用户
3. logstash安装步骤。
1.下载安装包
- 官网地址:https://www.elastic.co/cn/downloads/logstash
- 下载地址:https://artifacts.elastic.co/downloads/logstash/logstash-7.5.1.tar.gz
我们这里采用wget下载安装包到服务器
# 进入需要安装的文件夹
cd /opt
# 下载安装包
wget 'https://artifacts.elastic.co/downloads/logstash/logstash-7.5.1.tar.gz'
2.解压安装包
# 解压
tar -zxf logstash-7.5.1.tar.gz
# 赋权es用户
chown -R es:es logstash-7.5.1
# 进入es用户
su es
4. 修改logstash配置文件logstash.conf。
- input为输入模块,此处指定了接收filebeat的端口号
- filter为过滤模块,这里我使用的是grok插件
- patterns_dir指定的是我自定义pattern文件的位置,用于进行match匹配,grok本身自带了很多patterns,详情点击
如果你想自定义一些正则表达式,建议使用grok debugger进行调试:http://grok.qiexun.net- output为输出模块,这里使用elasticsearch将日志输出到ElasticSearch。这里需要注意的是,index为logstash创建index的规则,这里每天创建一个index,以日期结尾
# 数据输入监听端口
input {
beats {
port => 5044
}
}
#过滤器,http://grokdebug.herokuapp.com/ 是在线调试logstash filter的工具,你可以在线调试你的过滤规则。
filter {
grok {
match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}"}
#因为我们取出了字段,所以不需要原来这个message字段,这个字段里边包含之前beat 输入的所有字段。
remove_field => ["message"]
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9201","127.0.0.1:9202","127.0.0.1:9203"]
#这个是在kibana上的index Patterns 的索引,建议什么服务就用干什么名字,因为beat 提供了些kibana的模板可以导入,导入的模板匹配的时候用的索引是对应服务的名称开头,我们这里通过获取type值进行动态设定索引值。
index => "%{type}-%{+YYYY.MM.dd}"
document_type => "nginx"
#每次20000 发送一次数据到elasticsearch
flush_size => 20000
#如果不够20000,没10秒会发送一次数据;、
idle_flush_time =>10
}
}
5. logstash启动。
#进入安装的文件夹
cd /opt/logstash-7.5.1
#后台运行
nohup ./bin/logstash &
相关资源下载
链接:https://pan.baidu.com/s/1EpZqZxYTaloWoLTWNcBjmw 密码:hbpw