Elasticsearch 是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
Logstash 是一個完全開源的工具,它可以對你的日志進行收集、分析,並將其存儲以后使用
kibana 是一個開源和免費的工具,它可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日志。
什么是filebeat?
Filebeat是一個輕量級的托運人,通過socket的方式,用於轉發和集中日志數據。Filebeat作為代理安裝在服務器上,監視您指定的日志文件或位置,收集日志事件,並將它們轉發到Elasticsearch或 Logstash進行索引。
本文的filebeat作用是采集特定目錄下的日志,並將其發送出去,但是它只能采集並無法對數據進行篩選,這時候就用到logstash了,logstash擁有眾多插件可提供過濾篩選功能,由於logstash本身是基於jdk的,所以占用內存較大,而filebeat相較下,占用的內存就不是很多了。
所以可采用如下的方案采集篩選日志:
1、每個項目都伴隨着一個filebeat采集日志,你只需給他配置日志所在目錄(可用正則匹配)即可,它會進行監視,如有新增日志會自動將日志采集發送到你配置的輸出里,一般配置的輸出有kafka和redis、logstash、elasticsearch,這里為了篩選格式,采用logstash進行處理。
2、配置filebeat多模塊,為眾多項目配置日志目錄路徑進行日志采集並發送到logstash篩選過濾在轉發給elasticsearch。
Docker 安裝 ElasticSearch
Docker 安裝 Filebeat
Docker 安裝 Logstash
Docker 安裝 Kibana