Logstash is not able to find logstash.conf file

27 Views Asked by At

I am trying to manage log using ELK in a Spring Boot project on Windows System. Project hierarchy is given blow.

enter image description here

Code in docker-compose.yml

version: '2.20.4'
services:
  Elasticsearch:
    image: elasticsearch:7.16.2
    container_name: elasticsearch
    restart: always
    volumes:
    - elastic_data:/usr/share/elasticsearch/data/
    environment:
      ES_JAVA_OPTS: "-Xmx256m -Xms256m"
      discovery.type: single-node    
    ports:
    - '9200:9200'
    - '9300:9300'
    networks:
      - elk

  Logstash:
    image: logstash:7.16.2
    container_name: logstash
    restart: always
    volumes:
    - ./logstash/config/logstash.yml:/dc-demo-main/logstash/config/logstash.yml:ro
    - ./logstash/pipeline:/dc-demo-main/logstash/pipeline:ro
    command: logstash -f /dc-demo-main/logstash/logstash.conf
    depends_on:
      - Elasticsearch
    ports:
    - '9600:9600'
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"    
    networks:
      - elk

  Kibana:
    image: kibana:7.16.2
    container_name: kibana
    restart: always       
    ports:
    - '5601:5601'
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200  
    depends_on:
      - Elasticsearch  
    networks:
      - elk
volumes:
  elastic_data: {}

networks:
  elk:

logstash.conf

input{
    file{
        path => "C:/ELK_Logs/elk-stack.log"
                start_position => "beginning"
    }
}

output{
    stdout{
           codec=>rubydebug
        }
    elasticsearch{
        hosts => ["http://elasticsearch:9200"]
    }
}

logstash.yml

http.host: "0.0.0.0"
path.config: /dc-demo-main/logstash/pipeline
xpack.monitoring.elasticsearch.hosts: [ "localhost:9200" ]

On Elastic Search dashboard log is not getting populated When trying to create index in logstash.conf file index is also not getting created. when I am trying o search under http://localhost:9200/_cat/indices enter image description here

1

There are 1 best solutions below

0
Murat K. On

Please check the official documents:

Directory Layout for Docker Images

So default path for conf file will be: /usr/share/logstash/pipeline But your command is looking for it under /dc-demo-main/logstash/logstash.conf

I think this is worth to give it a try.

Here is a similar example: DOCKER - ELK 7.6 : ELASTIC STACK WITH DOCKER COMPOSE