欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ELK日志系統(tǒng)的介紹和部署方法

這篇文章主要講解了“ELK日志系統(tǒng)的介紹和部署方法”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ELK日志系統(tǒng)的介紹和部署方法”吧!

創(chuàng)新互聯(lián)公司成立以來不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點,以客戶需求中心、市場為導(dǎo)向”的快速反應(yīng)體系。對公司的主營項目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計、行業(yè) / 企業(yè)門戶設(shè)計推廣、行業(yè)門戶平臺運營、手機APP定制開發(fā)手機網(wǎng)站制作、微信網(wǎng)站制作、軟件開發(fā)、服務(wù)器機柜租用等實行標準化操作,讓客戶可以直觀的預(yù)知到從創(chuàng)新互聯(lián)公司可以獲得的服務(wù)效果。

一、ELK應(yīng)用場景
在復(fù)雜的企業(yè)應(yīng)用服務(wù)群中,記錄日志方式多種多樣,并且不易歸檔以及提供日志監(jiān)控的機制。無論是開發(fā)人員還是運維人員都無法準確的定位服務(wù)、服務(wù)器上面出現(xiàn)的種種問題,也沒有高效搜索日志內(nèi)容從而快速定位問題的方式。因此需要一個集中式、獨立的、搜集管理各個服務(wù)和服務(wù)器上的日志信息,集中管理,并提供良好的UI界面進行數(shù)據(jù)展示,處理分析。

得此:ELK提供一套開源的解決方案,能高效、簡便的滿足以上場景。

二、ELK日志系統(tǒng)介紹
1、ELK分別是Elasticsearch、Logstash、Kibana三個開源框架縮寫。

框架    簡介    作用
Elasticsearch    開源分布式搜索引擎,提供存儲、分析、搜索功能。特點:分布式、基于reasful風格、支持海量高并發(fā)的準實時搜索場景、穩(wěn)定、可靠、快速、使用方便等。    接收搜集的海量結(jié)構(gòu)化日志數(shù)據(jù),并提供給kibana查詢分析
Logstash    開源日志搜集、分析、過濾框架,支持多種數(shù)據(jù)輸入輸出方式。    用于收集日志,對日志進行過濾形成結(jié)構(gòu)化數(shù)據(jù),并轉(zhuǎn)發(fā)到elasticsearch中
Kibana    開源日志報表系統(tǒng),對elasticsearch以及l(fā)ogstash有良好的web頁面支持。    對elasticsearch提供的數(shù)據(jù)進行分析展示

2、ELK經(jīng)典應(yīng)用如下

ELK經(jīng)典架構(gòu)

如圖

Logstash部署至服務(wù)主機,對各個服務(wù)的日志進行采集、過濾、推送。
Elasticsearch存儲Logstash傳送的結(jié)構(gòu)化數(shù)據(jù),提供給Kibana。
Kibana提供用戶UIweb頁面進行,數(shù)據(jù)展示和分析形成圖表等。
備注:logs 泛指,各種日志文件以及日志信息:windows,negix,tomcat,webserver等等。

3、ELK改進

由于Logstash消耗資源大,而服務(wù)器資源相當寶貴,所以引進另一個輕量級日志采集框架Beats,其中包含以下6種

Packetbeat    用于搜集網(wǎng)絡(luò)流量數(shù)據(jù)
Heartbeat

用于運行時間監(jiān)控
Filebeat    用于搜集文件數(shù)據(jù)
Winlogbeat    用于搜集winodws事件數(shù)據(jù)
Metricbeat    用于指標
Auditbeat    用于審計數(shù)據(jù)

改良ELK
4、進一步思考

傳統(tǒng)web項目中,經(jīng)常使用log4j以及l(fā)ogback(性能更高)等成熟日志插件進行日志的記錄,是否提供更好的解決方案。

ELK升級1.0

如圖

日志采集新增Logback直接發(fā)送日志到Logstash的形式。如果采用此方式,web服務(wù)可減少部分生成log文件配置,提高實時性和日志推送效率
5、高并發(fā)場景

由于logstash消耗性能,所以高并發(fā)場景容易遇到流量上的瓶頸,及時使用logstash集群也是如此,所以可以添加中間件進行日志緩存處理。由于logstash數(shù)據(jù)源具有多種方式,所有中間件也可以很多選擇,常見的有kafka,redis。

