從零進階--教你如何使用Filebeat實現日誌可視化收集 html
簡介:mysql
Filebeat是一個開源的文件收集器,也是一款輕量級的日誌傳輸工具。採用go語言開發,重構logstash採集器源碼,安裝在服務器上做爲代理來監視日誌目錄或特定的日誌文件,並把它們發送到logstash或elasticsearch,而後在Kibana上實現可視化。linux
其餘介紹可參考官方文檔:nginx
1、Filebeat安裝sql
下載地址:apache
源碼安裝:vim
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安裝ruby
2、Filebeat應用
由於個人是以rpm安裝的,因此咱們能夠在/etc/filebeat/下面發現有filebeat.yml
咱們能夠發現在filebeat.yml配置文件裏面,主要配置的模塊有兩個
Filebeat: 在這個模塊裏面,咱們能夠配置監控的日誌,經過這個模塊,咱們能夠指定日誌的絕對路徑,日誌的類型,感知更新時間等等的·一些配置。
Output:在這個模塊裏面,主要的做用的是,filesbetas收集的日誌輸出到哪裏,在這裏,咱們能夠配置elasticsearch和logstash,二者二選一就能夠了。
配置收集日誌目錄:
/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
3、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
下一步就能夠建立完畢了
建立完畢後
咱們直接跳到Discover,查看咱們獲取的數據
能夠發現咱們是已經獲取到nginx的完整的數據了
繼續查看咱們的nginx的儀表板。
咱們能夠發現,我已經能夠經過filebeat採集到nginx的日誌的數據了,並生成的數據圖像,到這裏咱們的獲取數據就完成了,elasticsearch經過filebeat獲取數據就完成了。
4、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收集到數據了
查看logstash的啓動狀態,發現5044已經起來了。
4、添加索引,出數據
查看是否已經獲取到數據
咱們發現已是能夠獲取到目標主機的nginx日誌了。到這裏咱們使用logstash獲取日誌就完成了。
5、總結
Filebeat不單單能夠收集nginx,還能夠收集mysql、apache、redis和系統日誌。從咱們的搭建過程來看,能夠發現filebeat配置並非很難,不過更好的應用仍是須要進一步熟悉才行。。