Logstash简介

  Logstash是具有实时流水线功能的开源数据收集引擎。Logstash可以动态统一来自不同来源的数据,并将数据标准化到选择的目标位置。清除所有数据并使其民主化,以用于各种高级下游分析和可视化用例。

  虽然Logstash最初推动了日志收集方面的创新,但其功能远远超出了该用例。任何类型的事件都可以通过各种各样的输入,过滤器和输出插件来丰富和转换,许多本机编解码器进一步简化了提取过程。Logstash通过利用大量数据和各种数据来加快的见解。

  官网:https://www.elastic.co/cn/logstash

  文档地址:https://www.elastic.co/guide/en/logstash/7.x/index.html

  用途:

  

logstash国内镜像库_配置文件

  基本运行流程:

  

logstash国内镜像库_logstash国内镜像库_02

  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

    

logstash国内镜像库_logstash国内镜像库_03

  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国内镜像库_elastic_04

    如上显示,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

查找自定义插件的路径。可以多次赋予此标志以包括多个路径。