一、下載
從官網下載最新版本:https://www.elastic.co/cn/downloads/
當前最新版本為7.14.0,下載linux-x86_64版本:
elasticsearch-7.14.0-linux-x86_64.tar.gz
kibana-7.14.0-linux-x86_64.tar.gz
filebeat-7.14.0-linux-x86_64.tar.gz
logstash-7.14.0-linux-x86_64.tar.gz
將下載的安裝包上傳到服務器的指定位置
二、elasticsearch安裝部署
解壓es安裝包到/usr/local/文件夾下
sudo tar -zxvf elasticsearch-7.14.0-linux-x86_64.tar.gz /usr/local/
進入elasticsearch-7.14.0/config/文件夾,編輯elasticsearch.yml文件
需設置上圖7處地方。
es不能使用root用戶啟動,必須用其他用戶,並且給這個用戶賦予操作elasticsearch-7.14.0文件夾的權限
sudo chown -R dl:123456 /usr/local/elasticsearch-7.14.0/
啟動前需要先配置一些環境:
1、配置可打開的文件描述符的最大數
sudo vi /etc/security/limits.conf
添加:
* soft nofile 65536
* hard nofile 65536
並重新登錄dl用戶
2、配置文件包含限制一個進程可以擁有的VMA(虛擬內存區域)的數量
sudo vi /etc/sysctl.conf
在文件末尾添加
vm.max_map_count=655360
然后執行
sudo sysctl -p
使用dl用啟動es:
在/usr/local/elasticsearch-7.14.0/文件夾下執行
./bin/elasticsearch
瀏覽器打開http://192.168.2.129:9200/,如出現下圖,則說明啟動成功
ctrl+C即可停止es服務
當然也可以后台啟動
./bin/elasticsearch &
三、logstash安裝部署
解壓logstash到/usr/local/目錄下
sudo tar -zxvf logstash-7.14.0-linux-x86_64.tar.gz /usr/local/
進入logstash-7.14.0/config目錄下編輯logstash-sample.conf文件,當然也可以新建一個配置文件,這里以logstash-sample.conf為例
在input->beats->port默認是5044,后面部署的filebeat的日志都會發送到這里,所以filebeat里面的配置要和這里的保持一致
輸出到es里的配置增加了action, 配置了es的hosts,另外配置一個index,這里的索引不能使用大寫字母
運行logstash:
在logstash-7.14.0文件夾在執行
sudo ./bin/logstash -f ./config/logstash-sample.conf
注意:
- 需要在logstash運行的機器上防火牆開放5044端口
- Logstash啟動時依賴於es,因此es要先於logstash啟動
四、filebeat安裝部署
filebeat是一個輕量級的日志采集服務,可以將采集的日志發送到es或者logstash,這里測試時將filebeat部署在另外一台服務器上ip:192.168.2.173
解壓filebeat到指定位置
sudo tar -zxvf filebeat-7.14.0-linux-x86_64.tar.gz /usr/local/
進入filebeat-7.14.0-linux-x86_64文件夾,編輯filebeat.yml文件,這里只設置了輸入格式為log的路徑,同時把enable設置為true
這里的outputs設置,采用輸出到logstash后再輸入es的方式,因此將es output的配置注釋,將logstash的配置打開並配置logstash的hosts
運行filebeat:
在filebeat-7.14.0-linux-x86_64文件夾下執行
./filebeat -e -c ./filebeat.yml
注意:
filebeat運行時要訪問logstash,因此logstash要先於filebeat啟動
五、kibana安裝部署
將kibana安裝包解壓到/usr/local/目錄
sudo tar -zxvf kibana-7.14.0-linux-x86_64.tar.gz /usr/local/
進入kibana-7.14.0-linux-x86_64/config文件夾,編輯kibana.yml文件
簡單配置這4項
Kibana不能使用root用戶啟動,必須用其他用戶,並且給這個用戶賦予操作kibana-7.14.0-linux-x86_64文件夾的權限
sudo chown -R dl:123456 /usr/local/kibana-7.14.0-linux-x86_64/
啟動kibana:
在kibana-7.14.0-linux-x86_64文件夾下執行
./bin/kibana
防火牆開放5601端口,網頁訪問http://192.168.2.129:5601/
六、ELK+Filebeat實際使用
場景:
在2.129和2.173兩台機器上都部署filebeat,分別采集日志,發送到2.129機器上的logstash上,logstash可以做過濾或者分組,然后把日志數據發送給2.129機器上的es,最后由2.129機器上的kibana進行日志可視化展示。由於需要對129和137上的日志做區分,因此在filebeat的配置文件中分別設置日志的tags。
173的filebeat.yml文件
129的filebeat.yml文件
當然,可以在General里設置tags,也可以在inputs下面的每個type下設置fields,tags是對整個filebeat打標簽,filelds則可對具體每個type打標簽
Logstash對日志進行分組,不同的filebeat獲取的日志生成不同的索引
注意:
- 索引的命名不能以logs開頭,新版本會把logs開頭的自動作為Data Streams
在logstash的配置文件中根據tags屬於哪個filebeat,然后發往es的時候生成不同的index。
登錄kibana,找到Management->Stack Management->Index Management可以看到,配置的兩個索引elklog-129-2021.08.24和elklog-173-2021.08.24顯示在indices下
找到Management->Stack Management->Index patterns->Create index pattern,創建索引模板,Index pattern name輸入elklog-*,點擊下一步選擇過濾器,然后創建
找到Analytics->Discover,在左上角選擇elklog-*,即可顯示日志
或者在Observability->Stream頁面,輸入框輸入_index : elklog*,回車,即可以查看日志。
點擊Stream live按鈕即可查看實時日志
也可以根據日志關鍵字搜索,message : "Hello"
七、ELK+Filebeat+Kafka集群實際使用
場景:
在2.129、2.173和2.185三台機器上搭建Kafka集群,在2.129、2.173和2.185三台機器上都部署filebeat,分別采集日志,發送到kafka集群,由2.129機器上的logstash接收kafka消息做過濾或者分組,然后把日志數據發送給2.129機器上的es,最后由2.129機器上的kibana進行日志可視化展示。由於需要對129、137和185上的日志做區分,因此在filebeat的配置文件中分別設置日志的tags,參見第六大點。
關於kafka集群的搭建詳見我另一篇帖子:https://www.cnblogs.com/bigfaceWei/p/15393971.html
增加Kafka集群和第六點不一樣的地方在於filebeat和logstash的配置
filebeat.yml文件:
注釋掉Logstash Output,添加kafka的配置,意思是將采集的日志輸出到kafka集群
logstash-sample.conf文件:
logstash的input改成kafka集群,輸出做一下篩選和分組,發送到elasticsearch,最后由kibana進行可視化展示。