快速搭建ELK6.2.2日誌分析系統及安裝配置

ELK日誌平臺介紹

在搜索ELK資料的時候,發現這篇文章比較好,於是摘抄一小段:

日誌主要包括系統日誌、應用程序日誌和安全日誌。系統運維和開發人員可以通過日誌瞭解服務器軟硬件信息、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日誌可以瞭解服務器的負荷,性能安全性,從而及時採取措施糾正錯誤。

通常,日誌被分散的儲存不同的設備上。如果你管理數十上百臺服務器,你還在使用依次登錄每臺機器的傳統方法查閱日誌。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日誌管理,例如:開源的syslog,將所有服務器上的日誌收集彙總。

集中化管理日誌後,日誌的統計和檢索又成爲一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux命令能實現檢索和統計,但是對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心。

 

開源實時日誌分析ELK平臺能夠完美的解決我們上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。官方網站:https://www.elastic.co/products

  • Elasticsearch是個開源分佈式搜索引擎,它的特點有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。

  • Logstash是一個完全開源的工具,他可以對你的日誌進行收集、過濾,並將其存儲供以後使用(如,搜索)。

  • Kibana 也是一個開源和免費的工具,它Kibana可以爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,可以幫助您彙總、分析和搜索重要數據日誌。

 

--------------------------------畫了一個ELK工作的原理圖-------------------------

如圖:Logstash收集AppServer產生的Log,並存放到ElasticSearch集羣中,而Kibana則從ES集羣中查詢數據生成圖表,再返回給Browser。

 

ELK平臺搭建

系統環境

System: Centos release 7.3

ElasticSearch: 6.2.2

Logstash: 6.2.2

Kibana: 6.2.2

Java: openjdk version  "1.8"

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

 

一、安裝JDK以及系統環境

下載JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html

本環境是下載的64位rpm包

#rpm -vih jdk-8u151-linux-x64.rpm

創建運行ELK的用戶和組

#groupadd elk

#useradd -g elk elk

#passwd elk

創建ELK存放目錄

#mkdir /elk && chown -R elk:elk /elk

創建數據和日誌存放目錄

#mkdir /tmp/data && chown -R elk:elk /tmp/data/elasticesearch

#mkdir /tmp/logs && chown -R elk:elk /tmp/logs/elasticesearch

 

二、先安裝Elasticsearch

我下載的是elasticsearch-6.2.2.zip

將文件解壓,並重命名放到/elk下

#unzip elasticsearch-6.2.2.zip && mv elasticsearch-6.2.2 /elk/elasticsearch

#chown -R elk:elk /elk

配置ElasticSearch

修改elasticsearch/config/elasticsearch.yml中:
#這裏指定的是集羣名稱,需要修改爲對應的,開啓了自發現功能後,ES會按照此集羣名稱進行集羣發現
cluster.name:thh_dev1
#數據目錄
path.data:/home/data/elk/data
# log目錄
path.logs:/home/data/elk/logs
# 節點名稱
node.name: node-1
#修改一下ES的監聽地址,這樣別的機器也可以訪問
network.host:0.0.0.0
#默認的端口號
http.port:9200
進入elasticsearch的bin目錄,使用./elasticsearch -d命令啓動elasticsearch。

查看進程

#ps -ef|grep elasticsearch 

查看Elasticsearch的信息

#curl  http://127.0.0.1:9200/

客戶端網頁訪問可能需要關掉防火牆(阿里雲等雲主機添加安全組策略):

Systemctl stop firewalld.service

 

 

注意事項

修改系統參數,確保系統有足夠資源啓動ES

 

設置內核參數

 

vim /etc/sysctl.conf

 

#增加以下參數
vm.max _map_count = 655360
執行以下命令,確保生效配置生效:
sysctl  –p

設置資源參數
vim  /etc/security/limits.conf
#修改
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536

 

*hard nproc 131072 

 

 

vim  /etc/security/limits.d/20-nproc.conf
#設置elk用戶參數
elk soft nproc 65536

 

 

如何和elasticsearch交互

安裝elasticsearch-head插件,ElasticSearch-head是一個H5編寫的ElasticSearch集羣操作和管理工具,可以對集羣進行傻瓜式操作。

安裝docker鏡像或者通過github下載elasticsearch-head項目都是可以的,1或者2兩種方式選擇一種安裝使用即可

1. 使用docker的集成好的elasticsearch-head

    # docker run -p 9100:9100 mobz/elasticsearch-head:5
    docker容器下載成功並啓動以後,運行瀏覽器打開http://localhost:9100/

