docker pull logstash:7.6.0
注意这里的版本号必须指定, 默认的latest会报错找不到latest版本
启动logstash
docker run --name logstash -d -p 5044:5044 logstash:7.6.0
进入容器中, 查看容器的内部文件
docker exec -it logstash /bin/bash
进入到config文件夹下, 可以找到logstash-sample.conf文件, 这个文件是logstash的启动配置文件, 用于配置输入和输出, 以及简单地数据处理
将此文件复制到宿主机中进行编辑
docker cp fc1cf5f94e00:/usr/share/logstash/config/logstash-sample.conf /usr/local/docker/
先通过docker ps获取logstash的容器id, 然后根据路径去赋值文件
先测试一个简单地输入输出, 从文件中获取数据, 输出就使用stdout{}
input {
file{
path => ["/usr/local/docker/postLogstash.txt"]
start_position => "beginning"
}
}
filter{
mutate{
remove_field => ["host","path","@timestamp","@version"]
rename => {"message"=>"logInfo"}
gsub => [ "logInfo", "\r", "" ]
}
}
output {
#elasticsearch {
# hosts => ["http://localhost:9200"]
# index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
#}
stdout{}
}
然后将修改后的文件复制到宿主机中, 这样把配置文件拿出来又塞回去的方式, 就是解决在容器内无法编辑的问题
docker cp /usr/local/docker/logstash-sample.conf fc1cf5f94e00:/usr/share/logstash/config/