2、Logstash与FileBeat详解以及ELK整合详解(Logstash安装及简单实战使用)
1.Logstash安装
logstash官方文档: https://www.elastic.co/guide/en/logstash/7.17/installing-logstash.html
1)下载并解压logstash(慢的话从 我的夸克网盘下载)
下载地址: https://www.elastic.co/cn/downloads/past-releases#logstash
选择版本:7.17.3
#下载Logstash
#windows
https://artifacts.elastic.co/downloads/logstash/logstash-7.17.3-windows-x86_64.zip
#linux
https://artifacts.elastic.co/downloads/logstash/logstash-7.17.3-linux-x86_64.tar.gz
或者
链接:https://pan.quark.cn/s/58fa9ba532c6
提取码关注微信公众号:"开源创富指南"回复ELK获取,可一次性下载本篇文章所有软件。
2)测试:运行最基本的logstash管道
解压压缩包,linux解压
1、tar -zxvf logstash-7.17.3-linux-x86_64.tar.gz
2、cd logstash-7.17.3 1
#linux 2
#-e选项表示,直接把配置放在命令中,这样可以有效快速进行测试
3、bin/logstash -e 'input { stdin { } } output { stdout { } } '
stdin 表示控制台输入
stdout 表示控制台输出#windows 5
4、.\bin\logstash.bat -e "input { stdin { } } output { stdout {} }"控制台任意输入信息,打印出响应信息就表示demo运行成功!
3)测试结果
3)启动遇见的常见问题
1、logstash运行需要jdk环境,可参考我之前的博客进行配置
https://blog.csdn.net/qq_38132995/article/details/107121453?fromshare=blogdetail&sharetype=blogdetail&sharerId=107121453&sharerefer=PC&sharesource=qq_38132995&sharefrom=from_link
2、window版本的logstash-7.17.3的bug
windows出现错误提示could not find java; set JAVA_HOME or ensure java is in PATH,修改setup.bat,去掉双引号
4)Logstash配置文件结构
参考:https://www.elastic.co/guide/en/logstash/7.17/configuration.html
Logstash的管道配置文件对每种类型的插件都提供了一个单独的配置部分,用于处理管道事件。
每个配置部分可以包含一个或多个插件。例如,指定多个filter插件,Logstash会按照它们在配置文件中出现的顺序进行处理。
2.Logstash实战
2.1 将控制台输入信息格式化存到elasticsearch
下面配置文件指定将控制台输入信息格式化存到elasticsearch,
1、stdout { codec => rubydebug }表示编码器会格式化数据为带颜色高亮的多行 JSON,包含字段名和值。
2、grok是正则表达式处理,date 是格式化时间处理
3、elasticsearch 地址需要配置你自己的,可配置集群,安装可参考
https://blog.csdn.net/qq_38132995/article/details/118754185?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
#创建配置文件
vim logstash-demo.conf
input {stdin { }
}filter {grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}date {match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]}
}output {elasticsearch { hosts => ["localhost:9200"]user => "elastic"password => "123456"} stdout { codec => rubydebug }
}
#运行
bin/logstash -f logstash-demo.conf
运行结果:
使用Kibana Dev Tools 查看数据,Kibana 安装自行百度
get /logstash/_search/
2.2 配置文件补充说明
(1)input Plugins
https://www.elastic.co/guide/en/logstash/7.17/input-plugins.html
一个 Pipeline可以有多个input插件
- Stdin / File
- Beats / Log4J /Elasticsearch / JDBC / Kafka /Rabbitmq /Redis
- JMX/ HTTP / Websocket / UDP / TCP
- Google Cloud Storage / S3
- Github / Twitter
(2)Output Plugins
https://www.elastic.co/guide/en/logstash/7.17/output-plugins.html
将Event发送到特定的目的地,是 Pipeline 的最后一个阶段。
常见 Output Plugins:
- Elasticsearch
- Email / Pageduty
- Influxdb / Kafka / Mongodb / Opentsdb / Zabbix
- Http / TCP / Websocket
(2)Codec Plugins
https://www.elastic.co/guide/en/logstash/7.17/codec-plugins.html
将原始数据decode成Event;将Event encode成目标数据
内置的Codec Plugins:
- Line / Multiline
- JSON / Avro / Cef (ArcSight Common Event Format)
- Dots / Rubydebug
2.3Codec Plugin测试
# single line
#单行数据测试
bin/logstash -e "input{stdin{codec=>line}}output{stdout{codec=> rubydebug}}"
#JSON输入数据测试
bin/logstash -e "input{stdin{codec=>json}}output{stdout{codec=> rubydebug}}"
此篇就到这,后续会继续更新更多实战用法。