Docker ELK+Filebeat安裝與配置

環(huán)境說明

  • linux
    CentOS Linux release 7.5.1804 (Core)
  • docker
    Docker version 1.13.1
  • elk
    sebp/elk latest
  • filebeat
    filebeat-6.4.0

elk跟filebeat在同一臺(tái)機(jī)器上

架構(gòu)

  • Elasticsearch
    一個(gè)近乎實(shí)時(shí)查詢的全文搜索引擎。Elasticsearch 的設(shè)計(jì)目標(biāo)就是要能夠處理和搜索巨量的日志數(shù)據(jù)。

  • Logstash
    讀取原始日志,并對(duì)其進(jìn)行分析和過濾,然后將其轉(zhuǎn)發(fā)給其他組件(比如 Elasticsearch)進(jìn)行索引或存儲(chǔ)。Logstash 支持豐富的 Input 和 Output 類型,能夠處理各種應(yīng)用的日志。

  • Kibana
    一個(gè)基于 JavaScript 的 Web 圖形界面程序,專門用于可視化 Elasticsearch 的數(shù)據(jù)。Kibana 能夠查詢 Elasticsearch 并通過豐富的圖表展示結(jié)果。用戶可以創(chuàng)建 Dashboard 來監(jiān)控系統(tǒng)的日志。

  • Filebeat
    引入Filebeat作為日志搜集器,主要是為了解決Logstash開銷大的問題。相比Logstash,F(xiàn)ilebeat 所占系統(tǒng)的 CPU 和內(nèi)存幾乎可以忽略不計(jì)。

日志處理流程:
Filebeat將日志發(fā)送給Logstash進(jìn)行分析和過濾,然后由Logstash轉(zhuǎn)發(fā)給Elasticsearch,最后由Kibana可視化Elasticsearch 的數(shù)據(jù)

elk流程圖

安裝 ELK 套件

ELK 的部署方案可以非常靈活,在規(guī)模較大的生產(chǎn)系統(tǒng)中,ELK 有自己的集群,實(shí)現(xiàn)了高可用和負(fù)載均衡。我們的目標(biāo)是在最短的時(shí)間內(nèi)學(xué)習(xí)并實(shí)踐 ELK,因此將采用最小部署方案:在容器中搭建 ELK。

  • 運(yùn)行ELK鏡像需要vm.max_map_count至少需要262144內(nèi)存
切換到root用戶修改配置sysctl.conf
vi /etc/sysctl.conf
在尾行添加以下內(nèi)容   
vm.max_map_count=262144
并執(zhí)行命令
sysctl -p

elk啟動(dòng)的時(shí)候可能會(huì)提示如下錯(cuò)誤:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
查看容器日志:docker logs 容器ID
參考鏈接:https://blog.csdn.net/jiankunking/article/details/65448030

  • 安裝docker
在線安裝吧,如果自定義安裝請(qǐng)搜索下安裝方法,這里就不再描述了
yum install docker   
啟用服務(wù)
systemctl start docker
開機(jī)啟動(dòng)
systemctl enable docker
  • 運(yùn)行ELK鏡像
sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk
  • 配置logstash
查看容器信息
docker ps -a

進(jìn)入容器
sudo docker exec -it elk /bin/bash
或
sudo docker exec -it 容器ID /bin/bash

修改02-beats-input.conf
cd /etc/logstash/conf.d/
vi 02-beats-input.conf

/etc/logstash/conf.d/02-beats-input.conf修改成如下圖所示:

這里vi命令使用有點(diǎn)問題,我是通過DEL鍵一行一行的刪掉了那3行的

image.png

將以下三行刪除掉。這三行的意思是是否使用證書,本例是不使用證書的,如果你需要使用證書,將logstash.crt拷貝到客戶端,然后在filebeat.yml里面添加路徑即可

ssl => true 
ssl_certificate => "/pki/tls/certs/logstash.crt"
ssl_key => "/pki/tls/private/logstash.key"

注意:sebp/elk docker是自建立了一個(gè)證書logstash.crt,默認(rèn)使用*通配配符,如果你使用證書,filebeat.yml使用的服務(wù)器地址必須使用域名,不能使用IP地址,否則會(huì)報(bào)錯(cuò)

這里如果不去掉這三行配置的話,在后面啟動(dòng)filebeat時(shí),會(huì)提示如下錯(cuò)誤:

2018-09-12T10:01:29.770+0800    ERROR   logstash/async.go:252   Failed to publish events caused by: lumberjack protocol error
2018-09-12T10:01:29.775+0800    ERROR   logstash/async.go:252   Failed to publish events caused by: client is not connected
2018-09-12T10:01:30.775+0800    ERROR   pipeline/output.go:109  Failed to publish events: client is not connected
  • 重啟elk容器
docker restart 容器ID
  • kibana可視化頁面

在瀏覽器輸入:http://ip:5601 ,稍等一會(huì)即可看到kibana啟動(dòng)成功管理頁面

image.png

Elasticsearch的JSON接口:http://[Host IP]:9200/_search?pretty

安裝Filebeat

filebeat有多種安裝方式,我這里采用rpm包的安裝方式,可自動(dòng)注冊(cè)為systemd的服務(wù)

  • 下載filebeat的rpm包
cd /opt/softwares
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.0-x86_64.rpm

或者到官網(wǎng)查看最新版本直接下載:https://www.elastic.co/downloads/beats/filebeat

image.png

  • 安裝filebeat
rpm -ivh filebeat-6.4.0-x86_64.rpm
  • 配置filebeat
cd /etc/filebeat
vi filebeat.yml
image.png

配置改為上圖所示
enabled:filebeat 6.0后,enabled默認(rèn)為關(guān)閉,必須要修改成true
paths:為你想要抓取分析的日志所在路徑

image.png

配置改為上圖所示。注釋掉Elasticsearch output,開啟Logstash output。
如果直接將日志發(fā)送到Elasticsearc,請(qǐng)編輯此行:Elasticsearch output
如果直接將日志發(fā)送到Logstash,請(qǐng)編輯此行:Logstash output
只能使用一行輸出,其它的注掉即可

  • 啟動(dòng)filebeat服務(wù)
啟動(dòng)filebeat
systemctl start filebeat.service
查看filebeat狀態(tài)
systemctl status filebeat.service
查看filebeat日志
tail -f /var/log/filebeat/filebeat

參考鏈接:http://www.lxweimin.com/p/7ca38fa881ae

kibana配置

點(diǎn)擊左上角的Discover按鈕,如下圖所示,提示創(chuàng)建“index pattern”:


image.png

如下圖,紅框中輸入filebeat-*,再點(diǎn)擊Next step:


image.png

如下圖,下拉框中選擇@timestamp,再點(diǎn)擊Create index pattern
image.png

在彈出的頁面上,再次點(diǎn)擊左上角的Discover按鈕,然后點(diǎn)擊右上角的Last 15 minutes,如下圖:


image.png

此時(shí)頁面上會(huì)顯示最近15分鐘內(nèi)的日志,如果最近15分鐘內(nèi)沒有任何日志上報(bào),您也可以點(diǎn)擊下圖紅框中的Today按鈕,展示今天的所有日志:
image.png

參考鏈接:
https://blog.csdn.net/qq_39284787/article/details/78809538
https://blog.csdn.net/boling_cavalry/article/details/79836171
https://www.cnblogs.com/CloudMan6/p/7787870.html
https://blog.csdn.net/boling_cavalry/article/details/79950677

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。