Hello.
Please help me understand why the second pipeline in Logstash is not working. I have Logstash 8+ installed. I added a second pipeline path in the pipelines.yml file as follows:
- pipeline.id: audit
path.config: "/etc/logstash/conf.d/audit_log/*.conf"
- pipeline.id: main
path.config: "/etc/logstash/conf.d/*.conf"
Before that, I created the directory audit_log, provided the necessary permissions, and set the owner to logstash. I created a new pipeline test.conf which looks like this:
I found this information in the logs: "[2025-12-11T09:57:25,335][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified". This means the 'mail' pipeline is loading, but the second one is not. I don't understand why this is happening?
How did you start LS? As a process with -f /path/file.conf? That means it will run only a single file. Easiest way to start as a service.
When you start Logstash without arguments, it will read the pipelines.yml file and instantiate all pipelines specified in the file. On the other hand, when you use -e or -f , Logstash ignores the pipelines.yml file and logs a warning about it.
For multiple .conf files, you can use cmds:
logstash -f file1.conf -f file2.conf -f file3.conf
When using multiple pipelines you should run logstash as service with systemctl start logstash.
This may work, but is not the same as running multiple pipelines, this will merge all configurations into one, they will not be isolated and the inputs, filters and outputs will be applied to all events.
Using pipelines.yml with multiple pipelines isolate the pipelines from each other.
Good point to underline. The pipeline isolate .conf files. However my point was that if you have multiple files in a directory, i.e. audit_log/.conf* than you can run as cmd by adding all files.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.