我正在使用由 nginx、redis、mysql、myapp 組成的應用程式設定堆疊。Nginx 代理對 myapp 的請求。我想將日志從 nginx 發送到 EFK 堆疊,但是在啟動 nginx 服務時出現錯誤:
Error response from daemon: dial tcp 127.0.0.1:24224: connect: connection refused
docker-compose.yml 用于 myapp 的堆疊
version: "3.8"
services:
nginx:
image: nginx:alpine
deploy:
mode: replicated
replicas: 2
labels:
- traefik.enable=true
- traefik.http.routers.node1.rule=Host(`${NODE1}`)
- traefik.http.routers.node1.service=nginx
- traefik.http.routers.node2.rule=Host(`${NODE2}`)
- traefik.http.routers.node2.service=nginx
- traefik.http.routers.node3.rule=Host(`${NODE3}`)
- traefik.http.routers.node3.service=nginx
- traefik.http.services.nginx.loadbalancer.server.port=80
placement:
constraints:
- node.role == manager
logging:
driver: fluentd
options:
fluentd-address: localhost:24224
tag: nginx-
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
ports:
- 80:80
depends_on:
- myapp
networks:
- traefik-public
...
所有堆疊都在同一個 traefik-public 網路中,如果您ping fluentd從任何容器制作,fluentd 會回應
efk.yml 的一部分
version: "3.7"
services:
fluentd:
image: registry.rebrainme.com/docker_users_repos/3912/dkr-30-voting/fluentd
deploy:
mode: global
volumes:
- /mnt/fluent.conf:/fluentd/etc/fluent.conf
ports:
- "24224:24224"
- "24224:24224/udp"
depends_on:
- elasticsearch
- kibana
networks:
- traefik-public
...
流利的.conf
<source>
@type forward
port 24224
bind localhost
</source>
<match *.**>
@type copy
<store>
@type elasticsearch
host elasticsearch
port 9200
logstash_format true
logstash_prefix fluentd
logstash_dateformat %Y%m%d
include_tag_key true
type_name access_log
tag_key @log_name
flush_interval 1s
</store>
<store>
@type stdout
</store>
</match>
我尋求幫助
uj5u.com熱心網友回復:
特長;
因為您使用的是 2 個撰寫檔案。docker-compose.yml并且efk.yml它們沒有為網路共享相同的價值。
修理
將兩個檔案合并為一個。
修復(仍然分開 2 個檔案)
您應該首先創建一個網路。
docker network create traefik-public
然后更新兩個撰寫檔案
networks:
default:
external:
name: traefik-public
這應該使它作業。
uj5u.com熱心網友回復:
為了在 efk 堆疊和應用程式堆疊之間建立連接,需要將 fluentd 埠系結到主機埠
version: "3.7"
services:
fluentd:
image: my_fluentd_image:latest
deploy:
mode: global
configs:
- source: fluent-conf
target: /fluentd/etc/fluent.conf
ports:
- target: 24224
published: 24224
protocol: tcp
mode: host
depends_on:
- elasticsearch
- kibana
networks:
- traefik-public
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/490506.html
