天天看点

logstash cannot create pipeline reason= expected one of #

https://stackoverflow.com/questions/29891630/logstash-expected-one-of

I'm currently trying to run Lostash with the following config file:

input { 
    stdin { } 
} 
output { 
    rabbitmq { 
        exchange => "test_exchange" 
        exchange_type => "fanout" 
        host => "172.17.x.x" 
    } 
}
           

I do however get an error:

logstash agent --configtest -f -config.conf
           

gives me:

Error: Expected one of #, } at line 1, column 105 (byte 105) after output { rabbitmq { exchange => test_exchange exchange_type => fanout host => 172.17

It seems that logstash has the problem when I put an IP-like address in the host field. What is wrong with my config?

logstash  logstash-configuration share improve this question asked  Apr 27 '15 at 9:18

logstash cannot create pipeline reason= expected one of #

Heschoon 1,330 1 15 40

  • 1 You probably have some garbage character at the end of your file (or wherever offset 105 ends up). If I copy the config file snippet above into a new file Logstash is happy with it. Feeding your file to 

    hexdump -C

    should make the mistake easy to spot. –  Magnus Bäck  Apr 27 '15 at 9:48
  • Nop, I still have the same problem, even after having recreated the file from scratch or used the -e option. –  Heschoon  Apr 27 '15 at 12:43
  • Okay, seems that it had something to do with the way I created the config.conf; I was using an echo "content" > config.conf, but the problem is that I surround a text containing double quotes with double quotes... Surrounding the contents by single quotes when creating the config.conf file did solve my problem. –  Heschoon  Apr 27 '15 at 13:34

add a comment

2 Answers

active oldest votes up vote 2 down vote accepted

The whole problem was in the method you used when created the config.conf file.

You were using the following command:

echo "input {stdin{}} output{rabbitmq{exchange=>"test_exchange" exchange_type =>"fanout" host=>"172.17.x.x"}}"
           

Surrounding a string containing double quotes with double quotes isn't a good idea...

By using single quotes around the string, the problem is solved...

share improve this answer answered  Apr 27 '15 at 13:39

logstash cannot create pipeline reason= expected one of #

Heschoon 1,330 1 15 40 add a comment up vote 0 down vote

The real problem is that logstash doesn't report access problems to the configuration file correctly. Here is the issue on github:

https://github.com/elastic/logstash/issues/2571

Simply check access permissions and you'll be set.

share improve this answer answered  Jan 12 '16 at 18:48