ELK в docker и udp

Пока что мои эксперименты с udp не завершились успехом, пробовал так:

version: '3.5'

services:
    logstash:
        image: docker.elastic.co/logstash/logstash:6.8.15
        entrypoint: ["/tmp/logstash-entrypoint.sh"]
        volumes:
            - ./my/logstash-entrypoint.sh:/tmp/logstash-entrypoint.sh
            - ./my/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro
        environment:
            # чтобы logstash лишний раз не делал http://elasticsearch:9200/
            - XPACK_MONITORING_ENABLED=false
        ports:
            - 5046:5046
            - 12201:12201
            - 12202:12202/udp
            - 12203:12203
            - 12204:12204/udp
            - 12202:12202/udp
# так делать нельзя, потому что изначально запускается не просто bin/logstash а запускается https://github.com/elastic/logstash-docker/blob/master/build/logstash/bin/docker-entrypoint
#        entrypoint: ["bin/logstash", "--log.level", "debug"]

./my/logstash-entrypoint.sh

#!/bin/bash -e

# Copied from https://github.com/elastic/logstash-docker/blob/master/build/logstash/bin/docker-entrypoint
# Map environment variables to entries in logstash.yml.
# Note that this will mutate logstash.yml in place if any such settings are found.
# This may be undesirable, especially if logstash.yml is bind-mounted from the
# host system.
env2yaml /usr/share/logstash/config/logstash.yml

export LS_JAVA_OPTS="-Dls.cgroup.cpuacct.path.override=/ -Dls.cgroup.cpu.path.override=/ $LS_JAVA_OPTS"

if [[ -z $1 ]] || [[ ${1:0:1} == '-' ]] ; then
  exec logstash --log.level debug "$@"
else
  exec "$@"
fi

./my/logstash.conf

input {
    gelf {
        port => 12201
        type => gelf
        codec => "json"
    }
}
output {
    elasticsearch {
        hosts => "elasticsearch:9200"
#        index => "mon-svc-index"
    }
}

в теории должно работать и так:

output {
   stdout { codec => rubydebug }
}

и даже так:

output {
   stdout { }
}

Как протестировать tcp (работает):

echo '{"my":"jsontext"}' | nc localhost 5046

Как протестировать udp (у меня не сработало - нужно еще тестировать, может быть не используя gulp):

echo -n '{"my":"jsontext"}' | nc -w0 -u 127.0.0.1 12201

Ошибка:

logstash.outputs.elasticsearch] Encountered a retryable error. Will Retry with exponential backoff

Поборол предположительно так: очистил жесткий диск до 74% и перезагрузил комп.

Источники: 1 - 2 - 3


09.07.2007 22:13

Комментарии

Комментариев пока нет.


Copyrights © 2007 - 2026 YaPro.Ru