iT邦幫忙

2022 iThome 鐵人賽

DAY 27
1

今天要來研究 Fluentd 這一套工具,

在我打聽時,有前輩跟我推薦了 Fluentd,說是業界很常用的 Docker Log 收集工具,
同時在昨天分享的文章中,也有提到了這套工具,

因此今天來看看 Fluentd 要怎麼用、以及如何跑起來。


Fluentd

根據官方網站,Fluentd 的宗旨就是把散佈在各個服務中的 Log,可以集中到同一個地方,

Fluentd

服務產生的 Log,會寫入 Fluentd,經過整理後,再轉送到其他地方儲存,例如 Database 或雲端平台上的 Log 服務。


Fluentd Image

Fluentd 可以直接裝在 Server 上,同時官方也提供了 Docker image,可以參考 Install by Docker
既然我們是講 Docker,就讓我們用 Docker 來安裝吧,

首先要先定義一個 Fluentd 的設定檔,

# fluentd.conf

<source>
  @type http
  port 9880
  bind 0.0.0.0
</source>

<match **>
  @type stdout
</match>

啟動 fluentd image,引入設定檔,就可以使用了:

$ sudo docker run \
	-d \
    --name=fluentd \
	-p 9880:9880 \
	-v $(pwd):/fluentd/etc \
	fluent/fluentd:edge-debian \
	fluentd -c /fluentd/etc/fluentd.conf

Fluentd 預設佔用 9880 port,並提供用 HTTP POST method 寫入 Log,

用 Docker 安裝的版本,寫入 Fluentd 的內容也會呈現在 Docker Log 上,因此可以馬上看到有成功寫入 Log,

目前猜測使用不同 Endpoint,就會在 Log 中寫入不同的前綴,後續也許還可以做進一步的分類,

$ curl -X POST -d 'json={"hello":"fluentd"}' \
http://localhost:9880/cool.message

$ sudo docker logs fluentd

fluentd -c /fluentd/etc/fluentd.conf
2022-10-12 13:45:35 +0000 [info]: parsing config file is succeeded path="/fluentd/etc/fluentd.conf"
2022-10-12 13:45:35 +0000 [info]: gem 'fluentd' version '1.15.2'
...
2022-10-12 13:47:41.560014765 +0000 cool.message: {"hello":"fluentd"}

那今天的研究就先到這邊,明天再接續著看看可以如何以 Fluentd 做到更多應用。


上一篇
D26 - Logging Best Practice
下一篇
D28 - Fluentd Life Cycle
系列文
其實沒有那麼難 — Docker30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言