logstash(7.9.3)安装参考
1、拉取镜像
2、挂载卷
mkdir /home/vvvv/docker/dockerVolumes/logstash/config
mkdir /home/vvvv/docker/dockerVolumes/logstash/pipeline
2.1、config文件配置
vim logstash.yml
config:
reload:
automatic: true
interval: 3s
xpack:
management.enabled: false
monitoring.enabled: false
vim pipelines.yml
- pipeline.id: logstash_dev # !!!"-"前后都有空格!!!
path.config: "/usr/share/logstash/pipeline/logstash_dev.conf" # path是容器内的路径!!!
2.2、pipelines文件配置
vim logstash_dev.conf
input{
kafka {
bootstrap_servers => "10.6.62.211:9092"
topics => ["DIDLIST_caesar_dynamic_data"]
client_id => "logstash-0-0"
group_id => "logstash"
codec => "json"
add_field => {
"s_index" => "caesar_dynamic_data"
}
}
kafka {
bootstrap_servers => "10.6.62.211:9092"
topics => ["DIDLIST_caesar_data_bank_make_ios"]
client_id => "logstash-0-4"
group_id => "logstash"
codec => "json"
add_field => {
"s_index" => "caesar_data_bank_make_ios"
"[@metadata][b_submeter]" => "true"
}
}
}
filter {
date {
match => ["message","UNIX_MS"]
target => "@timestamp"
}
ruby {
code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)"
}
ruby {
code => "event.set('@timestamp',event.get('timestamp'))"
}
mutate {
convert => ["timestamp", "string"]
gsub => ["timestamp", "T([\S\s]*?)Z", ""]
gsub => ["timestamp", "-", "."]
}
}
output {
if [@metadata][b_submeter] == "true" {
elasticsearch {
hosts => ["10.6.62.212:9400"]
document_id => "%{id}"
index => "%{s_index}_%{timestamp}"
}
} else {
elasticsearch {
hosts => ["10.6.62.212:9400"]
document_id => "%{id}"
index => "%{s_index}"
}
}
}
3、部署容器
# restart:只要docker启动,容器就会跟随启动
# privileged=true:解决Docker挂载主机目录Docker访问出现cannot open directory.:Permission denied
# -d 后台启动
docker run -d --restart=always --privileged=true --name=logstash \
-p 5047:5047 -p 9600:9600 \
-v /home/vvvv/docker/dockerVolumes/logstash/config/:/usr/share/logstash/config \
-v /home/vvvv/docker/dockerVolumes/logstash/pipeline/:/usr/share/logstash/pipeline fc2df485e5c5
4、查看日志
docker logs -tf logtstash