日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

搭建 ELK 集群 kafka filebeat kibana logstash zookeeper elasticsearch

發布時間:2024/9/27 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搭建 ELK 集群 kafka filebeat kibana logstash zookeeper elasticsearch 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


文章目錄

          • 一、前置準備
            • 1. 部署總覽
            • 2. 技術選型
            • 3. 全局配置
            • 4. 軟件下載
            • 5. 操作聲明
          • 二、jdk安裝
            • 2.1. 上傳
            • 2.2. 解壓
            • 2.3. 設置環境變量
          • 三、zk集群
            • 3.1. 上傳
            • 3.2. 解壓
            • 3.3. 創建目錄
            • 3.4. 編輯配置
            • 3.5. 添加配置
            • 3.6. myid
            • 3.8. 關閉防火墻
            • 3.9. 啟動zk
            • 3.10. 監控狀態
            • 3.11. 效果圖
          • 四、kafka集群
            • 4.1. 上傳
            • 4.2. 解壓
            • 4.3. 數據目錄
            • 4.4. 修改kafka的配置文件
            • 4.5. 依次啟動kafka
          • 五、 驗證集群
            • 5.1. 創建topic
            • 5.2. 啟動生產者
            • 5.3. 啟動消費者
            • 5.4. 生產消息
            • 5.5. 消費消息
          • 六、filebeat
            • 6.1.上傳
            • 6.2. 解壓
            • 6.3. 修改配置
            • 6.5. 啟動filebeat
          • 七、logstash
            • 7.1. 上傳
            • 7.2. 解壓
            • 7.3. 新建配置
            • 7.4. 啟動logstash
            • 7.5. 參數說明
          • 八、es集群
            • 8.1. 上傳
            • 8.2. 解壓
            • 8.3. 編輯配置
            • 8.4. 修改系統參數
            • 8.5. 啟動es
            • 8.6. 監控日志
            • 8.7. 效果圖
          • 九、node.js+鏡像
            • 9.1. 下載node.js
            • 9.2. 解壓
            • 9.3. 重命名
            • 9.4. 創建軟連接
            • 9.5. 驗證
            • 9.6. cnpm鏡像
            • 9.7. cnpm軟連接
          • 十、安裝es-head插件
            • 10.1. 下載插件
            • 10.2. 解壓
            • 10.3. 安裝依賴
            • 10.4. 配置
            • 10.5. 啟動插件
          • 十一、安裝kibana
            • 11.1. 上傳到app目錄并解壓
            • 11.2. 修改配置
            • 11.3. 啟動kibana
            • 11.4. 驗證elk是否安裝成功
            • 11.5. 防火墻配置

一、前置準備
1. 部署總覽
服務器部署組件開放端口
192.168.159.136filebeat
es
kafka
zookeeper
kibana
zookeeper:2181、2888、3888
kafka:9092
es:9200、9300、9100
kibana:5601
192.168.159.137es
kafka
zookeeper
logstash
zookeeper:2181、2888、3888
kafka:9092
es:9200、9300、9100
kibana:5601
192.168.159.138es
kafka
zookeeper
nodejs
zookeeper:2181、2888、3888
kafka:9092
es:9200、9300、9100
kibana:5601
2. 技術選型
軟件版本
jdk1.8.0_301
zookeeper3.4.10
kafka2.12-2.1.1
filebeat6.7.2
logstash6.7.2
elasticsearch6.7.2
kibana6.7.2
filebeat6.7.2
3. 全局配置
# 136節點、137節點、138節點同時操作:# 1. 使用root用戶進行登錄 # 創建 /app目錄 mkdir /app 如果/app已經存在忽略次操作# 2. 創建用戶 useradd app passwd app# 密碼:Elk123456 # 如果用戶已經存在忽略次操作直接使用app用戶登錄即可 跳過3的第一個命令# 賦予權限: chown app.app /app -R# 調整家目錄: vim /etc/passwd# 切換app用戶 su - app

4. 軟件下載

zookeeper-3.4.10.tar.gz

wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

kafka_2.12-2.1.1.tgz

