Mnesia DB elasticsearch

#mysql #database #elasticsearch #erlang #logstash

#mysql #База данных #эластичный поиск #erlang #logstash

Вопрос:

Я использую сервер ejabberd для общения в чате. Я хотел бы иметь возможность динамического поиска моих архивных сообщений. Сейчас я использую elasticsearch и logstash, но он работает только с mysql db. Это моя конфигурация logstash

 input {
        jdbc {
                jdbc_connection_string => "jdbc:mysql://localhost:3306/ejabberd"
                jdbc_user => "ejabber"
                jdbc_password => "password"
                jdbc_driver_library => "mysql-connector-java-5.1.39-bin.jar"
                jdbc_driver_class => "com.mysql.jdbc.Driver"
                statement => "SELECT * FROM ejabberd.archive"
             }
     }
output {
#       stdout { codec => json_lines }
        elasticsearch {
                index => "muc_room"
                hosts => ["localhost:9200"]
}
}
  

Мне нужно использовать mnesia DB, его базу по умолчанию для ejabber. Как можно подключить mnesia DB с logstash, или можно использовать другой способ включить поисковую систему в mnesia DB. Спасибо

Ответ №1:

Я бы отправил данные непосредственно в elasticsearch из ejabberd. Таким образом, вам не нужно иметь две отдельные вещи, которые необходимо обновлять, если вы меняете механизмы хранения. Существует пакет Erlang для взаимодействия с Elasticsearch. Документация по нему невелика, но в любом случае это довольно простой интерфейс.