Я выполняю некоторые "игры вокруг", чтобы увидеть, насколько эффективно использование Rsyslog для отправки данных во Fluentd в качестве централизованного сервера, а затем для отправки результатов в ElasticSearch. Изучив документацию, rsyslog может переслать данные в fluentd, если в файле rsyslog.conf установлено следующее:
$WorkDirectory /var/lib/rsyslog # where to place spool files
$ActionQueueFileName fwdRule1 # unique name prefix for spool files
$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
$ActionQueueType LinkedList # run asynchronously
$ActionResumeRetryCount -1 # infinite retries if host is down
*.* @fluentd:9881
*.* @@fluentd:9881
Файл docker -compose.yml:
version: '3'
services:
rsyslog:
image: vimagick/rsyslog
volumes:
- ./rsyslog/config/rsyslog.conf:/etc/rsyslog.conf
- ./rsyslog/data:/var/log
ports:
- "8514:514"
- "8514:514/udp"
- "1601:1601"
depends_on:
- "fluentd"
networks:
- demo-network
environment:
- TX=UTC
fluentd:
build: ./fluentd
volumes:
- ./fluentd/conf:/fluentd/etc
ports:
- "9880:9880"
- "9880:9880/udp"
- "9881:9881"
- "9881:9881/udp"
networks:
- demo-network
networks:
demo-network:
Когда я начинаю использовать docker -compose, появляется следующий вывод:
fluentd_1 | 2020-01-09 14:14:48 +0000 [info]: spawn command to main: cmdline=["/usr/local/bin/ruby", "-Eascii-8bit:ascii-8bit", "/usr/local/bundle/bin/fluentd", "-c", "/fluentd/etc/fluent.conf", "-p", "/fluentd/plugins", "--under-supervisor"]
rsyslog_1 | rsyslogd: cannot connect to fluentd:9881: Connection refused [v8.1911.0 try https://www.rsyslog.com/e/2027 ]
rsyslog_1 | rsyslogd: cannot connect to fluentd:9881: Connection refused [v8.1911.0 try https://www.rsyslog.com/e/2027 ]
Контейнер rsyslog не может связаться с контейнером fluentd через имя хоста. У кого-нибудь есть причина, почему это так?