# Kafka output plugin is not picking up value from @metadata field

**URL:** https://discuss.elastic.co/t/kafka-output-plugin-is-not-picking-up-value-from-metadata-field/194825
**Category:** Logstash
**Created:** [August 12, 2019, 10:04am UTC](https://discuss.elastic.co/t/kafka-output-plugin-is-not-picking-up-value-from-metadata-field/194825 "2019-08-12T10:04:34Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![amrutadale](https://avatars.discourse-cdn.com/v4/letter/a/71c47a/32.png) [@amrutadale](https://discuss.elastic.co/u/amrutadale)
#### Post date: [August 12, 2019, 10:04am UTC](https://discuss.elastic.co/t/kafka-output-plugin-is-not-picking-up-value-from-metadata-field/194825/1 "2019-08-12T10:04:35Z")

</div>

Hello Team,

I have http endpoint as input. Based on the value received in header tag for application , I need to generate the jass configuration at run time for kafka output topic.

input {  
http {  
host =\> "127.0.0.1" # default: 0.0.0.0  
port =\> "9600" # default: 8080  
}  
}  
filter {  
if [headers][app] == "cop" {  
mutate { add\_field =\> { "[@metadata][topic]" =\> "data\_cop\_test\_topic" } }  
mutate { add\_field =\> { "@[metadata][jass]" =\> "C:\kafka\_kerberos\jass1.conf" } }  
mutate { add\_field =\> { "@[metadata][kerberos\_config]" =\> "C:\kafka\_kerberos\krb5.conf" } }  
}  
}

output {

kafka {  
bootstrap\_servers =\> "xxx"  
topic\_id =\> "%{[@metadata][topic]}"  
jaas\_path =\> "%{[@metadata][jass]}"  
kerberos\_config =\>%{[@metadata][kerberos\_config]}"  
sasl\_kerberos\_service\_name =\> "kafka"  
security\_protocol =\> "SASL\_PLAINTEXT"  
sasl\_mechanism =\> "GSSAPI"  
}

}

This picked up topic name correctly , but throws below error for jass path and kerberos config

Invalid setting for kafka output plugin:

output {  
kafka {  
# This setting must be a path  
# File does not exist or cannot be opened %{[@metadata][kerberos\_config]}  
kerberos\_config =\> "%{[@metadata][kerberos\_config]}"  
...  
}  
}  
[2019-08-12T15:32:59,506][ERROR][logstash.outputs.kafka] Invalid setting for kafka output plugin:

output {  
kafka {  
# This setting must be a path  
# File does not exist or cannot be opened %{[@metadata][jass]}  
jaas\_path =\> "%{[@metadata][jass]}"  
...  
}

Can someone please suggest how can we provide jass config at runtime? I am using logstash 7.1

---

<div class="post-metadata">

### Author: ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)
#### Post date: [August 12, 2019, 12:37pm UTC](https://discuss.elastic.co/t/kafka-output-plugin-is-not-picking-up-value-from-metadata-field/194825/2 "2019-08-12T12:37:07Z")

</div>

> [@amrutadale](#):
>
> Can someone please suggest how can we provide jass config at runtime?

jaas\_path and kerberos\_config are [passed straight through](https://github.com/logstash-plugins/logstash-output-kafka/blob/b99d69d7abc9e6e55df8c2e6b1b0b943f9a69189/lib/logstash/outputs/kafka.rb#L372) to the environment, so no sprintf substitutions are done. It cannot be a runtime variable.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [September 9, 2019, 12:37pm UTC](https://discuss.elastic.co/t/kafka-output-plugin-is-not-picking-up-value-from-metadata-field/194825/3 "2019-09-09T12:37:14Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
