У меня logstash
запланировано чтение данных из базы данных каждый день на 3:00 A.M.
. Что я хочу сделать, так это то, что всякий раз, когда индекс читается, я хочу вызвать Python Function
, определенный в моем Django
проекте, который будет обрабатывать индекс, а затем обновлять другой индекс в ElasticSearch
.
По сути, я извлекаю все транзакции, совершаемые ежедневно через logstash
, а затем хочу запустить python script
, если выборка прошла успешно, обработать транзакции (применить некоторые вещи машинного обучения) и сохранить результат как другой индекс в Elasticsearch
, поэтому мне нужна помощь с:
- Вызов сценария Python из Elasticsearch при обновлении индекса
Я читал: Документы ElasticSearch для скрипта на Python , но не смог получить новичок в ES и не смог понять, как я его планирую.
Хотя я могу сделать скрипт запущенным как отдельный поток в Django и обрабатывать данные ES, я хочу вызывать его из ES, либо ежедневно, либо всякий раз, когда вызывается индекс.
Если я могу вызвать несколько скриптов, это будет здорово добавить, как разные сценарии prcodess по-разному.
Вопрос по ES faq
ОБНОВЛЕНО
также пробовал:
script_lang => "python"
script_type => "file" # inline
script => "script.py"
в выводе Logstash.conf
файла, похоже, не работает.
Мой скрипт сохраняется в папке config/scripts
Тег сценария в выходном плагине logstash здесь.
ОБНОВЛЕНО 2
Также сделал:
bin/logstash-plugin install logstash-output-exec
, а затем:
output {
stdout { codec => json_lines }
exec {
command => "echo hi" # This works but for each document, hi, hi, hi...
-- If I replace with python path\script.py
}
}
Поскольку невозможно выполнить exec только один раз, как Упругое обсуждение