logstash入门篇之安装启动
1 简介
Logstash是一个功能强大的ETL(数据抽取/转换/存储)工具,常用来做数据处理和迁移。提供了大量插件,帮助解析、转换来自各种来源的数据。
Logstash是elastic stack 家族中一员。
2 下载和安装
下载
下载推荐到elastic中文社区,里面有elastic系列里所有的开源产品下载链接,地址如下:
https://elasticsearch.cn/download/
选择和elasticsearch对应的版本下载。本教程选择6.8.0版本的tar包下载,安装在CentOS 7 (64 位)系统下。
安装
使用ssh工具将安装包上传到服务器任一目录,本教程上传至目录/home/hubuwch/
解压 安装包:
tar zxvf logstash-6.8.0.tar.gz
解压完成,使用简单参数验证安装成功与否,参见3节启动实例
3 启动
logstash启动有两种方式:命令行指定参数和配置文件启动
- 命令行指定参数启动
cd ./logstash-6.8.0
bin/logstash -e 'input{stdin{}} output{stdout{}}'
其中,-e 后面参数表示以标准的控制台输入输出流方式启动
- 配置文件启动
在logstash安装目录下新建myconf.conf配置文件,编辑如下内容:
input{
stdin{} //控制台输入流插件
}
output{
stdout{} //控制台输出流插件
}
配置文件启动命令如下:
bin/logstash -f myconf.conf
以上两种方式启动后,在控制台输入字符 hello Logstash!,可以看到如下的输出:
4 后台启动
logstash启动后,若是关闭shell窗口,则程序就会中断,为了让程序在后台长驻,不受关闭shell窗口影响,可以使用如下后台启动命令:
nohup bin/logstash -f first-pipeline.conf &
启动后,日志会默认输出到nohup.out文件中,可以使用如下命令查看:
tail -300f nohup.out
5 原理
3节中启动的实例,我们可以把它看做是一个管道(logstash pipeline),如下图:
Logstash是以管道方式运行的,一个Logstash实例可以启动多个管道
每个管道包含输入(input),输出(output),过滤器(filter)三个部分,这种结构同时也体现在.conf配置文件上,如下:
#this is a comment. You should use comments to describe
# parts of your configuration.
# 输入插件配置处
input {
...
}
# 过滤器插件配置处
filter {
...
}
# 输出插件配置处
output {
...
}
在实际使用中,需要根据实际场景去选择不同的插件配置到配置文件中。
5 自动装载配置文件
在使用之前,先把Logstash自动加载配置文件功能打开,以便每次修改完conf配置文件,自动读取配置.
cd ./logstash-6.8.0/conf
vi logstash.yml
找到 #config.reload.automatic: false 配置,将false 改为 true,自动读取时间采用默认值3s,如下:
# Periodically check if the configuration has changed and reload the pipeline
# This can also be triggered manually through the SIGHUP signal
#
config.reload.automatic: true
#
# How often to check if the pipeline configuration has changed (in seconds)
#
# config.reload.interval: 3s
6 结语
对于知识学习,只有写下来了才算是真正的输出,IT行业是个重视沉淀的行业,怎么算是沉淀,记录下来就是一种沉淀方式,也许当下不一定用到,但若干年后再拾取,能看到当前记录,也会事半功倍,同时也希望能帮到后来者。这就是我写博客的初衷,帮己也帮人。