# Failed to execute action {:action=\>LogStash::PipelineAction::Create/pipeline\_id:main, :exception=\>"LogStash::ConfigurationError", :message=\>"Expected one of \[A-Za-z0-9\_-\], \[ \\\\t\\\\r\\\\n\]

**URL:** <https://discuss.elastic.co/t/failed-to-execute-action-action-logstash-create-pipeline-id-main-exception-logstash-configurationerror-message-expected-one-of-a-za-z0-9-t-r-n/242613>\
**Category:** Logstash\
**Tags:** docker\
**Created:** [July 25, 2020, 6:19pm UTC](https://discuss.elastic.co/t/failed-to-execute-action-action-logstash-create-pipeline-id-main-exception-logstash-configurationerror-message-expected-one-of-a-za-z0-9-t-r-n/242613 "2020-07-25T18:19:43Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![abhijeet\_sinha](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abhijeet_sinha/32/72790_2.png) [@abhijeet\_sinha](https://discuss.elastic.co/u/abhijeet_sinha)\
**Post date:** [July 25, 2020, 6:19pm UTC](https://discuss.elastic.co/t/failed-to-execute-action-action-logstash-create-pipeline-id-main-exception-logstash-configurationerror-message-expected-one-of-a-za-z0-9-t-r-n/242613/1 "2020-07-25T18:19:43Z")

</div>

Hi, I'm trying to set up ELK stack and while setting up pipeline in logstash is gave me error:

`[ERROR][logstash.agent] Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"Expected one of [A-Za-z0-9_-], [\\t\\r\\n], \"#\", \"{\", [0-9], \".\", \"}\" at line 7, column 23 (byte 219) after input {\n\tmongodb {\n uri => 'mongodb://localhost:27017/ecommerce'\n placeholder_db_dir => '/opt/logstash-mongodb/'\n placeholder_db_name => 'logstash_sqlite.db'\n collection => 'products'\n batch_size => 5000", :backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:58:in `compile_imperative'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:66:in `compile_graph'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:28:in `block in compile_sources'", "org/jruby/RubyArray.java:2577:in `map'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:27:in `compile_sources'", "org/logstash/execution/AbstractPipelineExt.java:181:in `initialize'", "org/logstash/execution/JavaBasePipelineExt.java:67:in `initialize'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:43:in `initialize'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:52:in `execute'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:342:in `block in converge_state'"]}`

Here are my configurations:  
**docker-compose.yml:**

```
version: '3.8'

services:
  elasticsearch:
    build:
      context: elasticsearch/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./elasticsearch/config/elasticsearch.yml
        target: /usr/share/elasticsearch/config/elasticsearch.yml
        read_only: true
      - type: volume
        source: elasticsearch
        target: /usr/share/elasticsearch/data
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      ES_JAVA_OPTS: "-Xmx256m -Xms256m"
      ELASTIC_PASSWORD: $ELASTIC_PASSWORD
      node.max_local_storage_nodes: '3'
      # Use single node discovery in order to disable production mode and avoid bootstrap checks
      # see https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
      discovery.type: single-node
    networks:
      - elk
  logstash:
    build:
      context: logstash/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./logstash/config/logstash.yml
        target: /usr/share/logstash/config/logstash.yml
        read_only: true
      - type: bind
        source: ./logstash/pipeline
        target: /usr/share/logstash/pipeline
        read_only: true
    ports:
      - "5000:5000/tcp"
      - "5000:5000/udp"
      - "9600:9600"
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    networks:
      - elk
    depends_on:
      - elasticsearch

  kibana:
    build:
      context: kibana/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./kibana/config/kibana.yml
        target: /usr/share/kibana/config/kibana.yml
        read_only: true
    ports:
      - "5601:5601"
    networks:
      - elk
    depends_on:
      - elasticsearch

networks:
  elk:
    driver: bridge

volumes:
  elasticsearch:

```

**Docker file for logstash:**

```
ARG ELK_VERSION

# https://www.docker.elastic.co/

FROM docker.elastic.co/logstash/logstash:${ELK_VERSION}

# Add your logstash plugins setup here

# Example: RUN logstash-plugin install logstash-filter-json

RUN rm -f /usr/share/logstash/pipeline/logstash.conf && \

bin/logstash-plugin install logstash-input-mongodb .
indent preformatted text by 4 spaces

```

and my **logstash.conf** -

```
input {
	mongodb {
    uri => 'mongodb://localhost:27017/ecommerce'
    placeholder_db_dir => '/opt/logstash-mongodb/'
    placeholder_db_name => 'logstash_sqlite.db'
    collection => 'products'
    batch_size => 5000,
		generateId => "true"
		parse_method => "simple"
  }
}

filter {
	mutate {
		remove_field => ["_id"]
	}
}

output {
	elasticsearch {
		hosts => ["localhost:9200"]
		user => "elastic"
		password => "changeme"
		index => "test"
	}
	stdout { codec => rubydebug }
}

```

I'm trying to set up a pipeline from mongodb to elastic search. Any guidance on best practice would be great!

Thanks,  
Abhijeet

---

<div class="post-metadata">

**Author:** ![Jenni](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jenni/32/29684_2.png) [@Jenni](https://discuss.elastic.co/u/Jenni)\
**Post date:** [July 25, 2020, 6:29pm UTC](https://discuss.elastic.co/t/failed-to-execute-action-action-logstash-create-pipeline-id-main-exception-logstash-configurationerror-message-expected-one-of-a-za-z0-9-t-r-n/242613/2 "2020-07-25T18:29:09Z")

</div>

> [@abhijeet\_sinha](#):
>
> Expected one of [A-Za-z0-9\_-], [\t\r\n], "#", "{", [0-9], ".", "}" at line 7, column 23 (byte 219) after input {\n\tmongodb { … collection =\> 'products'\n batch\_size =\> 5000"

> [@abhijeet\_sinha](#):
>
> `batch_size => 5000,`

There's a comma that shouldn't be there.

---

<div class="post-metadata">

**Author:** ![abhijeet\_sinha](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/abhijeet_sinha/32/72790_2.png) [@abhijeet\_sinha](https://discuss.elastic.co/u/abhijeet_sinha)\
**Post date:** [July 25, 2020, 6:41pm UTC](https://discuss.elastic.co/t/failed-to-execute-action-action-logstash-create-pipeline-id-main-exception-logstash-configurationerror-message-expected-one-of-a-za-z0-9-t-r-n/242613/3 "2020-07-25T18:41:53Z")

</div>

thanks @Jenni, yeah you are right, comma shouldn't be there.  
After removing comma i landed up in another issue.

`[ERROR][logstash.agent] Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"Java::JavaLang::IllegalStateException", :message=>"Unable to configure plugins: (PluginLoadingError) Couldn't find any input plugin named 'mongodb'. Are you sure this is correct? Trying to load the mongodb input plugin resulted in this error: no such file to load -- logstash/inputs/mongodb", :backtrace=>["org.logstash.config.ir.CompiledPipeline.<init>(CompiledPipeline.java:119)", "org.logstash.execution.JavaBasePipelineExt.initialize(JavaBasePipelineExt.java:80)", "org.logstash.execution.JavaBasePipelineExt$INVOKER$i$1$0$initialize.call(JavaBasePipelineExt$INVOKER$i$1$0$initialize.gen)", "org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:837)", "org.jruby.ir.runtime.IRRuntimeHelpers.instanceSuper(IRRuntimeHelpers.java:1169)", "org.jruby.ir.runtime.IRRuntimeHelpers.instanceSuperSplatArgs(IRRuntimeHelpers.java:1156)", "org.jruby.ir.targets.InstanceSuperInvokeSite.invoke(InstanceSuperInvokeSite.java:39)", "usr.share.logstash.logstash_minus_core.lib.logstash.java_pipeline.RUBY$method$initialize$0(/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:43)", "org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:82)", "org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:70)", "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:332)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:86)", "org.jruby.RubyClass.newInstance(RubyClass.java:939)", "org.jruby.RubyClass$INVOKER$i$newInstance.call(RubyClass$INVOKER$i$newInstance.gen)", "org.jruby.ir.targets.InvokeSite.invoke(InvokeSite.java:207)", "usr.share.logstash.logstash_minus_core.lib.logstash.pipeline_action.create.RUBY$method$execute$0(/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:52)", "usr.share.logstash.logstash_minus_core.lib.logstash.pipeline_action.create.RUBY$method$execute$0$ __VARARGS__ (/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb)", "org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:82)", "org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:70)", "org.jruby.ir.targets.InvokeSite.invoke(InvokeSite.java:207)", "usr.share.logstash.logstash_minus_core.lib.logstash.agent.RUBY$block$converge_state$2(/usr/share/logstash/logstash-core/lib/logstash/agent.rb:342)", "org.jruby.runtime.CompiledIRBlockBody.callDirect(CompiledIRBlockBody.java:138)", "org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:58)", "org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:52)", "org.jruby.runtime.Block.call(Block.java:139)", "org.jruby.RubyProc.call(RubyProc.java:318)", "org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:105)", "java.base/java.lang.Thread.run(Thread.java:834)"]}`

Is there any other way to connect to mongodb? Looks like

```auto
RUN rm -f /usr/share/logstash/pipeline/logstash.conf && \
  bin/logstash-plugin install logstash-input-mongodb . 

```

in Dockerfile doesn't properly installed the plugin? 😮

Sorry for my naive questions, i am just beginning with ELK and Docker,

---

<div class="post-metadata">

**Author:** ![kelk](https://avatars.discourse-cdn.com/v4/letter/k/13edae/32.png) [@kelk](https://discuss.elastic.co/u/kelk)\
**Post date:** [July 26, 2020, 4:40pm UTC](https://discuss.elastic.co/t/failed-to-execute-action-action-logstash-create-pipeline-id-main-exception-logstash-configurationerror-message-expected-one-of-a-za-z0-9-t-r-n/242613/4 "2020-07-26T16:40:59Z")

</div>

> [@abhijeet\_sinha](#):
>
> **logstash.conf**

As far as I know, there is no official logstash MongoDB Input plugin. there is an output plugin though [MongoDB output plugin](https://www.elastic.co/guide/en/logstash/current/plugins-outputs-mongodb.html)

Then you **might** be able to use the [JDBC input](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html)

Also there is an article to configure [MongoDB using jdbc](https://bqstack.com/b/detail/97/Configure-Logstash-to-send-MongoDB-data-into-Elasticsearch)

See also another [thread in similar option](https://discuss.elastic.co/t/how-to-ingest-data-from-mongodb-database-into-elasticsearch-using-logstash/216245/4)

---

<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:** [August 23, 2020, 4:41pm UTC](https://discuss.elastic.co/t/failed-to-execute-action-action-logstash-create-pipeline-id-main-exception-logstash-configurationerror-message-expected-one-of-a-za-z0-9-t-r-n/242613/5 "2020-08-23T16:41:11Z")

</div>

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