Beats 平台集合了多種單一用途資料采集器。這些采集器安裝後可用作輕量型代理,從成百上千或成千上萬台機器向 Logstash 或 Elasticsearch 發送資料。
一、架構圖
此次試驗基于前幾篇文章,需要先基于前幾篇文章搭建基礎環境。
二、安裝Filebeat
- 下載下傳并安裝Filebeat
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.0.1-x86_64.rpm yum install ./filebeat-6.0.1-x86_64.rpm
- 修改Filebeat配置檔案
vim /etc/filebeat/filebeat.yml # 主配置檔案 \- type: log # 文檔類型 paths: \- /var/log/httpd/access.log* # 從哪裡讀入資料 # 輸出在elasticsearch與logstash二選一即可 output.elasticsearch: #将資料輸出到Elasticsearch。與下面的logstash二者選一 hosts: ["localhost:9200"] output.logstash: # 将資料傳送到logstash,要配置logstash使用beats接收 hosts: ["172.18.68.14:5044"]
- 啟動Filebeat
systemctl start filebeat
三、配置Filebeat
- 配置Logstash接收來自Filebeat采集的資料
vim /etc/logstash/conf.d/test.conf input { beats { port => 5044 # 監聽5044用于接收Filebeat傳來資料 } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" # 比對HTTP的日志 } remove_field => "message" # 不顯示原資訊,僅顯示比對後 } } output { elasticsearch { hosts => ["http://172.18.68.11:9200","http://172.18.68.12:9200","http://172.18.68.13:9200"] # 叢集IP index => "logstash-%{+YYYY.MM.dd}" action => "index" document_type => "apache_logs" } }
- 啟動Logstash
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf
四、模拟日志通路
通過curl指令來模拟客戶通路,生成通路日志
curl 127.0.0.1
curl 172.18.68.51
curl 172.18.68.52
curl 172.18.68.53
五、驗證資訊
清除之前實驗的舊資料(删除時要在對話框中輸入删除),然後可以看到filebeat采集資料經過Logtash過濾再送給Elasticsearch的資料。
擴充
随着ELK日志系統逐漸更新,現在已經能基于Filebeat采集各節點日志,Logstash過濾、修剪資料,最後到ELasticsearch中進行索引建構、分詞、建構搜尋引擎。現在可以基于Elasticsearch的Head檢視在浏覽器中檢視,但是Head僅僅能簡單檢視并不能有效進行資料分析、有好展示。要想進行資料分析、有好展示那就需要用到Kibana,Kibana依然放在下一篇文章中講解,這裡先放上架構圖。