ELK 企业级日志分析系统
文章目錄
- 一、 ELK日志分析系統(tǒng)簡介
- 二、 使用ELK的原因
- 三、 完整日志系統(tǒng)基本特征
- 四、 ELK的工作原理
- 五、ELK日志分析系統(tǒng)集群部署
- 5.1 ELK Elasticsearch 集群部署具體實(shí)驗(yàn)步驟
- 1.環(huán)境準(zhǔn)備
- ① 配置域名解析
- ② 修改主機(jī)名
- ③ 查看java版本
- 2.部署 Elasticsearch 軟件
- ① 安裝elasticsearch—rpm包
- ② 加載系統(tǒng)服務(wù)
- ③ 修改elasticsearch主配置文件
- ④ 創(chuàng)建數(shù)據(jù)存放路徑并授權(quán)
- ⑤ 啟動elasticsearch是否成功開啟
- ⑥ 查看node1和node2節(jié)點(diǎn)信息
- ⑦ 檢查群集狀態(tài)信息
- 3.安裝 Elasticsearch-head 插件
- ① 放入安裝包并解壓
- ② 編譯安裝node
- ③ 安裝 phantomjs
- ④ 安裝 Elasticsearch-head 數(shù)據(jù)可視化工具
- ⑤ 修改 Elasticsearch 主配置文件vim /etc/elasticsearch/elasticsearch.yml
- ⑥ 啟動 elasticsearch-head 服務(wù)
- ⑦ 通過 Elasticsearch-head 查看 Elasticsearch 信息
- ⑧ 插入索引
- ⑨ 訪問測試
- 5.2 ELK Logstash 部署的具體操作步驟
- 1.更改主機(jī)名
- 2.安裝Apahce服務(wù)(httpd)
- 3.安裝Java環(huán)境
- 4.安裝logstash
- 5.測試 Logstash
- ① 定義輸入和輸出流:輸入采用標(biāo)準(zhǔn)輸入,輸出采用標(biāo)準(zhǔn)輸出(類似管道)
- ② 定義輸入和輸出流:使用 rubydebug 輸出詳細(xì)格式顯示,codec 為一種編解碼器
- ③ 定義輸入和輸出流:使用 Logstash 將信息寫入 Elasticsearch 中
- ④ 瀏覽器訪問 http://192.168.80.10:9100/ 查看索引信息和數(shù)據(jù)瀏覽
- 6.定義 logstash配置文件
- ①修改配置
- ② 重啟服務(wù)
- 7.瀏覽器訪問查看索引信息
- ① 查看索引是否創(chuàng)建
- ② 查看索引對應(yīng)的日志文件
- 5.3 ELK Kiabana 部署的具體操作步驟
- 1.安裝 Kiabana
- 2.設(shè)置 Kibana 的主配置文件vim /etc/kibana/kibana.yml
- 3.啟動 Kibana 服務(wù)
- 4.驗(yàn)證 Kibana
- ① 添加system索引
- ② 單擊 “Discover” 按鈕可查看圖表信息及日志信息
- 5.將 Apache 服務(wù)器的日志(訪問的、錯(cuò)誤的)添加到 Elasticsearch 并通過 Kibana 顯示
- ① 創(chuàng)建apache_log.conf文件
- ② 啟動添加到 Elasticsearch
- 6.瀏覽器訪問http://192.168.80.30:5601 登錄 Kibana測試
- ① 使用宿主機(jī)進(jìn)行訪問,為了產(chǎn)生訪問日志
- ② 創(chuàng)建apache_access索引日志
- ③ 創(chuàng)建apache_error索引日志
- ④ 選擇“Discover”選項(xiàng)卡,在中間下拉列表中選擇剛添加的 apache_access-* 、apache_error-* 索引, 可以查看相應(yīng)的圖表及日志信息。
- 5.4 Filebeat+ELK 部署
- 1.安裝 Filebeat //在 Node1 節(jié)點(diǎn)上操作
- 2.設(shè)置 Kibana 的主配置文件 //在 Node1 節(jié)點(diǎn)上操作
- ① 修改配置參數(shù)
- ② 注釋Elasticsearch output并指定 logstash 的 IP 和端口
- ③ 啟動 filebeat
- 3.在 Logstash 組件所在節(jié)點(diǎn)上新建一個(gè) Logstash 配置文件(192.168.80.30)
- 4.在 Node1 節(jié)點(diǎn)上操作,啟動 filebeat
- 5.瀏覽器訪問 http://192.168.80.30:5601 登錄 Kibana測試,
- ① 單擊“Create Index Pattern”按鈕添加索引“filebeat-*”,單擊 “create” 按鈕創(chuàng)建,
- ② 單擊 “Discover” 按鈕可查看圖表信息及日志信息。
- 六、總結(jié)
- 1)ELK三大組件及其工作流程
- 2)生產(chǎn)中一般用什么來代替logstash?為什么?
- 3)ELK集群配置的步驟是什么
一、 ELK日志分析系統(tǒng)簡介
ELK平臺是一套完整的日志集中處理解決方案,將ElasticSearch、Logstash 和 Kiabana 三個(gè)開源工具配合使用, 完成更強(qiáng)大的用戶對日志的查詢、排序、統(tǒng)計(jì)需求。
ElasticSearch:是基于Lucene(一個(gè)全文檢索引擎的架構(gòu))開發(fā)的分布式存儲檢索引擎,用來存儲各類日志。
Elasticsearch 是用 Java 開發(fā)的,可通過 RESTful Web 接口,讓用戶可以通過瀏覽器與 Elasticsearch 通信。
Elasticsearch 是個(gè)分布式搜索和分析引擎,優(yōu)點(diǎn)是能對大容量的數(shù)據(jù)進(jìn)行接近實(shí)時(shí)的存儲、搜索和分析操作。
Logstash:作為數(shù)據(jù)收集引擎。它支持動態(tài)的從各種數(shù)據(jù)源搜集數(shù)據(jù),并對數(shù)據(jù)進(jìn)行過濾、分析、豐富、統(tǒng)一格式等操作,然后存儲到用戶指定的位置,一般會發(fā)送給 Elasticsearch。
Logstash 由JRuby 語言編寫,運(yùn)行在 Java 虛擬機(jī)(JVM)上,是一款強(qiáng)大的數(shù)據(jù)處理工具, 可以實(shí)現(xiàn)數(shù)據(jù)傳輸、格式處理、格式化輸出。Logstash 具有強(qiáng)大的插件功能,常用于日志處理。
Kiabana:是基于 Node.js 開發(fā)的展示工具,可以為 Logstash 和 ElasticSearch 提供圖形化的日志分析 Web 界面展示,可以匯總、分析和搜索重要數(shù)據(jù)日志。
Filebeat:輕量級的開源日志文件數(shù)據(jù)搜集器。通常在需要采集數(shù)據(jù)的客戶端安裝 Filebeat,并指定目錄與日志格式,Filebeat 就能快速收集數(shù)據(jù),并發(fā)送給 logstash 進(jìn)行解析,或是直接發(fā)給 Elasticsearch 存儲,性能上相比運(yùn)行于 JVM 上的 logstash 優(yōu)勢明顯,是對它的替代。
二、 使用ELK的原因
日志主要包括系統(tǒng)日志、應(yīng)用程序日志和安全日志。 系統(tǒng)運(yùn)維和開發(fā)人員可以通過日志了解服務(wù)器軟硬件信息、檢查配置過程中的錯(cuò)誤及錯(cuò)誤發(fā)生的原因。經(jīng)常分析日志可以了解服務(wù)器的負(fù)荷, 性能安全性, 從而及時(shí)采取措施糾正錯(cuò)誤。
往往單臺機(jī)器的日志我們使用grep、awk等工具就能基本實(shí)現(xiàn)簡單分析,但是當(dāng)日志被分散的儲存不同的設(shè)備上。 如果你管理數(shù)十上百臺服務(wù)器,你還在使用依次登錄每臺機(jī)器的傳統(tǒng)方法查閱日志。這樣是不是感覺很繁瑣和效率低下。 當(dāng)務(wù)之急我們使用集中化的日志管理, 例如∶ 開源的syslog,將所有服務(wù)器上的日志收集匯總。集中化管理日志后, 日志的統(tǒng)計(jì)和檢索又成為一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux命令能實(shí)現(xiàn)檢索和統(tǒng)計(jì),但是對于要求更高的查詢、排序和統(tǒng)計(jì)等要求和龐大的機(jī)器數(shù)量依然使用這樣的方法難免有點(diǎn)力不從心。
一般大型系統(tǒng)是一個(gè)分布式部署的架構(gòu),不同的服務(wù)模塊部署在不同的服務(wù)器上,問題出現(xiàn)時(shí), 大部分情況需要根據(jù)問題暴露的關(guān)鍵信息,定位到具體的服務(wù)器和服務(wù)模塊,構(gòu)建一套集中式日志系統(tǒng), 可以提高定位問題的效率。
三、 完整日志系統(tǒng)基本特征
收集∶能夠采集多種來源的日志數(shù)據(jù)
傳輸∶能夠穩(wěn)定的把日志數(shù)據(jù)解析過濾并傳輸?shù)酱鎯ο到y(tǒng)
存儲∶存儲日志數(shù)據(jù)
分析∶支持 UI分析
警告∶能夠提供錯(cuò)誤報(bào)告,監(jiān)控機(jī)制
四、 ELK的工作原理
(1)在所有需要收集日志的服務(wù)器上部署Logstash; 或者先將日志進(jìn)行集中化管理在日志服務(wù)器上, 在日志服務(wù)器上部署 Logs tash。
(2)Logstash 收集日志,將日志格式化并輸出到 Elasticsearch 群集中。
(3)Elasticsearch 對格式化后的數(shù)據(jù)進(jìn)行索引和存儲。
(4)Kibana 從 ES 群集中查詢數(shù)據(jù)生成圖表,并進(jìn)行前端數(shù)據(jù)的展示。
五、ELK日志分析系統(tǒng)集群部署
環(huán)境準(zhǔn)備工作:
服務(wù)器類型 系統(tǒng)和IP地址 需要安裝的組件 硬件方面
Node1節(jié)點(diǎn) CentOS7.4(64 位) 192.168.80.10 Elasticsearch 、 Kibana 2核4G
Node1節(jié)點(diǎn) CentOS7.4(64 位) 192.168.80.20 Elasticsearch 2核4G
Apache節(jié)點(diǎn) CentOS7.4(64 位) 192.168.80.30 Logstash Apache 2核4G
所有服務(wù)器關(guān)閉防火墻和SElinux
systemctl stop firewalld
setenforce 0
5.1 ELK Elasticsearch 集群部署具體實(shí)驗(yàn)步驟
(在Node1、Node2節(jié)點(diǎn)上操作,由于步驟相同,我這邊僅展示node1的步驟!)
1.環(huán)境準(zhǔn)備
① 配置域名解析
② 修改主機(jī)名
③ 查看java版本
2.部署 Elasticsearch 軟件
① 安裝elasticsearch—rpm包
② 加載系統(tǒng)服務(wù)
③ 修改elasticsearch主配置文件
④ 創(chuàng)建數(shù)據(jù)存放路徑并授權(quán)
⑤ 啟動elasticsearch是否成功開啟
⑥ 查看node1和node2節(jié)點(diǎn)信息
⑦ 檢查群集狀態(tài)信息
3.安裝 Elasticsearch-head 插件
① 放入安裝包并解壓
② 編譯安裝node
③ 安裝 phantomjs
④ 安裝 Elasticsearch-head 數(shù)據(jù)可視化工具
⑤ 修改 Elasticsearch 主配置文件vim /etc/elasticsearch/elasticsearch.yml
⑥ 啟動 elasticsearch-head 服務(wù)
⑦ 通過 Elasticsearch-head 查看 Elasticsearch 信息
⑧ 插入索引
⑨ 訪問測試
5.2 ELK Logstash 部署的具體操作步驟
(在 Apache 節(jié)點(diǎn)上操作)
1.更改主機(jī)名
2.安裝Apahce服務(wù)(httpd)
3.安裝Java環(huán)境
4.安裝logstash
5.測試 Logstash
① 定義輸入和輸出流:輸入采用標(biāo)準(zhǔn)輸入,輸出采用標(biāo)準(zhǔn)輸出(類似管道)
② 定義輸入和輸出流:使用 rubydebug 輸出詳細(xì)格式顯示,codec 為一種編解碼器
③ 定義輸入和輸出流:使用 Logstash 將信息寫入 Elasticsearch 中
④ 瀏覽器訪問 http://192.168.80.10:9100/ 查看索引信息和數(shù)據(jù)瀏覽
6.定義 logstash配置文件
①修改配置
② 重啟服務(wù)
7.瀏覽器訪問查看索引信息
① 查看索引是否創(chuàng)建
② 查看索引對應(yīng)的日志文件
5.3 ELK Kiabana 部署的具體操作步驟
(在 Node1 節(jié)點(diǎn)上操作)
1.安裝 Kiabana
2.設(shè)置 Kibana 的主配置文件vim /etc/kibana/kibana.yml
3.啟動 Kibana 服務(wù)
4.驗(yàn)證 Kibana
① 添加system索引
② 單擊 “Discover” 按鈕可查看圖表信息及日志信息
5.將 Apache 服務(wù)器的日志(訪問的、錯(cuò)誤的)添加到 Elasticsearch 并通過 Kibana 顯示
① 創(chuàng)建apache_log.conf文件
② 啟動添加到 Elasticsearch
6.瀏覽器訪問http://192.168.80.30:5601 登錄 Kibana測試
① 使用宿主機(jī)進(jìn)行訪問,為了產(chǎn)生訪問日志
② 創(chuàng)建apache_access索引日志
③ 創(chuàng)建apache_error索引日志
④ 選擇“Discover”選項(xiàng)卡,在中間下拉列表中選擇剛添加的 apache_access-* 、apache_error-* 索引, 可以查看相應(yīng)的圖表及日志信息。
5.4 Filebeat+ELK 部署
1.安裝 Filebeat //在 Node1 節(jié)點(diǎn)上操作
2.設(shè)置 Kibana 的主配置文件 //在 Node1 節(jié)點(diǎn)上操作
① 修改配置參數(shù)
② 注釋Elasticsearch output并指定 logstash 的 IP 和端口
③ 啟動 filebeat
3.在 Logstash 組件所在節(jié)點(diǎn)上新建一個(gè) Logstash 配置文件(192.168.80.30)
使用logstash -f logstash.conf命令進(jìn)行啟動。
4.在 Node1 節(jié)點(diǎn)上操作,啟動 filebeat
5.瀏覽器訪問 http://192.168.80.30:5601 登錄 Kibana測試,
① 單擊“Create Index Pattern”按鈕添加索引“filebeat-*”,單擊 “create” 按鈕創(chuàng)建,
② 單擊 “Discover” 按鈕可查看圖表信息及日志信息。
六、總結(jié)
1)ELK三大組件及其工作流程
組件:ElasticSearch(簡稱:ES)、Logstash和Kiabana
流程:
Logstash負(fù)責(zé)數(shù)據(jù)的收集,對數(shù)據(jù)進(jìn)行過濾、分析等操作,然后存儲到指定的位置,發(fā)送給ES;
ES是分布式存儲檢索引擎,用來存儲各類日志,可以讓用戶可以通過瀏覽器與 ES通信;
Kiabana為 Logstash 和 ES 提供圖形化的日志分析 Web 界面展示,可以匯總、分析和搜索重要數(shù)據(jù)日志。
2)生產(chǎn)中一般用什么來代替logstash?為什么?
一般使用Filebeat代替logstash
因?yàn)閘ogstash是由Java開發(fā)的,需要運(yùn)行在JVM上,耗資源較大,運(yùn)行占用CPU和內(nèi)存高。另外沒有消息隊(duì)列緩存,存在數(shù)據(jù)丟失隱患;而filebeat是一款輕量級的開源日志文件數(shù)據(jù)搜集器,能快速收集數(shù)據(jù),并發(fā)送給 logstash 進(jìn)行解析,性能上相比運(yùn)行于 JVM 上的 logstash 優(yōu)勢明顯。
3)ELK集群配置的步驟是什么
1)一般至少需要三臺主機(jī)
2)設(shè)置各主機(jī)的主機(jī)名和IP的映射,修改ES主配置文件
3)通過修改discovery.zen.ping項(xiàng),通過單播實(shí)現(xiàn)集群,指定要發(fā)現(xiàn)的節(jié)點(diǎn)。
總結(jié)
以上是生活随笔為你收集整理的ELK 企业级日志分析系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GFS 分布式文件系统从入门到实践
- 下一篇: 分布式系统的可靠协调系统——Zookee