2. 使用git安裝elasticsearch-head
    # yum install -y npm
    # git clone git://github.com/mobz/elasticsearch-head.git

    # cd elasticsearch-head

    #npm install -g grunt   

    #npm install -g grunt-cli --registry=https://registry.npm.taobao.org --no-proxy   #使用的是國內鏡像代理安裝的

    #npm install -g cnpm --registry=https://registry.npm.taobao.org   #由於國外鏡像太慢,使用的是國內鏡像代理安裝

    #cnpm install

 

    # npm run start
    檢查端口是否起來
    #netstat -antp |grep 9100
    瀏覽器訪問測試是否正常
    #http://IP:9100/

 

 

 

三、Logstash簡介和安裝配置

Logstash是一款強大的數據處理工具,它可以實現數據傳輸,格式處理,格式化輸出,還有強大的插件功能,常用於日誌處理。

工作流程

Logstash工作的三個階段:

input數據輸入端,可以接收來自任何地方的源數據。

* file:從文件中讀取

* syslog:監聽在514端口的系統日誌信息,並解析成RFC3164格式。

* redis:從redis-server list中獲取

* beat:接收來自Filebeat的事件

Filter數據中轉層,主要進行格式處理,數據類型轉換、數據過濾、字段添加,修改等,常用的過濾器如下。

* grok:通過正則解析和結構化任何文本。Grok目前是logstash最好的方式對非結構化日誌數據解析成結構化和可查詢化。logstash內置了120個匹配模式,滿足大部分需求。

* mutate:在事件字段執行一般的轉換。可以重命名、刪除、替換和修改事件字段。

* drop:完全丟棄事件,如debug事件。

* clone:複製事件,可能添加或者刪除字段。

* geoip:添加有關IP地址地理位置信息。

output是logstash工作的最後一個階段,負責將數據輸出到指定位置,兼容大多數應用,常用的有:

* elasticsearch:發送事件數據到Elasticsearch,便於查詢,分析,繪圖。

* file:將事件數據寫入到磁盤文件上。

* mongodb:將事件數據發送至高性能NoSQL mongodb,便於永久存儲,查詢,分析,大數據分片。

* redis:將數據發送至redis-server,常用於中間層暫時緩存。

* graphite:發送事件數據到graphite。http://graphite.wikidot.com/

* statsd:發送事件數據到statsd。

其他介紹:

 

ELK日誌監控分析系統Logstash詳解之——input模塊

ELK日誌監控分析系統Logstash詳解之——filter模塊

ELK日誌監控分析系統Logstash詳解之——output模塊

----開始安裝配置----

1、將下載的logstash 6.2.2解壓並放到指定位置

#unzip  logstash-6.2.2.zip  -d /elk/

#mv /elk/logstash-6.2.2  /elk/logtash

2、創建一個軟連接,每次執行命令的時候不用在寫安裝路徑

#ln -s /elk/logstash/bin/logstash  /bin/logstash

3、對配置文件進行配置,可以新建一個配置文件

1. Input插件    權威指南:https://www.elastic.co/guide/en/logstash/current/input-plugins.html

 file插件的使用

    # vim /elk/logstash/conf.d/elk.conf
    添加如下配置
    input {
        file {
            path => "/var/log/messages"
            type => "system"
            start_position => "beginning"
            }
    }
    output {    
             elasticsearch {
                    hosts => ["192.168.1.202:9200"]
                    index => "system-%{+YYYY.MM.dd}"
                }
    }

運行logstash指定elk.conf配置文件,進行過濾匹配
#logstash -f /elk/logstash/conf.d/elk.conf

可以依據上面的參數介紹,自己進行增改。

四、Kibana的安裝及使用

 

安裝kibana:

解壓kibana源碼包到/elk/kibana

配置kibana

編輯kibana.yml配置文件

/elk/kibana/config/kibana.yml

修改以下參數:

#開啓默認端口5601如果5601被佔用可用5602或其他

server.port:5601

server.host:“localhost”#站點地址

elasticsearch.url:http://localhost:9200#指向elasticsearch服務的ip地址

kibana.index:“.kibana”

運行cd /home/parallels/Desktop/kibana/bin運行./kibana

通過kibana窗口觀察你的結果:

http://localhost:5601  ###公網請用公網IP(阿里雲騰訊雲需要開放安全策略)

後面可以查看這篇

ELK實戰篇

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章