wget https://archive.apache.org/dist/kafka/2.1.1/kafka_2.12-2.1.1.tgz

filebeat-6.7.2-linux-x86_64.tar.gz

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

logstash-6.7.2.tar.gz

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.7.2.tar.gz

elasticsearch-6.7.2.tar.gz

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.2.tar.gz

kibana-6.7.2-linux-x86_64.tar.gz

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.7.2-linux-x86_64.tar.gz
5. 操作聲明

默認使用app用戶,如果使用root用戶操作會進行說明。

二、jdk安裝

136節點、137節點、138節點同時操作

2.1. 上傳

上傳jdk壓縮包jdk-8u301-linux-x64.tar.gz到/app 目錄下

2.2. 解壓
cd /app tar -zxvf jdk-8u301-linux-x64.tar.gz
2.3. 設置環境變量
  • 切換到root用戶執行命令
su - root
  • 編輯文件
vi /etc/profile
  • 修改環境變量
export JAVA_HOME=/app/jdk1.8.0_301 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
  • 刷新環境變量
source /etc/profile
  • 切換app用戶
su - app
  • 驗證版本
java -version

------------------------------以下均使用app用戶操作------------------------------

三、zk集群

136節點、137節點、138節點同時操作

3.1. 上傳

上傳Zookeeper安裝包到/app目錄

3.2. 解壓
cd /app tar -zxvf zookeeper-3.4.10.tar.gz
3.3. 創建目錄
  • 創建data及logs目錄
cd /app/zookeeper-3.4.10 mkdir dataDir mkdir dataLogDir
3.4. 編輯配置
cd /app/zookeeper-3.4.10/conf cp zoo_sample.cfg zoo.cfg vi zoo.cfg
3.5. 添加配置

修改內容為:(此處三臺服務器配置相同),建議同時操作

tickTime=2000 initLimit=10 syncLimit=5 dataDir=/app/zookeeper-3.4.10/data dataLogDir=/app/zookeeper-3.4.10/data clientPort=2181 server.1=192.168.159.136:2888:3888 server.2=192.168.159.137:2888:3888 server.3=192.168.159.138:2888:3888
3.6. myid
  • 第一臺服務器中添加myid文件
echo "1" > /app/zookeeper-3.4.10/dataDir/ myid
  • 第二臺服務器中添加myid文件
echo "2" > /app/zookeeper-3.4.10/dataDir/myid
  • 第三臺服務器中添加myid文件
echo "3" > /app/zookeeper-3.4.10/dataDir/myid
3.8. 關閉防火墻
systemctl stop firewalld
3.9. 啟動zk

3個節點依次啟動

cd /app/zookeeper-3.4.10/ bin/zkServer.sh start
3.10. 監控狀態
bin/zkServer.sh status

zookeeper啟動成功圖片(圖3.1)如下:無報錯,Mode為leader或者follower都可以

3.11. 效果圖



四、kafka集群
4.1. 上傳

