天天看點

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台

個人環境

(1)Centos 7.0

(2)ELK-5.2.0-linux-x64

(3)filebeat-6.2.3-linux-x86

(4) jdk-8u141-linux-x64

(5)kafka_2.11-2.2.1

注:ELK一定要用同一個版本,不同版本之間會有各種各樣的坑。其他軟體可以使用不同版本。在這裡,我分享了ELK的版本,其他的大家用自己的也行。這裡給你們分享一個時空穿梭器: https:// download.csdn.net/downl oad/D_Janrry/12409286

拓撲圖

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台

架構解讀: (整個架構從左到右,總共分為5層)

第一層、資料采集層

最左邊的是業務伺服器叢集,上面安裝了filebeat做日志采集,同時把采集的日志分别發送給兩個logstash服務。

第二層、資料處理層,資料緩存層

logstash服務把接受到的日志經過格式處理,轉存到本地的kafka + zookeeper叢集中。

第三層、資料轉發層

這個單獨的Logstash節點會實時去kafka+zookeeper叢集拉資料,轉發至ES叢集上。

第四層、資料持久化存儲

ES叢集會把收到的資料,寫磁盤,建索引庫。

第五層、資料檢索,資料展示

ES Master + Kibana 主要協調ES叢集,處理資料檢索請求,資料展示。

環境初始化

1.節點規劃

因為虛拟機有限,我就隻能在一台機器上部署所有軟體了。當然,兩台、三台、四台、五台都可以。

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台
2.配置主機名
hostnamectl set-hostname bigdata1
su -l
....
           
3 .處理防火牆
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
           
4.同步時鐘源
yum install ntpdate ntp -y
ntpdate cn.pool.ntp.org
hwclock --systohc
           
5.安裝常用軟體
yum install net-tools bash-completion wget vim  -y
           
6.JDK安裝
安裝過于簡單,咱們就跳過去了,相信大家都會

以上步驟三個節點都需要完成。

ELK安裝

1.ES安裝

其實本實驗最難安裝的就是es,因為他要放加入一個head插件,Elasticsearch5.x版本以後,head插件已經是一個獨立的Web App了,是以不需要和Elasticsearch進行內建。是以版本老的可能安裝時候有點費勁。

我有發表過一篇文章關于安裝目前最新的es-7.6.2版本以及插件的安裝,坑我已經填平了。時空穿梭器: https:// blog.csdn.net/D_Janrry/ article/details/105461236

但是,我介意大家不要安裝最新的,最新的确實很牛*,但是坑太多,最後和logstash相容的時候,顯示擷取不到es的鏡像,無法相容。

6.6.2版本也是無法相容。

6.6.1版本可以相容,ELK可以實作。但是,最後進行傳送日志的時候,它的logstash不支援打開多個.conf檔案。

看到這裡,各位能想象到我一次次崩潰的心情嗎?反正很煩很煩,坑賊多。是以,就放棄了。如果要做,就用5.2.0版本吧。對照着7.6.2就可以安裝好,祝各位好運。

2.Logstash安裝

Logstash事件處理有三個階段: inputs -→filters→outputs。是一個接收, 處理,轉發日志的工具。

支援系統日志,webserver日志,錯誤日志,應用日志,總之包括所有可以抛出來的日志類型。

解壓安裝就好了,其實可以不做修改。這裡我是修改了。接着往下看

[[email protected] logstash]# pwd
/data/program/software/logstash
[[email protected] logstash]# mkdir conf.d   //配置檔案的目錄
[[email protected] config]# pwd
/data/program/software/logstash/config
[[email protected] config]# vim logstash.yml
           
kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台
3.Kibana安裝

安裝,省略,因為安裝大家都會對吧,過于簡單重複,咱們就不細講了

安裝好後,修改配置檔案

[[email protected] config]# pwd
/data/program/software/kibana/config
[[email protected] config]# vim kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.239.7:9200"
kibana.index: ".kibana"
           

使用浏覽器打開 http://192.168.239.7:5601

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台

證明安裝成功了。

Filebeat安裝

filebeat.prospectors:      //檔案探測器
- type: log        //探測類型,日志檔案
 enabled: false      //這裡一定要改成false,不然日志發送不出去
