Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install logstash plugin with docker-compose?

I try to install logstash with a docker-compose but docker exited with code 0 just after Installation successful when I try to install a logstash plugin.

The part of docker-compose file for logstash is:

  logstash:
    image: docker.elastic.co/logstash/logstash-oss:7.0.1
    ports: ['9600:9600']
    command: bin/logstash-plugin install logstash-filter-metricize
    volumes:
      - ./logstash/pipeline/:/usr/share/logstash/pipeline/

And the logs are:

logstash_1       |Validating logstash-filter-metricize
logstash_1       |Installing logstash-filter-metricize
logstash_1       |Installation successful
logstash_1 exited with code 0

If I try without install the plugin, my docker-compose works fine. I don't understand what I'm doing wrong when I install the plugin.

like image 736
B3n Avatar asked May 08 '19 13:05

B3n


2 Answers

I use a Dockerfile to fix it.

My Dockerfile:

FROM docker.elastic.co/logstash/logstash-oss:7.0.1

RUN rm -f /usr/share/logstash/pipeline/logstash.conf && \
  bin/logstash-plugin install logstash-filter-metricize

My part of docker-compose:

  logstash:
    build: 
      context: ./logstash
    ports: ['9600:9600']
    volumes:
      - ./logstash/pipeline/:/usr/share/logstash/pipeline/
like image 169
B3n Avatar answered Sep 30 '22 13:09

B3n


You need to chain logstash startup command after install.

  command: bash -c "bin/logstash-plugin install logstash-filter-metricize && logstash -f /etc/logstash/conf.d/logstash.conf "
like image 39
Hank Avatar answered Sep 30 '22 15:09

Hank