EFK(5) - Fluentd 高可用架構(High Availibity)

架構

之前我們的架構是直接由 fluentd td-agent 傳送到 elasticsearch (如下圖)

為了更高的可用性(High Availibity),我們在中間加入 aggregator 的角色,讓在 td-agent 扮演 forwarder 角色,職責更加單一,forwarder 只負責「傳送資料給 aggregator」。過濾(filter)資料的工作轉由 aggregator 負責,這樣的架構下降低了原本應用程式伺服器(application server)的負擔,提供了更高的可用性。架構如下:

實際設定方式

2.1 如何設定 Forwarder

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# TCP input
<source>
@type forward
port 24224
</source>

# HTTP input
<source>
@type http
port 8888
</source>

# Log Forwarding
<match mytag.**>
@type forward

# primary host
<server>
host 192.168.0.1
port 24224
</server>
# use secondary host
<server>
host 192.168.0.2
port 24224
standby
</server>

# use longer flush_interval to reduce CPU usage.
# note that this is a trade-off against latency.
flush_interval 60s
</match>

2.2 如何設定 Aggregator

1
2
3
4
5
6
7
8
9
10
# Input
<source>
@type forward
port 24224
</source>

# Output
<match mytag.**>
...
</match>

參考資料

Fluentd High Availability Configuration - Fluentd

評論