paths:            //路徑
    - /var/log/*.log     //注意,通配符*的存在使得相同目錄結構的工程日志都會被收集到
           

如圖1所示:

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台

這裡預設對接的是es,需修改為logstash。// 意思就是日志收集到後,交給了logstash。

注意:以上服務全部安裝在bigdata1上,但是,es、kafka+zookeeper叢集是要安裝在三個節點上的。

kafka+zookeeper安裝

1.zookeeper配置
我們知道kafak叢集依賴zookeeper。其實在kafka程式包中已經包含了zookeeper。鑒于不同版本之間的問題,建議使用kafka的内嵌的zookeeper.

為什麼呢?因為我又踩坑了,但是這個是對于電腦而言的,我的電腦另外安裝zookeeper,最後在消費者那裡接收不到生産者的消息。是以我就用了kafka的内嵌的zookeeper.

其配置如下:

[[email protected] config]# pwd
/data/program/software/kafka/config
[[email protected] config]# vim zookeeper.properties
           
kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台

三個節點相同的操作。

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台
注:如果你是外部安裝了zookeeper出現我上述說的問題才來在用kafka内嵌的zookeeper,一定要把之前的zookeeper關閉。
2.kafka配置
[[email protected] config]# pwd
/data/program/software/kafka/config
[[email protected] config]# vim server.properties
broker.id=1
listeners=PLAINTEXT://bigdata1:9092
log.dirs=/var/kafka
zookeeper.connect=bigdata1:2181,bigdata2:2181,bigdata3:2181
           
kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台

将配置檔案利用scp技術傳送給另外兩個節點,隻需要修改broker.id的值為2、3,因為bigdata2和bigdata3上的kafka應用是直接複制過來的,是以需要将logs目錄下的内容清空。

[[email protected] kafka]# pwd
/data/program/software/kafka
[[email protected] kafka]# ls
bin  config  libs  LICENSE  logs  NOTICE  site-docs
[[email protected] kafka]# cd logs
[[email protected] logs]# rm -rf ./*
           

到此,服務部署就全部完成了。接下來,實作各個服務之間的協同工作。

日志收集分析

如果前面的流程圖大家還一頭霧水,那我簡單的再說一下,工作流程:

  • filebeat的配置檔案中寫了你要分析哪個目錄下的日志,那麼filebeat工作開始後,就會去對應目錄收集日志。收集到以後,交給logstash,這就是前面設定它的流向的原因。如圖1所示
  • logstash的conf.d下配置一個用于接收filebeat日志消息的檔案,并将日志發送到kafka+zookeeper叢集(也就是消息隊列),如圖2所示。kafka+zookeeper叢集接收到以後,再配置一個從kafka+zookeeper叢集轉發到es叢集的檔案,如圖3所示。
  • es叢集接收到以後,再發送到kibana。最終在web界面提現出來,如圖4、圖5所示。
1.部署logstash+kafka+zookeeper
[[email protected] conf.d]# vim filebeat_to_logstash.conf
input {
        beat {
           port => 5044
        }
}
output{
        kafka{
           bootstrap_servers => "192.168.239.8:9092,192.168.239.9:9092"
           topic_id => "ecplogs"
        }
}
           

如圖所示:

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台
[[email protected] conf.d]# vim logstash_to_elasticsearch.conf
input {
         kafka{
           bootstrap_servers => "192.168.239.8:9092,192.168.239.9:9092"
           topic_id => "ecplogs"
        }
}
output {
        elasticsearch {
           hosts => ["192.168.239.8:9200","192.168.239.9:9200"]
           index => "ecp-log-%{+YYYY.MM.dd}"
        }
}
           

如圖所示:

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台
2.各環節服務啟動與資料追蹤

啟動所有對應軟體,值得提醒的是:filebeat啟動時,需要安裝一個軟體:

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台

(1)啟動zookeeper+kafka

略。。。

(2)啟動logstash接收日志

略。。。就是filebeat_to_logstash.conf檔案

(3)在kafka終端上進行日志消費測試

[[email protected] bin]# /data/program/software/kafka/bin/kafka-console-consumer.sh  --bootstrap-server 192.168.239.8:9092 --topic ecplogs --from-beginning  
//這裡的ecologs就是logstash檔案中的 topic_id 的值,一定要對應上
           

日志如圖所示:

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台

是以,在最後kibana上的日志内容要和此處的一緻。

(4)打開logstash轉發

略。。。就是 logstash_to_elasticsearch.conf 檔案

(5)es上測試結果

如圖所示:

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台
kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台

(6)将資料呈現在kibana上

kafka reassign 限速_建構ELK+Filebeat+kafka+zookeeper大資料日志分析平台

可以看到這裡的收集的日志和kafka上收集到的一緻,證明日志收內建功,到此,本實戰項目結束。祝各位好運!

作者:Janrry丶龍龍

原文連結: https:// blog.csdn.net/D_Janrry/ article/details/106061610