logstash是一个用来收集数据,数据源可以是:socket、文件、消息队列。经过过滤最终输出,目标地址可以是:Elasticsearch、本地文件、消息队列。
这里将使用docker的方式部署logstash。
想要实现上面的数据源和目标源的选择,只需要进行简单的配置,配置有两种方式:
- 启动docker的时候进行配置
- 通过配置文件进行配置
参考:
https://www.jianshu.com/p/9bfc21b1e989
https://hub.docker.com/_/logstash/
https://www.elastic.co/guide/en/logstash/current/index.html
安装logstash
直接在启动docker的时候进行配置
docker run -it --rm logstash -e 'input { stdin { } } output { stdout {codec=>json } }'
使用命令行的标准输入作为输入,命令行的标准输出作为输出
使用配置文件的方式
- 现在本地创建一个文件夹用来挂载docker中的存储,我这里的目录结构如下:
- logstash
- data
- test.txt
- conf
- logstash.conf
- 在本地的logstash.conf文件中进行配置。主要配置输入和输出
input{
file{
path => "/data/test.txt"
}
}
output{
stdout{}
}
- 使用命令来启动logstash:
docker run -it --rm -v /Users/rui/code/docker/logstash/conf:/config-dir -v /Users/rui/code/docker/logstash/data:/data logstash -f /config-dir/logstash.conf
- 另开一个窗口,切到/Users/rui/code/docker/logstash/data目录下,使用这个命令
echo "hello111" >> test.txt
向test.txt文件中添加内容