溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用spring boot設(shè)置ELK堆棧

發(fā)布時間:2020-06-02 20:36:00 來源:億速云 閱讀:233 作者:Leah 欄目:編程語言

這篇文章的知識點(diǎn)包括:ELK堆棧的介紹、ELK堆棧的設(shè)置以及spring boot設(shè)置ELK堆棧的方法,閱讀完整文相信大家對ELK堆棧的設(shè)置有了一定的認(rèn)識。

什么是ELK?

ELK是Elasticsearch,Logstash和Kibana的首字母縮寫。 它是Elastic擁有的開源軟件。

Elasticsearch是基于Apache Lucene的搜索引擎,幾乎可以實(shí)時搜索,存儲和分析大量數(shù)據(jù)。 Elasticsearch可以在內(nèi)部安裝,也可以用作SaaS應(yīng)用程序。
Logstash是日志聚合器,它具有一個管道來接收輸入,過濾數(shù)據(jù)并發(fā)送輸出。 Logstash可以使用不同的輸入插件從各種來源獲取日志,并以所需的方式發(fā)送輸出。
Kibana是用于可視化Elasticsearch數(shù)據(jù)的軟件。 它是Elasticsearch的插件。 Elasticsearch和Kibana可以部署為云服務(wù),并寄托在AWS或GCP上。 Kibana也可以安裝在內(nèi)部基礎(chǔ)結(jié)構(gòu)中。 在本教程中,我們將使用ELK的Docker映像并將其在EC2中進(jìn)行設(shè)置。

設(shè)計架構(gòu)

在以上設(shè)計中,不同的微服務(wù)將吐出日志。 我們將擁有Syslog驅(qū)動程序,以將從不同的微服務(wù)生成的日志推送到Logstash,后者將過濾日志并將其推送到Elasticsearch。 所有匯總的日志將在Kibana中顯示。

在EC2上設(shè)置ELK

我們將使用官方Docker鏡像在EC2 Ubuntu計算機(jī)上設(shè)置ELK。 登錄到EC2服務(wù)器,并在路徑/ home / ubuntu /中創(chuàng)建一個名為“ elk”的目錄。
請按照此處提到的步驟在EC2上安裝Docker。

導(dǎo)航到elk目錄并創(chuàng)建一個名為docker-compose.yml的文件

version: '2'
services:
    elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
        ports:
            - '9200:9200'
            - '9300:9300'
    kibana:
        image: docker.elastic.co/kibana/kibana:6.3.2
        ports:
            - '5601:5601'
        depends_on:
            -  elasticsearch
    logstash:
        image: docker.elastic.co/logstash/logstash:6.3.2
        ports:
            - '25826:25826'
        volumes:
            - $PWD/elk-config:/elk-config
        command: logstash -f /elk-config/logstash.config
        depends_on:
            -  elasticsearch
            -

Elasticsearch默認(rèn)使用mmapfs目錄存儲其索引。 默認(rèn)的操作系統(tǒng)對mmap計數(shù)的限制可能太低,這可能會導(dǎo)致內(nèi)存不足異常。
在Linux上,你可以通過以root用戶身份運(yùn)行以下命令來分配最大內(nèi)存來增加限制:
sudo sysctl -w vm.max_map_count=262144
運(yùn)行docker-compose up來啟動ELK的所有容器。

通過單擊端口5601驗(yàn)證Kibana是否已啟動。你應(yīng)該看到以下頁面:

在Kibana中設(shè)置索引模式。

運(yùn)行telnet [logstash的IP] [logstash的端口]并輸入任何文本(例如telnet 52.207.254.8 25826)
一旦你可以在Kibana中看到文本,則意味著已為ELK設(shè)置了連接性。
接下來,我們將看到如何將日志從微服務(wù)推送到ELK。

設(shè)置系統(tǒng)日志驅(qū)動程序

為了從EC2中寄托的微服務(wù)發(fā)送日志,我們可以使用syslog驅(qū)動程序?qū)⑷罩就扑偷絃ogstash。 我正在使用該項(xiàng)目作為日志。 我們將在EC2中運(yùn)行此項(xiàng)目。
我們需要對Ubuntu計算機(jī)中存在的rsyslog.conf進(jìn)行更改。
vi /etc/rsyslog.conf
取消注釋以下行:

現(xiàn)在,在spring boot項(xiàng)目的logback.xml中添加以下行:

<appender name=”SYSLOG” class=”ch.qos.logback.classic.net.SyslogAppender”>
    <syslogHost>{logstash host }</syslogHost>
    <port>{ logstash port 25826 }</port>
    <facility>LOCAL1</facility>
    <suffixPattern>[%thread] %logger %msg</suffixPattern>
</appender>

上面的設(shè)置會將日志推送到Logstash。
如果項(xiàng)目是使用Docker構(gòu)建的,那么我們需要使用docker run命令添加驅(qū)動程序:
–log-driver syslog –log-opt syslog-address = tcp:// {logstashhost}:{logstashport}
在啟動服務(wù)器并點(diǎn)擊API時,你可以在Kibana中看到日志。

看完上述內(nèi)容,你們對用spring boot設(shè)置ELK堆棧的方法有進(jìn)一步的了解嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI