Я уже проанализировал файл журнала, используя logstash, и поместил его в elasticsearch. У меня есть поле, называемое IP, и теперь оно отображается как строка. Я хочу преобразовать существующее сопоставление в elasticsearch в geoip без повторного запуска logstash. У меня есть несколько миллионов записей в elasticsearch с этим полем. Я хочу преобразовать отображение IP из строки в geoip во все записи.Преобразование существующего сопоставления полей в geoip
ответ
Боюсь, вам все равно придется использовать Logstash для этого, потому что geoip
- это фильтр Logstash, и Elasticsearch не имеет доступа к базе данных GeoIP сам по себе.
Не бойтесь, хотя, вам не нужно повторно запустить Logstash на сырье логов, вы можете просто заново индексировать ES документов, используя elasticsearch
input плагина и elasticsearch
output плагина и лавируя в geoip
filter между ними для того, для преобразования поля IP
в поле geoip
.
Поскольку вы не можете изменить отображение текущего поля IP
от string
до geo_point
, нам необходимо убедиться, что ваш индекс готов к глотанию данных GeoIP. Сначала проверьте следующую команду, если ваш индекс уже содержит поле geoip
в вашем сопоставлении (которое было бы создано Logstash с использованием стандартного стандартного шаблона logstash-*
).
curl -XGET localhost:9200/logstash-xyz/_mapping
Если вы видите geoip
поле в выводе выше команды, то вы хорошо идти. В противном случае, мы должны сначала создать geoip
поле с типом geo_point
:
curl -XPUT localhost:9200/logstash-xyz/_mapping/your_type -d '{
"your_type": {
"properties": {
"geoip": {
"type": "object",
"dynamic": true,
"properties": {
"ip": {
"type": "ip",
"doc_values": true
},
"location": {
"type": "geo_point",
"doc_values": true
},
"latitude": {
"type": "float",
"doc_values": true
},
"longitude": {
"type": "float",
"doc_values": true
}
}
}
}
}
}'
Теперь ваше отображение готово к приему данных GeoIP. Так, в следующем мы создаем файл конфигурации Logstash под названием geoip.conf
который выглядит следующим образом:
input {
elasticsearch {
hosts => "localhost:9200"
index => "logstash-xyz"
}
}
filter {
mutate {
remove_field => [ "@version", "@timestamp" ]
}
geoip {
source => "IP" <--- the field containing the IP string
}
}
output {
elasticsearch {
host => "localhost"
port => 9200
protocol => "http"
manage_template => false
index => "logstash-xyz"
document_id => "%{id}"
workers => 1
}
}
, а затем после установки правильных значений (хост + индекс), вы можете запустить с bin/logstash -f geoip.conf
. После запуска этого документа ваши документы должны содержать новое поле с именем geoip
с информацией GeoIP.
Перейти к началу страницы Я предлагаю вам напрямую добавить фильтр geoip
в обычную конфигурацию logstash.
Отличный !! Спасибо.. – Avis
- 1. перезапись существующего сопоставления с Automapper
- 2. Проверка сопоставления двух полей
- 3. Преобразование существующего столбца в идентификатор
- 4. Преобразование существующего html.erb в Haml
- 5. Настройка сопоставления полей через XML
- 6. Преобразование полей
- 7. Получить поле путем сопоставления полей в дозаторе
- 8. Преобразование сопоставления из XML в Confirmst (сопоставления кодов)
- 9. GeoIP + Django, недопустимый файл данных города GeoIP
- 10. Heroku + Rails + GeoIp = неинициализированная постоянная ошибка GeoIP
- 11. Новая реализация/метод существующего сопоставления запросов в контроллере
- 12. Создать файл сопоставления orm.yml из существующего файла сущности в Symfony
- 13. Преобразование существующего WebApplication в родной Android App
- 14. Преобразование существующего приложения .NET в веб-интерфейс
- 15. Преобразование существующего JAR в OSGi-комплект
- 16. Преобразование в бутстрап для существующего веб-приложения
- 17. Преобразование существующего сайта в мобильную версию
- 18. Преобразование существующего Android-проекта в Kindle
- 19. Преобразование существующего приложения в новый дизайн материала
- 20. Преобразование существующего набора QPushButtons в один массив
- 21. Преобразование сопоставления DMA в виртуальный адрес
- 22. Как строки аргументов Django «бросают» в соответствующие типы сопоставления полей?
- 23. Преобразование полей Юникода в тексты
- 24. Преобразование полей таблицы в jCheckBox
- 25. Преобразование определенных полей в Laravel?
- 26. Преобразование числовых полей в MySQL
- 27. Динамическое преобразование полей в C#
- 28. Преобразование нескольких полей в DateTimeStamp
- 29. ElasticSearch: сопоставления для полей, которые сортируются часто
- 30. использование CASE с SQLITE для сопоставления полей
Мы говорим об обычном индексе 'logstash- *' или он является обычным для других нужд? – Val
Нормальный индекс logstash – Avis