7,540
edits
Changes
→Logstash consumer
:[[File:ClipCapIt-190402-175630.PNG]]
===logstash avro plugin===
Két AVRO codek érhető a logstash-hez:
https://www.elastic.co/guide/en/logstash/6.5/plugins-codecs-avro.html<br>
Ez a codek nem kapcsolódik a séma regiszterhez, előre meghatározott séma fájl alapján tud dekódolni, amit a fájlrendszerben oda kell másoljunk. Ha változik a séma, akkor kézzel ki kell cserélni.
<pre>
bin/logstash-plugin install logstash-codec-avro
</pre>
<br>
https://github.com/revpoint/logstash-codec-avro_schema_registry<br>
Ez a codek tud csatlakozni a séma regiszterhez.
<pre>
bin/logstash-plugin install logstash-codec-avro_schema_registry
</pre>
<br>
<br>
Sajnos az alap docker logstash image nem tartalmazza egyik codek-et sem, így nézhetjük meg:
<pre>
# docker run -it docker.elastic.co/logstash/logstash:6.6.2 bin/logstash-plugin list
logstash-codec-cef
logstash-codec-collectd
logstash-codec-dots
...
A docker-hub-on elérhető két image is, ami tartalmazza a
</pre>
* https://hub.docker.com/r/rokasovo/logstash-avro2 --> ocker pull rokasovo/logstash-avro2
* https://hub.docker.com/r/slavirok/logstash-avro --> docker pull slavirok/logstash-avro
<pre>
# docker run -it rokasovo/logstash-avro2 bin/logstash-plugin list
logstash-codec-avro_schema_registry
logstash-codec-cef
...
</pre>
<pre>
input {
kafka {
codec => avro_schema_registry {
endpoint => "https://${KAFKA_SCHEMA_REGISTRY_SERVER}"
username => "${KAFKA_CLIENTID}"
password => "${KAFKA_CLIENTPASSWORD}"
}
decorate_events => true
value_deserializer_class => "org.apache.kafka.common.serialization.ByteArrayDeserializer"
...
</pre>
share: 192.168.42.1:/home/adam/dockerStore/logstash/config/
</source>