fluentd是乙個實時開源的資料收集器,基於cruby實現,td-agent是其商業化版本,由treasure data公司維護。本文將介紹如何使fluentd能夠讀寫oss。
[root@apache ~]# rpm -ivh td-agent-3.3.0-1.el7.x86_64.rpm
然後,需要安裝fluentd的oss plugin:
[root@apache ~]# /usr/sbin/td-agent-gem install fluent-plugin-aliyun-oss
這裡請注意,因為我們使用的是td-agent,安裝fluentd plugin時需要使用td-agent的td-agent-gem(/usr/sbin/td-agent-gem)。原因是td-agent有自己的ruby,你需要將plugin安裝到它的ruby裡面,而不是其他的ruby,否則將會找不到已經安裝好的plugin。
具體可以參見fluentd的官方文件
安裝完成後,我們可以檢視安裝的oss plugin:
[root@apache ~]# /usr/sbin/td-agent-gem list fluent-plugin-aliyun-oss
*** local gems ***
fluent-plugin-aliyun-oss (0.0.1)
fluent-plugin-aliyun-oss這個plugin包含兩部分:
fluent oss output plugin
將資料快取在本地,達到設定的條件後,將快取的資料(壓縮後,如果設定的話)上傳到oss。
fluent oss input plugin
首先,oss的bucket需要配置事件通知,這篇文章介紹了如何設定,得到mns的queue與endpoint。
設定好之後,這個plugin會定時地從mns拉取訊息,從訊息中獲取上傳的objects,最後從oss讀取這些objects,再發往下游。
下面將分別介紹如何配置,具體的配置引數說明參見github:
下面是乙個例子,將讀到的資料,每分鐘乙個檔案寫到oss中。其中endpoint/bucket/access_key_id/access_key_secret是必填項,其他的都是可選項。
workers 6
@type oss
endpoint bucket access_key_id access_key_secret upload_crc_enable false
path "fluent-oss/logs"
auto_create_bucket true
key_format "%/%/events_%_%.%"
#key_format %/events/ts=%/events_%_%.%
time_slice_format %y%m%d-%h
store_as gzip
@type file
path /var/log/fluent/oss/$
timekey 60 # 1 min partition
timekey_wait 1s
# timekey_use_utc true
flush_thread_count 1
@type json
我們可以從oss控制台看到效果:
下面是乙個配置示例,其中endpoint/bucket/access_key_id/access_key_secret和mns的endpoint/queue是必填項,其他的都是可選項。
@type oss
endpoint bucket access_key_id access_key_secret store_local false
store_as gzip
flush_batch_lines 800
flush_pause_milliseconds 1
download_crc_enable false
endpoint queue poll_interval_seconds 1
@type json
我們可以從log中看一下執行狀態
2019-04-23 15:38:14 +0800 [info]: #5 start to poll message from mns queue fluentd-oss
2019-04-23 15:38:14 +0800 [info]: #5
2019-04-23 15:38:14 +0800 [info]: #5 read object fluent-oss/logs/20190423-12/events_10_70226640160100.gz, size 4389548 from oss
2019-04-23 15:38:15 +0800 [info]: #1 ?receipthandle=0bc1ea4e51483d4eac69736941044aae-mjy5odkgmtu1njawntawodmwnsaznjawmda
2019-04-23 15:38:16 +0800 [info]: #1 start to poll message from mns queue fluentd-oss
2019-04-23 15:38:16 +0800 [info]: #1
2019-04-23 15:38:16 +0800 [info]: #1 read object fluent-oss/logs/20190423-09/events_50_69939581261780.gz, size 6750045 from oss
使用Fluentd讀寫OSS
fluentd是乙個實時開源的資料收集器,基於cruby實現,td agent是其商業化版本,由treasure data公司維護。本文將介紹如何使fluentd能夠讀寫oss。root apache rpm ivh td agent 3.3.0 1.el7.x86 64.rpm然後,需要安裝flu...
fluentd學習 安裝使用
fluentd是非常強大的logging工具,幾句話簡單認識下。1.提供日誌的蒐集,過濾,路由功能 2.使用ruby c開發 3.支援多種資料來源的輸入,比如apache的access log,syslogd,業務log 4.支援多種輸出,file,amazon s3,mongodb,mysql,h...
使用Fluentd和MongoDB構建日誌收集系統
fluentd是乙個日誌收集系統,它的特點在於其各部分均是可定製化的,你可以通過簡單的配置,將日誌收集到不同的地方。目前開源社群已經貢獻了下面一些儲存外掛程式 mongodb,redis,couchdb,amazon s3,amazon sqs,scribe,0mq,amqp,delayed,gro...