1. 程式人生 > >十分鐘搭建和使用ELK日誌分析系統

十分鐘搭建和使用ELK日誌分析系統

工作 風格 true rank 分布式 array search 分布 sof

前言

為滿足研發可視化查看測試環境日誌的目的,準備采用EK+filebeat實現日誌可視化(ElasticSearch+Kibana+Filebeat)。題目為“十分鐘搭建和使用ELK日誌分析系統”聽起來有點唬人,其實如果單純滿足可視化要求,並且各軟件都已經下載到本地,十分鐘是可以搭建一個ELK系統的。本文介紹如何快速安裝、配置、使用EK+FILEBEAT去實現日誌搜集。本文中沒有使用LOGSTASH做日誌搜集過濾,但為了後期需要先進行了安裝。

工作原理

ElasticSearch:是一個開源的分布式搜索引擎,其特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,Rest風格接口,多數據源,自動搜索負載等。
Logstash:是一個開源的日誌收集和分析工具,能夠將日誌進行分析後,提供給ElasticSearch進行使用。
Kibana:可以為ElasticSearch和Logstash提供一個進行日誌分析的友好Web界面,幫助匯總、分析、搜索重要日誌。
Filebeat:是一個開源的文件收集器,最初是基於Logstash-forward源碼的日誌數據shipper,適合用於日誌文件的收集。把Filebeat安裝在服務器上,作為代理來監視日誌目錄或特定的日誌文件,然後把日誌數據轉發到Logstash中進行分析,或者是直接轉發到ElasticSearch中進行搜索。

技術分享圖片

環境信息

IP 功能 軟件 安裝路徑 操作系統
192.168.9.11 ELK openjdk1.8.0_171,elk6.3.2 rpm安裝缺省路徑 centos7.5
192.168.9.12 Filebeat sonarqube-scanner3.2.0 rpm安裝缺省路徑 centos6.8

ELK下載地址:https://www.elastic.co/downloads/

搭建步驟

1.系統基礎環境的準備

#修改vm限制
vi /etc/sysctl.conf 
vm.max_map_count=655360
!wq   保存退出
sysctl 
-p #修改文件和線程限制 vi /etc/security/limits.conf * hard nofile 65536 * soft nofile 65536 * soft nproc 2048 * hard nproc 4096 #修改非root用戶線程限制 vi /etc/security/limits.d/20-nproc.conf #(修改soft行,新增hard行) * soft nproc 65535

2.JDK及ELK的安裝

#安裝jdk
yum install java-1.8.0-openjdk -y  
#進入rpm包所在路徑,進行安裝
cd /usr/local/src
rpm -ivh elasticsearch-6.3
.2.rpm rpm -ivh logstash-6.3.2.rpm rpm -ivh kibana-6.3.2-x86_64.rpm

3.配置文件配置(註意以上ELK安裝完後現不要重啟,先進行基本配置)

#elasticsearch配置
vim /etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0 #修改為0.0.0.0 允許外部所有主機訪問

#kib
vim /etc/kibana/kibana.yml 
server.host: "192.168.9.11" #修改為本機IP,否則外部用戶將無法訪問

4.服務啟動及驗證

#啟動 elasticsearch
service elasticsearch start

#啟動kibana
service kibana start

在瀏覽器中打開http://192.168.9.11:9200 驗證elasticsearch是否啟動,當看到如下信息,說明已正常啟動。

技術分享圖片

打開http://192.168.9.26:5601驗證已kibana啟動情況,當看到如下界面說明已啟動(啟動後要等待10秒左右至完全啟動完成)

技術分享圖片

5.filebeat的安裝及配置及啟動(在日誌被搜集服務器上進行)

#安裝filebeat
cd /usr/local/src
rpm -ivh filebeat-6.3.2-x86_64.rpm 

#配置filebeat,這裏搜集tomcat及Node日誌,通過tags進行區分
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/local/tomcat/logs/catalina.out
  tags: ["saas_server"]
- type: log
  enabled: true
  paths:
    - /usr/local/nodejs/workspace/saas_web/logs/saas-web*
  tags: ["saas_web"]

output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["192.168.9.11:9200"]

#filebeat啟動
service filebeat start

以上ELK+Filebeat安裝完成後,就可以在Kinaba上進行配置使用了,首次使用先在“discover”處進行采集器添加,添加關鍵字為filebeat-*,(若是logstash則默認為logstash*),添加完成後就可以看到搜集到的日誌。如下圖:

技術分享圖片

如上日誌已經被搜集到elasticsearch中,並通過kibana呈現,另外還可以通過點擊tags,分類查看Tomcat或node的日誌,如上filebeat中已經通過tags進行了分類,至此在十分鐘內日誌系統已經搭建完畢。這僅僅是一個滿足可視化的簡單應用,若日誌量大、需要權限認證、需要過濾等插件的復雜功能,就需要建立集群、增加緩沖、采用X-PACK,安裝對應插件等。

可參考博客:https://www.cnblogs.com/frankdeng/p/9139035.html#4028638 和官方文檔。

十分鐘搭建和使用ELK日誌分析系統