2016-12-05 2 views
0

Unsere Lösung erfordert, dass einige der in CouchDB erstellten oder geänderten Daten in Elastic Search mit LogStash protokolliert werden. Bisher war es möglich, LogStash so zu konfigurieren, dass wir über den Änderungs-Feed eine Verbindung zu CouchDb herstellen konnten, jedoch konnten wir keinen CouchDB-Filter auf den Änderungs-Feed anwenden. Wie können wir LogStash so konfigurieren, dass ein CouchDB-Filter für den _changes-Feed angegeben und angewendet wird und nur Datensätze protokolliert werden, die den Filter basierend auf einem GET-Parameter übergeben?CouchDB - Logstash - _changes mit CouchDB Filter

LogStash Konfiguration:

input { 
     couchdb_changes { 
       db => "database-members" 
       host => "192.168.0.18" 
       sequence_path => "/root/.couchdb_seq_database-members" 
     } 
} 


output { 
    elasticsearch { 
     hosts => ["localhost:9200"] 
     document_id => "%{[@metadata][_id]}" 
     index => "logstash-database-members-%{+YYYY.MM.dd}" 
    } 
    stdout { codec => rubydebug } 
} 

Antwort

0

leider das logstash Plugin Filter noch nicht unterstützt. wenn Sie wissen, ein bisschen Rubin seine einfache obwohl hinzuzufügen und wird grob hier gehen:

https://github.com/logstash-plugins/logstash-input-couchdb_changes/blob/master/lib/logstash/inputs/couchdb_changes.rb#L115

müssten Sie die Filteroption zum logstash Modul hinzufügen und dann sicher, dass das Modul die Anfrage uri machen erstellt ist nach diesem Dokument

http://docs.couchdb.org/en/2.0.0/api/database/changes.html