CentOS7搭建ELK-6.2.4版本
ELK是ElasticSerach、Logstash、Kibana三款產品名稱的首字母集合,用於日誌的搜集和搜索,今天我們一起搭建和體驗基於ELK的日誌服務;
環境規劃
本次實戰需要兩臺電腦(或者vmware下的兩個虛擬機),操作系統都是CentOS7,它們的身份、配置、地址等信息如下:
hostname | IP地址 | 身份 | 配置 |
---|---|---|---|
elk-server | 192.168.119.132 | ELK服務端,接收日誌,提供日誌搜索服務 | 雙核,4G內存 |
nginx-server | 192.168.119.133 | Nginx服務端,產生的訪問日誌通過上報到Logstash | 雙核,2G內存 |
部署情況簡介
運行時的部署情況如下圖所示:
業務請求到達nginx-server機器上的Nginx;
Nginx響應請求,並在access.log文件中增加訪問記錄;
FileBeat搜集新增的日誌,通過LogStash的5044端口上傳日誌;
LogStash將日誌信息通過本機的9200端口傳入到ElasticSerach;
搜索日誌的用戶通過瀏覽器訪問Kibana,服務器端口是5601;
Kibana通過9200端口訪問ElasticSerach;
關於Nginx安裝
請在nginx-server機器上安裝nginx1.14.1或者更高版本,安裝的詳細步驟請參考《 CentOS7安裝Nginx1.10.1》;
接下來安裝ELK吧;
安裝JDK
首先請在elk-server機器上JDK8;
在ELK官方文檔中(https://www.elastic.co/guide/en/elasticsearch/hadoop/6.2/requirements.html),推薦的JDK版本為8,如下圖所示:
在CentOS7安裝JDK8的步驟請參考《CentOS7安裝JDK8》;
創建用戶
ElasticSerach要求以非root身份啟動,所以我們要創建一個用戶:
1. 創建用戶組:groupadd elasticsearch;
2. 創建用戶加入用戶組:useradd elasticsearch -g elasticsearch;
3. 設置ElasticSerach文件夾為用戶elasticsearch所有:chown -R elasticsearch.elasticsearch /usr/local/work/elasticsearch-6.2.4
系統設置
設置hostname,打開文件/etc/hostname,將內容改為elk-server
關閉防火墻(如果因為其他原因不能關閉防火墻,也請不要禁止80端口):systemctl stop firewalld.service
禁止防火墻自動啟動:systemctl disable firewalld.service
打開文件/etc/security/limits.conf,添加下面四行內容:
5. 打開文件/etc/sysctl.conf,添加下面一行內容:
6. 加載sysctl配置,執行命令:sysctl -p
7. 重啟電腦;
elk-server:安裝文件準備
請在ELK官網https://www.elastic.co/downloads下載以下文件:
1. elasticsearch-6.2.4.tar.gz;
2. logstash-6.2.4.tar.gz;
3. kibana-6.2.4-linux-x86_64.tar.gz;
上述三個文件,推薦在CentOS7的命令行輸入以下四個命令下載:
下載完畢後,創建目錄/usr/local/work,將剛剛下載的三個文件全部在這個目錄下解壓,得到以下三個文件夾:
1. /usr/local/work/elasticsearch-6.2.4
2. /usr/local/work/logstash-6.2.4
3. kibana-6.2.4-linux-x86_64
啟動ElasticSerach
切換到用戶elasticsearch:su elasticsearch;
進入目錄/usr/local/work/elasticsearch-6.2.4;
執行啟動命令:bin/elasticsearch -d,此時會在後臺啟動elasticsearch;
查看啟動日誌可執行命令:tail -f /usr/local/work/elasticsearch-6.2.4/logs/elasticsearch.log,大約五到十分鐘後啟動成功,提示如下:
5. 執行curl命令檢查服務是否正常響應:curl 127.0.0.1:9200,收到響應如下:
至此,ElasticSerach服務啟動成功,接下來是Logstash;
配置和啟動Logstash
在目錄/usr/local/work/logstash-6.2.4下創建文件default.conf,內容如下:
2. 後臺啟動Logstash服務:nohup bin/logstash -f default.conf --config.reload.automatic &;
3. 查看啟動日誌:tail -f logs/logstash-plain.log,啟動成功的信息如下:
Kibana
打開Kibana的配置文件/usr/local/work/kibana-6.2.4-linux-x86_64/config/kibana.yml,找到下面這行:
改成如下內容:
這樣其他電腦就能用瀏覽器訪問Kibana的服務了;
2. 進入Kibana的目錄:/usr/local/work/kibana-6.2.4-linux-x86_64
3. 執行啟動命令:nohup bin/kibana &
4. 查看啟動日誌:tail -f nohup.out
5. 以下信息表示啟動成功:
6. 在瀏覽器訪問http://192.168.119.132:5601,看到如下頁面:
至此,ELK服務啟動成功,接下來我們將業務日誌上報上來,需要操作另一臺電腦:nginx-server;
防火墻
首先,請關閉nginx-server的防火墻:
安裝Nginx
在nginx-server上安裝並啟動nginx服務,可以參考《 CentOS7安裝Nginx1.10.1》;
FileBeat
在nginx-server電腦創建目錄/usr/local/work
在/usr/local/work目錄下執行以下命令,下載FileBeat安裝包:
3. 解壓:tar -zxvf filebeat-6.2.4-linux-x86_64.tar.gz
4. 打開文件/usr/local/work/filebeat-6.2.4-linux-x86_64/filebeat.yml,找到如下圖的位置:
5. 首先,將上圖綠框中的enabled: false改為enabled: true;
6. 其次,將上圖紅框中的- /var/log/*.log改為- /usr/local/nginx/logs/*.log;
7. 繼續修改filebeat.yml文件,找到下圖兩個紅框中的內容,在每行的左側添加”#”,將這兩行內容註釋掉:
8. 繼續修改filebeat.yml文件,找到下圖中的內容:
首先,將上圖紅框中的”#”去掉;
其次,將上圖綠框那一行的左側”#”去掉;
最後,將上圖綠框中的內容從[“localhost:5044”]改為[“192.168.119.132:5044”](連接ElasticSerach);
改好的內容如下圖;
9. 啟動FileBeat:./filebeat -e -c filebeat.yml -d “publish”
至此,FileBeat也啟動成功了,接下來驗證服務;
創建Index Patterns
通過瀏覽器多訪問幾次nginx服務,這樣能多制造一些訪問日誌,訪問地址:http://192.168.119.133
訪問Kibana:http://192.168.119.132:5601,點擊左上角的Discover,如下圖紅框,可以看到訪問日誌已經被ELK搜集了:
如下圖,輸入logstash-*,點擊”Next step”:
如下圖,選擇Time Filter,再點擊“Create index pattern”:
頁面提示創建Index Patterns成功:
點擊左上角的”Discover”按鈕,即可看到最新的日誌信息,如下圖:
至此,我們已經可以在ELK上查到Nginx的訪問日誌了,接下來將Tomcat的日誌也接進來;
安裝和啟動Tomcat
確保nginx-server電腦上已經安裝了JDK8;
在/usr/local/work/目錄下執行以下命令,下載Tomcat:
3. 解壓縮:unzip apache-tomcat-7.0.85.zip
4. 給腳本賦予可執行權限:chmod a+x /usr/local/work/apache-tomcat-7.0.85/bin/*.sh
5. 啟動:/usr/local/work/apache-tomcat-7.0.85/bin/startup.sh
6. 瀏覽器訪問:http://192.168.119.133:8080,看到啟動成功,如下圖:
7. 訪問Tomcat提供的example服務的子頁面:http://192.168.119.133:8080/examples/servlets/servlet/RequestInfoExample,如下圖:
至此,Tomcat已經啟動成功,接下來將Tomcat的訪問日誌接入ELK;
Tomcat訪問日誌接入ELK
打開FileBeat的配置文件/usr/local/work/filebeat-6.2.4-linux-x86_64/filebeat.yml,在”filebeat.prospectors:”下面新增一個配置節點,內容如下:
配置好的filebeat.yml有兩個type節點了,如下圖:
2. 停掉filebeat服務,ps -ef |grep filebeat, kill -9 pid
再用./filebeat -e -c filebeat.yml -d “publish”命令啟動filebeat服務;
3. 此時在Kibana頁面已經可以搜索到Tomcat的訪問日誌,以“RequestInfoExample”作為關鍵詞搜索也能搜到對應的訪問日誌:
至此,ELK-6.2.4版本的服務和日誌上報的搭建已經完成,後續如果還有業務服務器要上報日誌,只需按照上述步驟安裝和配置FileBeat即可;
版權聲明:歡迎轉載,請註明出處,謝謝。 https://blog.csdn.net/boling_cavalry/article/details/79836171
CentOS7搭建ELK-6.2.4版本