Logstash Docker Compose 最简单的 stdin 输入和标准输出示例

cod*_*diz 6 logging elasticsearch logstash docker docker-compose

我正在尝试在 Docker Compose 上创建一个最简单的 Logstash 示例,它将从 stdin 获取输入并将输出提供给标准输出。它没有按预期工作。以下是配置文件

docker-compose.yml

version: '3.7'
services:
  logstash-sandbox:
    image: docker.elastic.co/logstash/logstash:7.8.0
    container_name: logstash-sandbox
    user: root
    volumes:
      - ./logstash.yml:/usr/share/logstash/config/logstash.yml
      - ./conf:/var/logstash/configuration
    ports:
      - 9600:9600
      - 5044:5044
    networks:
      - host

networks:
  host:
Run Code Online (Sandbox Code Playgroud)

日志文件

http.host: 0.0.0.0
xpack.monitoring.enabled: false
xpack.management.enabled: false

config.reload.automatic: true
config.reload.interval: 6s

log.level: info
log.format: json

path.config: /var/logstash/configuration/*.conf

Run Code Online (Sandbox Code Playgroud)

在conf文件夹中过滤

input { stdin { } }

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
      stdout {}
}

Run Code Online (Sandbox Code Playgroud)

日志

input { stdin { } }

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
      stdout {}
}

Run Code Online (Sandbox Code Playgroud)

我没有得到任何预期的输出。