ежедневно вызывайте скрипт на python из ElasticSearch - PullRequest
0 голосов
/ 29 августа 2018

У меня 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 только один раз, как Упругое обсуждение

...