云计算上机实验二
實驗:ELK實時日志分析平臺環境搭建
- 1.ELK簡介
- 2. 實驗環境
- 3. ELK環境搭建
- (1) 環境布局
- (2) 軟件包下載
- (3) ElasticSearch部署:
- ① 解壓文件到上一步創建的/usr/local/elk目錄下
- ② 配置ES
- ③ 運行Elasticsearch
- 1) 前置操作
- 2) 啟動ES
- 直接修改
- (4) Kibana部署:
- ① 解壓文件到 /usr/local/elk
- ② 配置Kibana
- ③ 運行Kibana
- 1) 啟動Kibana
- 2) 查看kibana是否正確運行:
- 3) 驗證Kibana外網是否可訪問
- (5) Logstash部署:
- ① 切換至部署個人項目的服務器,解壓文件到/usr/local/elk
- ② 配置logstash管道
- ③ 啟動logstash
- (6) Beats部署
- ① 解壓文件到/usr/local/elk
- ② 配置并部署filebeat
- 1) 配置filebeat
- 2) 啟動filebeat
- ③ 配置并部署metricbeat
- 1) 配置metricbeat
- 2) 啟動metricbeat
- ④ 配置并部署packetbeat
- 1) 配置packetbeat
- 2) 啟動packetbeat
- 4. 使用Kibana
- (1) 訪問Kibana
- (2) 設置Index索引
- (3) 查看數據
- ① 切換索引查看接收到的數據
- ② 查看日志
- (4) 使用儀表盤
- ① 查看kibana提供的儀表盤加載是否成功
- ② 選擇適合的儀表盤進行查看
- 1) 使用metricbeat儀表盤
這一篇博文是在服務器上做的
虛擬機上的markdown格式下載
1.ELK簡介
(1) ELasticSearch:Elasticsearch是一個高度可伸縮的開源全文搜索和分析引擎。它允許用戶快速和接近實時地存儲、搜索和分析大量數據。
(2) Logstash:Logstash是一個開源的服務器端數據處理管道,可以同時從多個數據源獲取數據,并對其進行轉換、過濾、增強等,然后將其發送到其地方。
(3) Beats:Beats是用于單用途數據托運人的平臺,它們以輕量級代理的形式安裝,并將來自成百上千臺機器的數據發送到Logstash或Elasticsearch。包含:filebeat,metricbeat,packetbeat等。
(4) Kibana:Kibana是一個開源的分析和可視化平臺,設計用于和Elasticsearch一起工作,可以用來搜索,查看,并和存儲在Elasticsearch索引中的數據進行交互,輕松地執行高級數據分析,并且以各種圖標、表格和地圖的形式可視化數據。
2. 實驗環境
(1) 通過VMWare等虛擬機軟件搭建Ubuntu系統進行實驗
(2) JDK環境:請自行為Ubuntu安裝JDK(Server JRE),并配置環境變量(sudo apt install openjdk-8-jdk-headless)
3. ELK環境搭建
(1) 環境布局
演示布局如下圖所示:
在實際應用中,Beats和Logstash一般是部署在不同服務器上的。由于服務器資源有限,這里演示時將兩者部署在同一個服務器上。
(2) 軟件包下載
https://www.elastic.co/downloads/past-releases#elasticsearch
下載ElasticSearch、Logstash、Kibana、Beats(FileBeat、MetricBeat、PacketBeat等)
創建elk目錄
mkdir /usr/local/elk(3) ElasticSearch部署:
① 解壓文件到上一步創建的/usr/local/elk目錄下
tar -zxvf elasticsearch-6.7.1.tar.gz -C /usr/local/elk/
Elasticsearch目錄結構:
| Bin | 二進制腳本,例如ES啟動腳本elasticsearch |
| Lib | ES依賴包目錄,包含ES用到的jar包 |
| Logs | 日志文件目錄 |
| Config | 配置文件目錄,elasticsearch.yml為ES的配置文件 |
| Modules | ES模塊目錄 |
| Plugins | 一些常用插件 |
| Data | ES索引等數據默認存放在根目錄下的data文件夾里,初次運行ES后便會自動生成,也可在config/elasticsearch.yml更改數據存放路徑 |
② 配置ES
使用vim打開elasticsearch.yml(關于vim的基本使用請自行學習)
cd /usr/local/elk/elasticsearch-6.7.1 vim config/elasticsearch.yml這里只進行最基礎的配置,當然也可以使用ES默認的配置
③ 運行Elasticsearch
1) 前置操作
當我們在root用戶下啟動ES時,會有以下報錯:
這是出于系統安全考慮設置的條件。由于ElasticSearch可以接收用戶輸入的腳本并且執行,為了系統安全考慮,建議創建一個單獨的用戶用來運行ElasticSearch。
新用戶的密碼為:zhang2000
2) 啟動ES
可以直接先改文件,跳轉至下面直接修改的標簽操作也可以
切換到elk-user用戶,進入bin文件夾,運行elasticsearch文件,后面的&表示后臺運行
觀察到有WARN等問題,開始處理這些錯誤
先將這個elasticsearch進程殺死,上面進程號寫的是26127(隨機的,每個人的不一樣)
如果不知道也可以使用命令查看:
直接修改
報錯里有 OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release. 這是垃圾處理器不建議使用了,我們換成UseU1GC進入/usr/local/elk/elasticsearch-6.7.1/config將jvm.options文件稍作修改
將UseConcMarkSweepGC換成UseU1GC
對于
vim里輸入i,左下角會顯示插入表示開始修改文件了,修改完成后輸入ESC鍵,然后輸入:wq回車就好了。
然后切換到root用戶下,使用vim修改/etc下的sysctl.conf文件
我的文件里是空的,所以加了過后有效行也只有一行
接著修改最后一個問題:
先修改文件:
vim /etc/security/limits.conf在文件中添加
* soft nofile 65536 * hard nofile 65536
然后重新登錄用戶:
最后驗證是否生效
ulimit -H -n
現在再啟動ES:
可以看到全是INFO只有一個WARN,經過搜索發現可以不用管。
再嘗試訪問本地的9200端口:
輸出正確,最后查看進程號,并且關閉進程:
查看進程號:
可以看到進程號是7266,其實在你啟動ES的時候,輸出的第一條信息就是進程的PID,如下,所以是對應的
關閉進程號,再次查看:也可以等外網訪問完成了再關閉
可以看到進程已被殺死,剩下的仍在運行的是當前命令
3) 驗證ES外網是否可以訪問
再在windows上試試訪問http://10.64.26.86:9200(前面的地址是自己的)
你會發現無訪問此網站,為什么呢?我們之前使用tomcat的時候做了一件什么事?
開啟防火墻,所以我們來試試
再次訪問http://10.64.26.86:9200/
成功啦
(4) Kibana部署:
① 解壓文件到 /usr/local/elk
首先進入elk目錄,再解壓:
cd /usr/local/elk tar -zxvf kibana-6.7.1-linux-x86_64.tar.gz -C /usr/local/elk解壓需要一小會兒
Kibana重要目錄結構:
| Bin | 包括kibana在內的啟動kibana服務和kibana-plugin來安裝插件的二進制腳本 |
| Config | 包括kibana.yml的配置文件 |
| Data | 由kibana和它的插件寫入磁盤的數據文件的位置 |
| Optimize | 源碼編譯后的文件,瀏覽器實際訪問的資源 |
| Plugins | 插件目錄 |
| Node_modules | 第三方依賴庫 |
② 配置Kibana
使用vim打開kibana.yml
vim /usr/local/elk/kibana-6.7.1-linux-x86_64/config/kibana.yml③ 運行Kibana
1) 啟動Kibana
進入kibana的bin文件夾
cd /usr/local/elk/kibana-6.7.1-linux-x86_64/bin ls
運行kibana
報了4個warning
一個error
warning不想改了,校園網斷了,睡了一晚第二天再啟動的時候error沒了,增加了個warning,查詢后發現無傷大雅…然后關了進程再啟動一次,這個warning也消失了…
2) 查看kibana是否正確運行:
ps -ef | grep kibana ps -ef | grep node netstat -tunlp | grep 5601
第一條命令檢查kibana是否啟動,顯然沒查詢到PID,第二條命令檢查node是否運行,顯然是在運行,由于kibana在node里運行,且使用5601端口,第三條命令說明Kibana已經在運行
3) 驗證Kibana外網是否可訪問
打開瀏覽器,輸入地址:x.x.x.x:5601(x.x.x.x是你部署kibana的服務器地址),如果顯示該頁面,則表示成功訪問。
顯然會失敗,為什么呢?(實驗指南上沒說開啟防火墻的端口,壞。
因為又忘記打開防火墻的5601端口了
設置后再次訪問:
點擊try our sample data,就有指導上的頁面了
(5) Logstash部署:
① 切換至部署個人項目的服務器,解壓文件到/usr/local/elk
cd /usr/local/elk tar -zxvf logstash-6.7.1.tar.gz -C /usr/local/elk
看一下目錄下有些啥
Logstash重要目錄結構:
| Bin | 腳本程序 |
| Config | 存放配置文件,包括logstash.yml |
| Data | 存放數據 |
② 配置logstash管道
在config文件夾中創建logstash.conf文件
可以
然后輸入
也可以在xftp里右鍵logstash-sample.conf用記事本編輯,然后復制里面的內容,接著右鍵空白處新建logstash.conf,然后粘貼。
當然最簡單的是直接不建。
③ 啟動logstash
先打開防火墻的5044端口:
firewall-cmd --zone=public --add-port=5044/tcp --permanent systemctl restart firewalld.service cd /usr/local/elk/logstash-6.7.1/bin如果你新建了logstash.conf則使用下面一條命令:
./logstash -f ../config/logstash.conf &如果沒有新建logstash.conf,則使用:
./logstash -f ../config/logstash-sample.conf &后面的參數是管道配置文件,改變的就是管道配置文件名,其實內容都是一樣的
warning直接看不見,后面有一個WARN:Ignoring the ‘pipelines.yml’ file because modules or command line options are specified。
如果沒有指定logstash.conf(就是上面命令后面跟的參數文件)作為管道配置文件,logstash會默認讀取pipelines.yml作為管道配置文件,而我們沒有編輯pipelines.yml,會出現以下錯誤。(摘自實驗指南)
(6) Beats部署
在配置文件中設置輸出到logstash,所以output下面的elasticsearch全部注釋
① 解壓文件到/usr/local/elk
cd /usr/local/elk tar -zxvf filebeat-6.7.1-linux-x86_64.tar.gz -C /usr/local/elk tar -zxvf packetbeat-6.7.1-linux-x86_64.tar.gz -C /usr/local/elk tar -zxvf metricbeat-6.7.1-linux-x86_64.tar.gz -C /usr/local/elk② 配置并部署filebeat
1) 配置filebeat
使用vim編輯filebeat.yml配置文件
cd /usr/local/elk/filebeat-6.7.1-linux-x86_64 vim filebeat.yml
注意:elasticsearch里的內容需要全部注釋,默認是有配置的
解釋如下:
2) 啟動filebeat
cd /usr/local/elk/filebeat-6.7.1-linux-x86_64 ./filebeat &查看filebeat是否運行成功
ps -ef | grep beat③ 配置并部署metricbeat
1) 配置metricbeat
cd /usr/local/elk/metricbeat-6.7.1-linux-x86_64 vim metricbeat.yml
2) 啟動metricbeat
啟動服務
./metricbeat &查看是否啟動成功
ps -ef | grep beat④ 配置并部署packetbeat
1) 配置packetbeat
cd /usr/local/elk/packetbeat-6.7.1-linux-x86_64 vim vim packetbeat.yml
2) 啟動packetbeat
./packetbeat & ps -ef | grep beat4. 使用Kibana
(1) 訪問Kibana
對于我的本次實驗,即訪問http://10.64.26.86:5601
(2) 設置Index索引
進入Discover選項
點擊Create index pattern
(3) 查看數據
在這之前你必須確保你要使用的beat的服務是開著的
ps -ef | grep beat如果沒有打開,可以到相應的文件夾下像之前那樣打開服務
① 切換索引查看接收到的數據
② 查看日志
本次演示配置采集日志文件如下圖所示:
我沒有配置mysql。
下面這個沒有配置:
點擊kibana左側菜單的Logs選項進入日志查詢界面。
在搜索框中輸入log.file.path:”想要查看的日志文件名”, 例如”/var/log/mysqld.log”。回車查詢即可搜索到匹配的日志文件內容進行查看。
打開服務器/var/log/mysqld.log文件驗證日志內容一致,即采集成功。
(4) 使用儀表盤
① 查看kibana提供的儀表盤加載是否成功
② 選擇適合的儀表盤進行查看
1) 使用metricbeat儀表盤
后面根據指南進行就好。
總結
- 上一篇: 当兵期间可以考英语计算机考试吗,当兵期间
- 下一篇: Django url管理之include