Logstash简介
Logstash是具有实时流水线功能的开源数据收集引擎。Logstash可以动态统一来自不同来源的数据,并将数据标准化到选择的目标位置。清除所有数据并使其民主化,以用于各种高级下游分析和可视化用例。
虽然Logstash最初推动了日志收集方面的创新,但其功能远远超出了该用例。任何类型的事件都可以通过各种各样的输入,过滤器和输出插件来丰富和转换,许多本机编解码器进一步简化了提取过程。Logstash通过利用大量数据和各种数据来加快的见解。
官网:https://www.elastic.co/cn/logstash
文档地址:https://www.elastic.co/guide/en/logstash/7.x/index.html
用途:
基本运行流程:
Logstash管道具有两个必需元素input和output,以及一个可选元素filter。
输入插件使用来自源的数据,过滤器插件根据您的指定修改数据,输出插件将数据写入目标。
Logstash入门使用
1、下载logstash,本例使用(filebeat-7.6.1-linux-x86_64.tar.gz)7.6.1版本
2、解压下载的压缩包
tar -zxvf filebeat-7.6.1-linux-x86_64.tar.gz
3、进入解压目录
命令:cd logstash-7.6.1
4、运行logstash,采用最基本运行命令
./bin/logstash -e
nohup ./bin/logstash -e &
./bin/logstash -e 'input { stdin { } } output { stdout {} }'
ps -ef|grep logstash
kill pid
启动之后,logstash会监听端口(默认) 9600
5、采用最基本运行命令,意思是在控制台进行输入输出,
在控制台继续输入 hello,效果如下,可以看到输出内容
如上显示,Logstash 会额外增加一些信息,比如 @timestamp 时间, host 主机名等。
Logstash输出到ES
1、编辑配置文件config/logstash-sample.conf,内容如下:
vim config/logstash-sample.conf
1 input {
2 #beats {
3 # port => 5044
4 #}
5 stdin { }
6 }
7
8 output {
9 elasticsearch {
10 hosts => ["http://127.0.0.1:9200"]
11 index => "logstash-%{+YYYY.MM.dd}"
12 user => "elastic"
13 password => "123456"
14 }
15 }
2、指定配置启动logstash
./bin/logstash -f config/logstash-sample.conf
3、在控制台输出“hello world”
4、查看es数据
1)新增了索引:logstash-2020.06.30-000001
2)新增数据,内容如下:
1 {
2 "_index": "logstash-2020.06.30-000001",
3 "_type": "_doc",
4 "_id": "CFPGBXMB0t-2xlrmhCk9",
5 "_version": 1,
6 "_score": 1,
7 "_source": {
8 "host": "H__D",
9 "@version": "1",
10 "message": "hello world",
11 "@timestamp": "2020-06-30T15:09:22.491Z"
12 }
13 }
Logstash配置文件说明
1 input { #输入
2 stdin { ... } #标准输入
3 }
4
5 filter { #过滤,对数据进行分割、截取等处理 ...
6
7 }
8
9 output { #输出
10 stdout { ... } #标准输出
11 }
Logstash命令行参数
1、-e,--config.string
使用给定的字符串作为配置数据。
2、-f,--path.config
从特定文件或目录加载Logstash配置。如果给出了目录,则该目录中的所有文件将按字典顺序连接,然后解析为单个配置文件。
3、-t,--config.test_and_exit
检查配置以获取有效的语法,然后退出。请注意,不会使用此标志检查grok模式的正确性。Logstash可以从目录中读取多个配置文件。
4、-h,--help
打印帮助
5、-l,--path.logs
PATH
要写入Logstash内部日志的目录。
6、--log.level
设置Logstash的日志级别。可能的值为:
• fatal:记录非常严重的错误消息,这些错误消息通常在应用程序中止之后
• error:记录错误
• warn:记录警告
• info:记录详细信息(这是默认设置)
• debug:记录调试信息(适用于开发人员)
• trace:记录除调试信息以外的更细粒度的消息
7、--config.debug
将完整编译的配置显示为调试日志消息(还必须--log.level=debug启用)。警告:日志消息将包含以明文形式传递给插件配置的所有密码选项,并可能导致明文密码出现在日志中!
8、-w,--pipeline.workers
设置要运行的管道工人数。此选项设置将并行执行管道的筛选和输出阶段的工作程序数。
9、-p, --path.plugins
查找自定义插件的路径。可以多次赋予此标志以包括多个路径。