上傳kafka安裝包kafka_2.12-2.1.1.tgz到/app 目錄下`

4.2. 解壓
tar -zxvf kafka_2.12-2.1.1.tgz
4.3. 數據目錄
  • 進入到kafka安裝目錄下,創建data文件夾
cd kafka_2.12-2.1.1/ mkdir data
4.4. 修改kafka的配置文件
vim config/server.properties
  • 136節點
#broker的id broker.id=1 #綁定服務器ip host.name=192.168.159.136 listeners=PLAINTEXT://192.168.159.136:9092 advertised.listeners=PLAINTEXT://192.168.159.136:9092 num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 #保存數據的目錄路徑 log.dirs=/app/kafka_2.12-2.1.1/data/kafka-logs num.partitions=1 num.recovery.threads.per.data.dir=1 offsets.topic.replication.factor=1 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 #設置日志留存策略 log.retention.hours=168 log.retention.bytes=10737420000 #日志段大小 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 #配置zookeeper,ip表示zookeeper集群中各個節點ip zookeeper.connect=192.168.159.136:2181,192.168.159.137:2181,192.168.159.138:2181 zookeeper.connection.timeout.ms=6000 message.max.byte=52428880 group.initial.rebalance.delay.ms=0 #設置刪除topic auto.create.topics.enable = false delete.topic.enable=truelog.cleanup.policy=delete log.segment.delete.delay.ms=0
  • 137節點
#broker的id broker.id=2 #綁定服務器ip host.name=192.168.159.137 listeners=PLAINTEXT://192.168.159.137:9092 advertised.listeners=PLAINTEXT://192.168.159.137:9092 num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 #保存數據的目錄路徑 log.dirs=/app/kafka_2.12-2.1.1/data/kafka-logs num.partitions=1 num.recovery.threads.per.data.dir=1 offsets.topic.replication.factor=1 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 #設置日志留存策略 log.retention.hours=168 log.retention.bytes=10737420000 #日志段大小 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 #配置zookeeper,ip表示zookeeper集群中各個節點ip zookeeper.connect=192.168.159.136:2181,192.168.159.137:2181,192.168.159.138:2181 zookeeper.connection.timeout.ms=6000 message.max.byte=52428880 group.initial.rebalance.delay.ms=0 #設置刪除topic auto.create.topics.enable = false delete.topic.enable=truelog.cleanup.policy=delete log.segment.delete.delay.ms=0
  • 138節點
#broker的id broker.id=3 #綁定服務器ip host.name=192.168.159.138 listeners=PLAINTEXT://192.168.159.138:9092 advertised.listeners=PLAINTEXT://192.168.159.138:9092 num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 #保存數據的目錄路徑 log.dirs=/app/kafka_2.12-2.1.1/data/kafka-logs num.partitions=1 num.recovery.threads.per.data.dir=1 offsets.topic.replication.factor=1 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 #設置日志留存策略 log.retention.hours=168 log.retention.bytes=10737420000 #日志段大小 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 #配置zookeeper,ip表示zookeeper集群中各個節點ip zookeeper.connect=192.168.159.136:2181,192.168.159.137:2181,192.168.159.138:2181 zookeeper.connection.timeout.ms=6000 message.max.byte=52428880 group.initial.rebalance.delay.ms=0 #設置刪除topic auto.create.topics.enable = false delete.topic.enable=truelog.cleanup.policy=delete log.segment.delete.delay.ms=0
4.5. 依次啟動kafka
  • 136/137/138節點依次啟動
cd /app/kafka_2.12-2.1.1/ nohup bin/kafka-server-start.sh config/server.properties &



五、 驗證集群

驗證集群是否安裝成功

5.1. 創建topic

在其中一個節點上創建一個topic:

  • 這里演示采用136節點,創建一個topic:
cd /app/kafka_2.12-2.1.1/ bin/kafka-topics.sh --zookeeper 192.168.159.136:2181,192.168.159.137:2181,192.168.159.138:2181 --create --topic test2 --partitions 3 --replication-factor 1

5.2. 啟動生產者
  • 在其中一個節點上啟動kafka生產者
    這里演示采用136節點:
cd /app/kafka_2.12-2.1.1/ bin/kafka-console-producer.sh --broker-list 192.168.159.136:9092 --topic test2

5.3. 啟動消費者
  • 在集群其他的節點上啟動消費者,這里演示采用137和138節點:

137節點:

cd /app/kafka_2.12-2.1.1/ bin/kafka-console-consumer.sh --bootstrap-server 192.168.159.137:9092 --topic test2


138節點:

cd /app/kafka_2.12-2.1.1/ bin/kafka-console-consumer.sh --bootstrap-server 192.168.159.138:9092 --topic test2

5.4. 生產消息

Kafka生產者發送一條消息,看能否在消費端能夠接收到消息,如果都能接收到消息表示kafka集群可用。
這里演示場景:136節點 作為生產者發送消息 137節點和138節點作為消費者消費消息

5.5. 消費消息

137節點作為消費者消費消息

138節點作為消費者消費消息

從以上截圖中,可以看出136節點作為消費者發送消息“send msg 123456”,137節點和138節點作為消費者可以正常接收消息。

六、filebeat

登錄136節點,使用app用戶操作

6.1.上傳
  • filebeat-6.7.2-linux-x86_64.tar.gz文件,并上傳app
6.2. 解壓
cd /app tar -zxvf filebeat-6.7.2-linux-x86_64.tar.gz
6.3. 修改配置
  • 修改filebeat.yml配置文件如下
vim /app/filebeat-6.7.2-linux-x86_64/filebeat.yml
  • 修改path路徑
/app/test.log

  • Elasticsearch output這里的配置需要修改
    修改前:

    修改后:
6.5. 啟動filebeat
nohup /app/filebeat-6.7.2-linux-x86_64/filebeat -e -c /app/filebeat-6.7.2-linux-x86_64/filebeat.yml &

七、logstash
7.1. 上傳

下載logstash-6.7.2.tar.gz文件,并上傳app目錄

7.2. 解壓
tar -zxvf logstash-6.7.2.tar.gz
7.3. 新建配置
  • 新建config目錄下配置文件kafkaInput_esOutPut.conf
vim /app/logstash-6.7.2/config/kafkaInput_esOutPut.conf

內容如下:

input {kafka {bootstrap_servers => "192.168.159.136:9092,192.168.159.137:9092,192.168.159.138:9092"group_id => ["elk"]topics => ["app-log"]auto_offset_reset => "latest"consumer_threads => 5decorate_events => true} } output {stdout {codec => rubydebug}elasticsearch {hosts => ["192.168.159.136:9200,192.168.159.137:9200,192.168.159.138:9200"]index => "kafka-logs-%{+YYYY-MM-dd}"flush_size => 20000idle_flush_time => 10sniffing => truetemplate_overwrite => true } }
7.4. 啟動logstash
cd /app/logstash-6.7.2 nohup bin/logstash -f /config/kafkaInput_esOutPut.conf --config.reload.automatic &
7.5. 參數說明

--config.reload.automatic 選項的意思是啟用自動配置加載,以至于每次修改完配置文件以后無需停止然后重啟Logstash
查看進程是否啟動成功

ps -ps |grep logstash
八、es集群
8.1. 上傳

上傳到/app目錄

8.2. 解壓
cd /app tar -zxvf elasticsearch-6.7.2.tar.gz
8.3. 編輯配置
vim /app/elasticsearch-6.7.2/config/elasticsearch.yml
  • 修改配置文件config/elasticsearch.yml
  • 136節點
# ======================== Elasticsearch Configuration ========================= cluster.name: es-application node.name: node-1 path.data: /app/elasticsearch-6.7.2/data path.logs: /app/elasticsearch-6.7.2/logs network.host: 0.0.0.0 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.159.136:9300", "192.168.159.137:9300","192.168.159.138:9300"] discovery.zen.minimum_master_nodes: 2 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE

  • 137節點
# ======================== Elasticsearch Configuration ========================= cluster.name: es-application node.name: node-2 path.data: /app/elasticsearch-6.7.2/data path.logs: /app/elasticsearch-6.7.2/logs network.host: 0.0.0.0 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.159.136:9300", "192.168.159.137:9300","192.168.159.138:9300"] discovery.zen.minimum_master_nodes: 2 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE

  • 138節點
# ======================== Elasticsearch Configuration ========================= cluster.name: es-application node.name: node-3 path.data: /app/elasticsearch-6.7.2/data path.logs: /app/elasticsearch-6.7.2/logs network.host: 0.0.0.0 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.159.136:9300", "192.168.159.137:9300","192.168.159.138:9300"] discovery.zen.minimum_master_nodes: 2 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE

8.4. 修改系統參數

3個節點同時操作,切換root用戶修改系統參數,執行如下命令

su - root
  • 第一處
echo "vm.max_map_count=655360" >> /etc/sysctl.conf && /sbin/sysctl -p

  • 第二處
vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096

8.5. 啟動es

3給節點依次啟動es

su - app cd /app/elasticsearch-6.7.2 bin/elasticsearch -d
8.6. 監控日志
tail -f logs/es-application.log
8.7. 效果圖

http://192.168.159.136:9200/
http://192.168.159.137:9200/
http://192.168.159.138:9200/



http://192.168.159.136:9200/_cat/health

九、node.js+鏡像

登錄138節點,使用root用戶操作,官網下載node.js

9.1. 下載node.js

https://nodejs.org/en/download/

  • 下載
wget https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x64.tar.xz

9.2. 解壓
tar -xvf node-v16.13.1-linux-x64.tar.xz
9.3. 重命名
mv node-v16.13.1-linux-x64 nodejs
9.4. 創建軟連接
ln -s /app/nodejs/bin/node /usr/bin/nodeln -s /app/nodejs/bin/npm /usr/bin/npm
9.5. 驗證

驗證node.js是否安裝成功

node -v

9.6. cnpm鏡像
  • 使用cnpm操作
npm install -g cnpm --register=https://register.npm.taobao.org
9.7. cnpm軟連接
ln -s /app/nodejs/bin/cnpm /usr/bin/cnpm
十、安裝es-head插件
10.1. 下載插件
10.2. 解壓
unzip elasticsearch-head-master.zip
10.3. 安裝依賴
cd elasticsearch-head-master cnpm install
10.4. 配置
  • 現在head插件還無法連接到es,需要修改以下配置文件
vim /app/elasticsearch-head-master/Gruntfile.js

10.5. 啟動插件
cd /app/elasticsearch-head-master目錄下 npm run start


安裝完成,輸入對應地址顯示如下結果:

http://192.168.159.138:9100/
http://192.168.159.138:9200/

十一、安裝kibana

登錄136節點,使用app用戶操作

11.1. 上傳到app目錄并解壓
tar -zxvf kibana-6.7.2-linux-x86_64.tar.gz
11.2. 修改配置
  • 修改config/kibana.yml配置文件
cd /appvim kibana-6.7.2-linux-x86_64/config/kibana.yml

末尾添加如下配置:
server.host為當前機器ip

server.port: 5601 server.host: "192.168.159.136" elasticsearch.hosts: ["http://192.168.159.136:9200","http://192.168.159.137:9200","http://192.168.159.138:9200"]

11.3. 啟動kibana

切換到bin目錄啟動nohup ./kibana &

cd /app/kibana-6.7.2-linux-x86_64/ nohup bin/kibana &

http://192.168.159.136:5601/app/kibana

11.4. 驗證elk是否安裝成功

咱們在logstash的配置文件中配置的topic是app-log

  • 創建topic
cd /app/kafka_2.12-2.1.1/bin/ ./kafka-console-consumer.sh --bootstrap-server 192.168.159.138:9092 --topic app-log
  • 創建消費組
  • 137節點:
cd /app/kafka_2.12-2.1.1/bin/ ./kafka-console-consumer.sh --bootstrap-server 192.168.159.138:9092 --topic app-log --consumer-property group.id=elk

  • 138節點:
cd /app/kafka_2.12-2.1.1/bin/ ./kafka-console-consumer.sh --bootstrap-server 192.168.159.138:9092 --topic app-log --consumer-property group.id=elk

  • 測試
  • 1.往136節點/app/test.log文件寫入一行數字,之后查看es中是否可以查詢到
cd /app echo "123456789033333" >> test.log cat test.log

/app/kafka_2.12-2.1.1/bin/kafka-consumer-groups.sh --bootstrap-server 192.168.159.138:9092 --group elk --describe

  • 2.es查詢到了
  • 3.kibana也成功抓取到了
11.5. 防火墻配置
  • 136/137/138節點:
firewall-cmd --zone=public --add-port=2181/tcp --permanent firewall-cmd --zone=public --add-port=2888/tcp --permanent firewall-cmd --zone=public --add-port=3888/tcp --permanent firewall-cmd --zone=public --add-port=9092/tcp --permanent firewall-cmd --zone=public --add-port=9100/tcp --permanent firewall-cmd --zone=public --add-port=9200/tcp --permanent firewall-cmd --zone=public --add-port=9300/tcp --permanent firewall-cmd --zone=public --add-port=5601/tcp --permanent firewall-cmd --reload 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的搭建 ELK 集群 kafka filebeat kibana logstash zookeeper elasticsearch的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。