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