У меня есть клиент и сервер logstash.
Клиент отправляет лог-файлы с выходом udp логсташа на сервер, и сервер также запускает logstash для получения этих журналов. На сервере у меня есть json-фильтр, который вытаскивает форматированное сообщение json в полях фактического журнала, так что elasticsearch может их индексировать.Logstash delete type and keep _type
Вот мой код с сервера:
input{
udp{}
}
filter{
json {
source => "message"
}
}
output{
elasticsearch{
}
}
И от клиента:
input{
file{
type => "apache-access"
path => "/var/log/apache2/access.log"
}
}
output{
udp{
host => "192.168.0.3"
}
}
Этот код работает отлично, за исключением одной вещи:
В некотором смысле я получаю поле type
дважды , один раз как type
и один раз как _type
, у них одинаковое содержание.
Я пытался удалить type
-поле с mutate
k-фильтра, как это:
mutate{
remove_field => [ "type" ]
}
, но этот фильтр удаляет как type
поля (_type
поле устанавливается по умолчанию: журналы).
Как сохранить поле _type
и удалить поле type
?
хороший вопрос .... –
Можете ли вы дать полный файл конфигурации logstash ... –
@AnilkumarBathula Это все что важно, в полном файле конфигурации есть только больше входов, другой udp-порт и фильтр, который не связан с этой проблемой: 'mutate {add_field => {" program "=>" apache "}}' – Klaus