ELK升級2.0

如圖

host1、中間件、host2 均為高可用服務(wù)集群   為簡單顯示未畫出
logback出現(xiàn)的業(yè)務(wù)數(shù)據(jù)可以通過寫入redis或者kafka等中間件進行緩存,再通過合理限制流量閥值輸送至logstash進行過濾
beats 如果是filebeat其日志若無實時性要求,可以通過控制log文件更新速度限制Beats傳輸日志流量

三 ELK搭建(非集群)
1、下載ELK(保持版本一致)!

Elasticsearch    官網(wǎng)elasticsearch-6.3.0.tar    elasticsearch官方文檔
Kibana    官網(wǎng)kibana-6.3.0下載 linux64位    kibana官方文檔
Logstash    官網(wǎng)logstash-6.3.0.tar    logstash官方文檔
Filebeat    官網(wǎng)filebeat-6.3.0 linux64位    beats官方文檔
備注:演示為centos7 即linux版本,請按實際需求更改

通過rz命令上傳至centos7虛擬機


2、解壓

tar -zxvf elasticsearch-6.3.0.tar.gz          
tar -zxvf kibana-6.3.0-linux-x86_64.tar.gz
tar -zxvf filebeat-6.3.0-linux-x86_64.tar.gz  
tar -zxvf logstash-6.3.0.tar.gz
備注:tar不支持指定解壓目標目錄 可以通過mv 命令進行遷移。本教程遷移至/home目錄下
3、java環(huán)境搭建

推薦使用jdk1.8jdk環(huán)境配置

4、安裝elasticsearch

修改配置文件

vi /home/elasticsearch-6.3.0/config/elasticsearch.yml
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0           ##服務(wù)器ip 本機
#
# Set a custom port for HTTP:
#
http.port: 9200                 ##服務(wù)端口
#
# For more information, consult the network module documentation.
#
啟動elasticsearch

/home/elasticsearch-6.3.0/bin/elasticsearch   #命令窗運行
/home/elasticsearch-6.3.0/bin/elasticsearch  -d  #后臺線程運行
關(guān)閉elasticsearch

ctrl+c                                   #命令窗關(guān)閉
ps -ef | grep elastic                    #后臺線程關(guān)閉
kill -9 4442                             ##pid 4442為查處線程的pid 


常見問題解決elasticsearch啟動常見問題

驗證elasticsearch啟動

5、安裝kibana

修改配置文件

vi /home/kibana-6.3.0-linux-x86_64/config/kibana.yml
server.port: 5601       ##服務(wù)端口
server.host: "0.0.0.0"  ##服務(wù)器ip  本機

elasticsearch.url: "http://localhost:9200" ##elasticsearch服務(wù)地址 與elasticsearch對應(yīng)
啟動kibana
/home/kibana-6.3.0-linux-x86_64/bin/kibana       #命令窗啟動
nohup ./kibana-6.3.0-linux-x86_64/bin/kibana &   #后臺線程啟動
關(guān)閉kibana

ctrl+c                                   #命令窗關(guān)閉
ps -ef | grep kibana                    #后臺線程關(guān)閉
kill -9 4525                             ##pid 4525 為查處線程的pid 


備注:常見問題多為 端口占用,以及目錄未授權(quán),需要同elasticsearch 使用目錄運行執(zhí)行的用戶去執(zhí)行 未配置則為root用戶
驗證kibana啟動

6、安裝logstash

新建配置文件

vi /home/logstash-6.3.0/config/logback-es.conf
input {
    tcp {  
        port => 9601  
        codec => json_lines         
    }
}
output {
        elasticsearch {
                hosts => "localhost:9200"
        }
        stdout { codec => rubydebug}
}
備注:上述文件復(fù)制時必須去除多余空格,保持yml文件規(guī)范。

