從零進階--教你如何使用Filebeat實現日誌可視化收集

                                           從零進階--教你如何使用Filebeat實現日誌可視化收集

簡介

   Filebeat是一個開源的文件收集器,也是一款輕量級的日誌傳輸工具。採用go語言開發,重構logstash採集器源碼,安裝在服務器上作爲代理來監視日誌目錄或特定的日誌文件,並把它們發送到logstashelasticsearch,然後在Kibana上實現可視化。

 

其他介紹可參考官方文檔:

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-configuration-details.html#configuration-output

一、Filebeat安裝

下載地址:

 

源碼安裝

wget 
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.1-linux-x86_64.tar.gz


 

rpm下載安裝

curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.1-x86_64.rpm
rpm -ivh filebeat-6.4.1-x86_64.rpm


下面我們以rpm安裝

 image.png

二、Filebeat應用

因爲我的是以rpm安裝的,所以我們可以在/etc/filebeat/下面發現有filebeat.yml

 image.png

我們可以發現filebeat.yml配置文件裏面,主要配置的模塊有兩個

·         Filebeat input

·         Output

Filebeat: 在這個模塊裏面,我們可以配置監控的日誌,通過這個模塊,我們可以指定日誌的絕對路徑,日誌的類型,感知更新時間等等的·一些配置。

Output:在這個模塊裏面,主要的作用的是,filesbetas收集的日誌輸出到哪裏,在這裏,我們可以配置elasticsearchlogstash,兩者二選一就可以了。

配置收集日誌目錄:

/etc/filebeat/filebeat.yml

下面以獲取nginx的日誌爲例

安裝Elasticsearch GeoIP和用戶代理插件

es的服務器上:

#su - www
#cd /usr/local/elasticsearch
#bin /elasticsearch-plugin install ingest-geoip 
#bin /elasticsearch-plugin install ingest-user-agent


三、Filebeat採集數據,寫入到elasticsearch

修改Filebeat配置

#vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log   #定義日誌格式
  enabled: true
  paths:
- /data/wwwlogs/*.log   #定義日誌的路徑
output.elasticsearch:
  hosts: ["172.25.0.30:9200"]    #定義的es的url
  username: "elastic"  定義es的賬號,已做安全連接
  password: "changeme"
setup.kibana: 
host: "172.25.0.30:5601"   #定義kibana的url


啓動filebeat

#cd /etc/filebeat
#filebeat modules enable nginx


修改/etc/filebeat/modules.d/nginx.yml文件中的設置

#vim /etc/filebeat/modules.d/nginx.yml
# cat modules.d/nginx.yml
- module: nginx
  # Access logs
  access:
    enabled: true    
    var.paths: ["/data/wwwlogs/*.log"]
  # Error logs
  error:
    enabled: true
    var.paths: ["/data/wwwlogs/error.log"]
#filebeat setup
# service filebeat start
Starting filebeat (via systemctl):                         [  OK  ]


 

進去kibana添加filebeat

 image.png

 image.png

 下一步就可以創建完畢了

 image.png

創建完畢後

我們直接跳到Discover,查看我們獲取的數據

 image.png

可以發現我們是已經獲取到nginx的完整的數據了

繼續查看我們的nginx的儀表板。

 image.png

我們可以發現,我已經可以通過filebeat採集到nginx的日誌的數據了,並生成的數據圖像,到這裏我們的獲取數據就完成了,elasticsearch通過filebeat獲取數據就完成了。

四、Filebeat採集數據,寫入到logstash

1、修改Filebeat配置

#vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log   #定義日誌格式
  enabled: true
  paths:
- /data/wwwlogs/*.log   #定義日誌的路徑
output.logstash:
  # The Logstash hosts
  hosts: ["172.25.0.30:5044"]


2、配置logstash

logstash服務器:

因爲需要配置logstah來獲取數據,所以我們需要配置logstash

#vim /etc/logstash/conf.d/filebeat.conf

input {  
  beats {    
     port => "5044"   #定義輸入端口
  }
}
filter {  
  grok {    
     match => { "message" => "%{COMBINEDAPACHELOG}" }  
       }  
       date {    
         match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]    
         target => ["datetime"]  
       }  
       geoip {    
          source => "clientip"  
       }
}
output {  
  elasticsearch {    
  hosts => "172.25.0.30:9200"    #定義輸出的es的url。
  index => "nginx_log"   #定義標題索引
  }  
  stdout { codec => rubydebug }
}


更改權限

#chown www:www /etc/logstash/conf.d/filebeat.conf


3、啓動logstash,測試

#
./usr/local/src/logstash-6.3.0/bin/logstash
  -f /etc/logstash/conf.d/filebeat.conf


啓動之後,可以發現logstash已經從filebeat收集到數據了

 image.png

查看logstash的啓動狀態,發現5044已經起來了。

 image.png

4、添加索引,出數據

 image.png

查看是否已經獲取到數據

 image.png

我們發現已經是可以獲取到目標主機的nginx日誌了。到這裏我們使用logstash獲取日誌就完成了。

五、總結

 Filebeat不僅僅可以收集nginx,還可以收集mysqlapacheredis和系統日誌。從我們的搭建過程來看,可以發現filebeat配置並不是很難,不過更好的應用還是需要進一步熟悉才行。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章