Filebeat 如何讀取多個日志目錄

來源:本站原創 elk 超過1,525 views圍觀 0條評論

遇到的典型問題

問題:Filebeat 如何讀取多個日志目錄?

如果 Filebeat 所在 server 上運行有多個 application servers,各自有不同的日志目錄,那 Filebeat 如何同時讀取多個目錄,這是一個非常典型的問題。

解決方案:通過配置多個 prospector 就能達到要求。在配置文件的 prospectors 下,每個"-"表示一個 prospector,每個 prospector 包含一些配置項,指明這個 prospector 所要讀取的日志信息。如下所示:

:

-

paths:

- /home/WLPLog/*.log

# 其他配置項,具體參考 Elastic 官網

-

paths:

- /home/ApacheLog/*.log

# 其他配置項,具體參考 Elastic 官網

問題:Filebeat 如何區分不同日志來源?

還是上題中提到的場景,Filebeat 雖然能讀取不同的日志目錄,但是在 Logstash 這邊,或者是 Elasticsearch 這邊,怎么區分不同 application server 的日志數據呢?

解決方案:Filebeat 的配置項 fields 可以實現不同日志來源的區分。用法如下:

 

prospectors:

-

paths:

- /home/WLPLog/*.log

fields:

log_source: WLP

-

paths:

- /home/ApacheLog/*.log

fields:

log_source: Apache

在 fields 配置項中,用戶可以自定義域來標識不同的 log。比如上例中的"log_source"就是筆者自定義的。如此,從 Filebeat 輸出的 log 就有一個叫做 log_source 的域表明該 log 的實際來源。

問題:如何配置 Logstash 與 Elasticsearch 集群通信?

我們知道 Logstash 使用 Elasticsearch 輸出插件就能把數據發送到 Elasticsearch 進行存儲和搜索。Elasticsearch 插件中有個 hosts 配置項說明 Elasticsearch 信息。但是假如是一個 Elasticsearch 集群,應該怎么配置 hosts?

解決方案:最簡單的做法是把集群中所有的 Elasticsearch 節點的 IP 或者是 hostname 信息都在 hosts 中配上(它支持數組)。但是如果集群比較大,或者是集群節點變動頻繁的話,還需要維護這個 hosts 值,不太方便。比較推薦的做法是只配集群中某個節點的信息,可以是 client 節點,也可以是 master 節點或者是 data 節點。因為不管是哪個節點,都知道該它所在集群的信息(集群規模,各節點角色)。這樣,Logstash 與任意節點通信時都會先拿到集群信息,然后再決定應該給哪個節點發送數據輸出請求。

https://www.ibm.com/developerworks/cn/opensource/os-cn-elk-filebeat/index.html

參考資料

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文鏈接:http://www.qdxgqk.live/?p=3660轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
  • 相關文章
  • 為您推薦
  • 各種觀點
?
暫時還木有人評論,坐等沙發!
發表評論

您必須 [ 登錄 ] 才能發表留言!

?
?
萌宠夺宝游戏