ADD fluent.conf /etc/fluent/
RUN echo \”source \’https://mirrors.tuna.tsinghua.edu.cn/rubygems/\’\” > Gemfile && gem install bundler
RUN gem install fluent-plugin-kafka -v 0.12.3 –no-document
RUN gem install fluent-plugin-elasticsearch -v 4.0.3 –no-document
CMD [\”fluentd\”]
fluent.conf
<source>
@type kafka
brokers kafka:9092
format json
<topic>
topic kafeidou
</topic>
</source>
<match *>
@type elasticsearch
host elasticsearch
port 9200
index_name fluentd
type_name fluentd
</match>
以版本為v1.3.2的fluentd鏡像為基礎(chǔ)鏡像,由于fluentd的處理層擴(kuò)展是以插件的方式進(jìn)行擴(kuò)展,所以在制作這個(gè)鏡像時(shí)需要安裝對(duì)應(yīng)的kafka插件和elasticsearch插件.
這里kafka的fluentd插件版本為0.12.3,elasticsearch的fluentd插件版本為4.0.3.
Dockerfile和fluent.conf都準(zhǔn)備好了,執(zhí)行制作鏡像命令
docker build -t fluentd-es-kafka:v1.3.2 .
這樣一來包含es插件和kafka插件的fluentd鏡像就制作完成了.
運(yùn)行這樣一個(gè)fluentd只需要一條docker命令就可以運(yùn)行起來.
docker run -it -d fluentd-es-kafka:v1.3.2
這個(gè)容器會(huì)在啟動(dòng)后開始監(jiān)聽host為kafka的kafka消息且傳輸數(shù)據(jù)到host為elasticsearch的elasticsearch節(jié)點(diǎn).
如果是es的節(jié)點(diǎn)和kafka的節(jié)點(diǎn)地址不一樣,則需要掛在volume覆蓋容器內(nèi)的默認(rèn)配置文件.
docker run -it -v {存放fluent.conf的目錄}:/etc/fluent -d fluentd-es-kafka:v1.3.2
關(guān)于制作帶有kafka插件和es插件的fluentd鏡像是怎樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問題,請(qǐng)?jiān)L問西部數(shù)碼官網(wǎng):www.ps-sw.cn