搭建 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.136 | filebeat es kafka zookeeper kibana | zookeeper:2181、2888、3888 kafka:9092 es:9200、9300、9100 kibana:5601 |
| 192.168.159.137 | es kafka zookeeper logstash | zookeeper:2181、2888、3888 kafka:9092 es:9200、9300、9100 kibana:5601 |
| 192.168.159.138 | es kafka zookeeper nodejs | zookeeper:2181、2888、3888 kafka:9092 es:9200、9300、9100 kibana:5601 |
2. 技術選型
| jdk | 1.8.0_301 |
| zookeeper | 3.4.10 |
| kafka | 2.12-2.1.1 |
| filebeat | 6.7.2 |
| logstash | 6.7.2 |
| elasticsearch | 6.7.2 |
| kibana | 6.7.2 |
| filebeat | 6.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 - app4. 軟件下載
zookeeper-3.4.10.tar.gz
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gzkafka_2.12-2.1.1.tgz
wget https://archive.apache.org/dist/kafka/2.1.1/kafka_2.12-2.1.1.tgzfilebeat-6.7.2-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.7.2-linux-x86_64.tar.gzlogstash-6.7.2.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.7.2.tar.gzelasticsearch-6.7.2.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.2.tar.gzkibana-6.7.2-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.7.2-linux-x86_64.tar.gz5. 操作聲明
默認使用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.gz2.3. 設置環境變量
- 切換到root用戶執行命令
- 編輯文件
- 修改環境變量
- 刷新環境變量
- 切換app用戶
- 驗證版本
------------------------------以下均使用app用戶操作------------------------------
三、zk集群
136節點、137節點、138節點同時操作
3.1. 上傳
上傳Zookeeper安裝包到/app目錄
3.2. 解壓
cd /app tar -zxvf zookeeper-3.4.10.tar.gz3.3. 創建目錄
- 創建data及logs目錄
3.4. 編輯配置
cd /app/zookeeper-3.4.10/conf cp zoo_sample.cfg zoo.cfg vi zoo.cfg3.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:38883.6. myid
- 第一臺服務器中添加myid文件
- 第二臺服務器中添加myid文件
- 第三臺服務器中添加myid文件
3.8. 關閉防火墻
systemctl stop firewalld3.9. 啟動zk
3個節點依次啟動
cd /app/zookeeper-3.4.10/ bin/zkServer.sh start3.10. 監控狀態
bin/zkServer.sh statuszookeeper啟動成功圖片(圖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.tgz4.3. 數據目錄
- 進入到kafka安裝目錄下,創建data文件夾
4.4. 修改kafka的配置文件
vim config/server.properties- 136節點
- 137節點
- 138節點
4.5. 依次啟動kafka
- 136/137/138節點依次啟動
五、 驗證集群
驗證集群是否安裝成功
5.1. 創建topic
在其中一個節點上創建一個topic:
- 這里演示采用136節點,創建一個topic:
5.2. 啟動生產者
- 在其中一個節點上啟動kafka生產者
這里演示采用136節點:
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節點:
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.gz6.3. 修改配置
- 修改filebeat.yml配置文件如下
- 修改path路徑
- 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.gz7.3. 新建配置
- 新建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
查看進程是否啟動成功
八、es集群
8.1. 上傳
上傳到/app目錄
8.2. 解壓
cd /app tar -zxvf elasticsearch-6.7.2.tar.gz8.3. 編輯配置
vim /app/elasticsearch-6.7.2/config/elasticsearch.yml- 修改配置文件config/elasticsearch.yml
- 136節點
- 137節點
- 138節點
8.4. 修改系統參數
3個節點同時操作,切換root用戶修改系統參數,執行如下命令
su - root- 第一處
- 第二處
8.5. 啟動es
3給節點依次啟動es
su - app cd /app/elasticsearch-6.7.2 bin/elasticsearch -d8.6. 監控日志
tail -f logs/es-application.log8.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/
- 下載
9.2. 解壓
tar -xvf node-v16.13.1-linux-x64.tar.xz9.3. 重命名
mv node-v16.13.1-linux-x64 nodejs9.4. 創建軟連接
ln -s /app/nodejs/bin/node /usr/bin/nodeln -s /app/nodejs/bin/npm /usr/bin/npm9.5. 驗證
驗證node.js是否安裝成功
node -v9.6. cnpm鏡像
- 使用cnpm操作
9.7. cnpm軟連接
ln -s /app/nodejs/bin/cnpm /usr/bin/cnpm十、安裝es-head插件
10.1. 下載插件
10.2. 解壓
unzip elasticsearch-head-master.zip10.3. 安裝依賴
cd elasticsearch-head-master cnpm install10.4. 配置
- 現在head插件還無法連接到es,需要修改以下配置文件
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.gz11.2. 修改配置
- 修改config/kibana.yml配置文件
末尾添加如下配置:
server.host為當前機器ip
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
- 創建消費組
- 137節點:
- 138節點:
- 測試
- 1.往136節點/app/test.log文件寫入一行數字,之后查看es中是否可以查詢到
- 2.es查詢到了
- 3.kibana也成功抓取到了
11.5. 防火墻配置
- 136/137/138節點:
總結
以上是生活随笔為你收集整理的搭建 ELK 集群 kafka filebeat kibana logstash zookeeper elasticsearch的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: elasticsearch-7.15.2
- 下一篇: layui 表单动态添加、删除input