備注:上圖與配置部分一一對應(yīng)
input {                                ##input 輸入源配置
    tcp {                              ##使用tcp輸入源      官網(wǎng)有詳細文檔
        port => 9601                   ##服務(wù)器監(jiān)聽端口9061 接受日志  默認ip localhost
        codec => json_lines            ##使用json解析日志    需要安裝json解析插件
    }

filter {                              ##數(shù)據(jù)處理
}                                
output {                               ##output 數(shù)據(jù)輸出配置
        elasticsearch {                ##使用elasticsearch接收
            hosts => "localhost:9200"  ##集群地址  多個用,隔開
        }
        stdout { codec => rubydebug}   ##輸出到命令窗口
}
logstash官方輸入源支持以及下載

安裝logstash json插件

/home/logstash-6.3.0/bin/logstash-plugin install logstash-codec-json_lines
啟動logstash

 /home/logstash-6.3.0/bin/logstash -f /home/logstash-6.3.0/config/logback-es.conf         ##命令窗形式
nohup /home/logstash-6.3.0/bin/logstash -f /home/logstash-6.3.0/config/logback-es.conf &  ##后臺線程形式


關(guān)閉logstash

ctrl+c                                   #命令窗關(guān)閉
ps -ef | grep logstash                    #后臺線程關(guān)閉
kill -9 4617                              ##pid 4617 為查處線程的pid 

7 使用logback 傳輸日志到logstash

建立springboot項目(為了快速使用)

pom文件依賴

               <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>4.11</version>
        </dependency>
logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>192.168.253.6:9601</destination>     <!--指定logstash ip:監(jiān)聽端口 tcpAppender  可自己實現(xiàn)如kafka傳輸?shù)?->
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>

    <include resource="org/springframework/boot/logging/logback/base.xml"/>      <!--引用springboot默認配置-->

    <root level="INFO">
        <appender-ref ref="LOGSTASH" />                                           <!--使用上述訂閱logstash數(shù)據(jù)tcp傳輸 -->
        <appender-ref ref="CONSOLE" />                                            <!--使用springboot默認配置 調(diào)試窗口輸出-->
    </root>

</configuration>
SpringbootLogbackApplication.java 測試
package com.zyj;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootLogbackApplication {
    private final static Logger logger = LoggerFactory.getLogger(SpringbootLogbackApplication.class);

    public static void main(String[] args) {
        new Thread(()->{
            for (int i=0;i<100;i++){
                logger.info("---test---"+i);
            }
        }).start();

        SpringApplication.run(SpringbootLogbackApplication.class, args);
    }
}
9 驗證ELK

為演示方便,我們簡單展示一下,單位時間線程打印某日志的速度。主要通過kibana過濾出結(jié)構(gòu)化數(shù)據(jù),通過以數(shù)據(jù)的時間戳為x軸,以count統(tǒng)計函數(shù)為y軸進行圖表展示。

(1)后臺啟動elasticsearch  kibana logstash 并驗證啟動成功

(2)啟動springboot項目

(3)logstash輸出控制臺記錄  此為默認無過濾器打印logback包裝的全部信息

(4)kibana日志顯示

添加elasticsearch日志數(shù)據(jù)

使用時間戳顯示 單位時間線程記錄日志數(shù)量

四 、思考拓展
1、本文未詳細介紹logback詳細配置,以及自定義日志傳輸,將后續(xù)寫入kafka以及redis方案,log4j亦可以使用elk因性能問題不做深究。

2、本文未詳細介紹elasticsearch,logstash,kibana,beats的詳細使用,僅羅列架構(gòu)以及初步elk使用。beats常用為filebeat,對已經(jīng)生成文檔的日志進行傳輸。

3、沒有完美的架構(gòu),只有合適的用法,針對不同的業(yè)務(wù)環(huán)境需要對架構(gòu)進行微調(diào),整體思路不變。elk為單獨高可用服務(wù)群,服務(wù)器群與beats或者logback亦是獨立高可用。

4、根據(jù)業(yè)務(wù)需要,在logback打印的日志中可以進行結(jié)構(gòu)化處理,亦或者在logstash的filter中對數(shù)據(jù)進行結(jié)構(gòu)化處理。業(yè)務(wù)場景有待考究,初步考慮異常分析以及sql回滾等。

感謝各位的閱讀,以上就是“ELK日志系統(tǒng)的介紹和部署方法”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對ELK日志系統(tǒng)的介紹和部署方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

文章名稱:ELK日志系統(tǒng)的介紹和部署方法
瀏覽地址:http://chinadenli.net/article20/jiidjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、Google響應(yīng)式網(wǎng)站、小程序開發(fā)商城網(wǎng)站、網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司