[喵咪BELK實戰(3)] logstash+filebeat搭建

[喵咪BELK實戰(3)] logstash+filebeat搭建

前言

在上節咱們已經把elasticsearch+kibana已經搭建起來了,能夠正常的進行數據的索引查詢了,可是直接對elasticsearch進行操做也很是不方便, elasticsearch很難對接其餘的數據源,這是使用就須要logstash和filebeat出場了...linux

附上:vim

喵了個咪的博客:w-blog.cn服務器

官網地址:https://www.elastic.co/cn/elasticsearch

1. logstash

logstash主要的做用就是輸入輸出進行數據的處理,官方聲稱支持十幾種數據輸入源和輸出源,而且能夠多點分發是一個很強大的工具,咱們主要使用的是它的數據處理功能(好比解析日誌提取關鍵字索引,數據過濾等)工具

1.1 安裝

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.3.0.tar.gz
tar -zxvf logstash-5.3.0.tar.gz
mv logstash-5.3.0 /usr/local/

1.2 第一條管道

從以前的介紹有了解到logstash它的主要功能是處理數據進行輸入輸出,因此咱們就要搭建一條輸入輸出的數據通道來進行數據傳輸,建立這條管道的配置文件:性能

vim /usr/local/logstash-5.3.0/config/first-pipeline.conf3d

# 制定輸入源爲beats 而且開發9011端口接受數據
input {
	beats { 
		port => 9011
	}
}
# 制定數據輸出源爲elasticsearch 而且指定index名稱
output {
	elasticsearch {
		hosts => [ "localhost:9200" ]
		index => "first-pipeline-%{+YYYY.MM.dd}"
	}
}

試着啓動logstash: /usr/local/logstash-5.3.0/bin/logstash -f /usr/local/logstash-5.3.0/config/first-pipeline.conf 看到以下輸出證實以及成功啓動logstashrest

[2017-05-04T09:55:59,951][INFO ][logstash.inputs.beats    ] Beats inputs: Starting input listener {:address=>"0.0.0.0:9011"}
[2017-05-04T09:56:00,007][INFO ][logstash.pipeline        ] Pipeline main started
[2017-05-04T09:56:00,104][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

使用Supervisor運行

使用Supervisor常駐啓動修改配置文件加入以下語句在重啓Supervisor就能夠在後臺運行日誌

;你須要啓動的進程給個名字
[program:logstash]
;你須要執行的語句
command=/usr/local/logstash-5.3.0/bin/logstash -f /usr/local/logstash-5.3.0/config/first-pipeline.conf
;是否自動啓動
autostart=true
autorestart=true
;運行程序的用戶
user=root

2. filebeat

雖然logstash也能夠直接監聽文件的數據,爲何還須要filebeat呢? 應爲通常咱們須要採集不少臺服務器上的日誌時須要作到儘可能少的佔用資源以及儘量的簡單,logstash使用JAVA編寫可想而知對於資源消耗也不可小視,filebeat使用GO編寫幾乎作到不影響機器性能,而且filebeat還能夠進行最基礎的分類這就是選擇filebeat的緣由(以前beats是整合在logstash後面應爲種種緣由被分離了出來)code

注意1:beats由不少程序組成filebeat只是其中對文件進行採集的一種 注意2:不必定要使用beats, logstash也能夠直接接受各類組件上傳的日誌beats只是其中一種

2.1 安裝

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.3.1-linux-x86_64.tar.gz
tar -zxvf filebeat-5.3.1-linux-x86_64.tar.gz
mv filebeat-5.3.1-linux-x86_64 /usr/local/filebeat-5.3.1

2.2 配置採集數據源

既然是採集文件數據固然少不了對採集數據源的配置

vim /usr/local/filebeat-5.3.1/filebeat.yml

默認filebeat輸出源是elasticsearch咱們須要替換成logstash

# 修改以下語句
 output.elasticsearch:        ->   output.logstash:
  hosts: ["localhost:9200"]   ->   hosts: ["localhost:9011"]

配置文件默認採集/var/log下以.log結尾的文件

- input_type: log
  paths:
    - /var/log/*.log

使用以下命令運行 :/usr/local/filebeat-5.3.1/filebeat -c /usr/local/filebeat-5.3.1/filebeat.yml

2.3 使用Supervisor運行

使用Supervisor常駐啓動修改配置文件加入以下語句在重啓Supervisor就能夠在後臺運行

;你須要啓動的進程給個名字                                                                                                            
[program:filebeat]
;你須要執行的語句
command=/usr/local/filebeat-5.3.1/filebeat -c /usr/local/filebeat-5.3.1/filebeat.yml
;是否自動啓動
autostart=true
autorestart=true
;運行程序的用戶
user=root

3 在kibana中查看採集的日誌

正常採集起來以後就能夠在kibana中添加一個查看的索引了

這個時候就把/var/log中全部以.log結尾的日誌所有采集上來了而且能夠經過source來進行文件的選擇 這是選擇了只看yum.log以後的效果

4. 總結

到這裏咱們基本上吧BELK已經完整的搭建起來而且對日誌開始採集了,可是BELK不單單如此,還有對於kibana的使用,對於各種日誌的處理,對於時間的處理,對於索引字段的增長等還有不少細節,繼續關注喵了個咪的博客會爲你們帶來更多的關於BELK的使用技巧

注:筆者能力有限有說的不對的地方但願你們可以指出,也但願多多交流!

相關文章
相關標籤/搜索