Logstash not listening to 5044

Hi Im new to ELK, when I try to transfert data filebeat ->logstash I got my logstash not listening to port 5044 any help would be appreciated

Pipeline :

input {
    beats {
        port => 5044
filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}"}
output {
    stdout { codec => rubydebug }
    elasticsearch {
        hosts => [""]
        index => "testapa-%{+YYYY.MM.dd}"


# ============================== Filebeat inputs ===============================


# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
    - /var/log/*.log
    - /Users/abelkadhi/Downloads/logstash-tutorial.log

# filestream is an experimental input. It is going to replace log input in the future.
- type: filestream

  # Change to true to enable this input configuration.
  enabled: false

  # Paths that should be crawled and fetched. Glob based paths.
    - /var/log/*.log

  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml

  # Set to true to enable config reloading
  reload.enabled: false

  index.number_of_shards: 1
  #index.codec: best_compression
  #_source.enabled: false


  # Kibana Host
  # Scheme and port can be left out and will be set to the default (http and 5601)
  # In case you specify and additional path, the scheme is required: http://localhost:5601/path
  # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
  host: "localhost:5601"

  # The Logstash hosts
  hosts: ["localhost:5044"]

  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~


# ------------ Data path ------------------
# Which directory should be used by logstash and its plugins
# for any persistent needs. Defaults to LOGSTASH_HOME/data
path.data: /var/lib/logstash

pipeline.ordered: auto

# ------------ HTTP API Settings -------------
# Define settings related to the HTTP API here.
# The HTTP API is enabled by default. It can be disabled, but features that rely
# on it will not work as intended.
# http.enabled: true
# By default, the HTTP API is bound to only the host's local loopback interface,
# ensuring that it is not accessible to the rest of the network. Because the API
# includes neither authentication nor authorization and has not been hardened or
# tested for use as a publicly-reachable API, binding to publicly accessible IPs
# should be avoided where possible.
# The HTTP API web server will listen on an available port from the given range.
# Values can be specified as a single port (e.g., `9600`), or an inclusive range
# of ports (e.g., `9600-9700`).
http.port: 5044

path.logs: /var/log/logstash

The default value of the host option on a beats input is "", which of the available IP addresses that includes depends on the TCP stack. If you have configured filebeat to send to "localhost:5044" then I suggest you add

host => "localhost"

to your beats input.

Try to remove the following config from your logstash.yml and start logstash again.

This will set the API endpoint to listen on port 5044, the same port of your beats input.

The http.port config in logstash.yml has nothing to do with your pipeline, it sets the port for the logstash api which is used mostly in monitoring the pipelines.