這篇文章的知識點(diǎn)包括:ELK堆棧的介紹、ELK堆棧的設(shè)置以及spring boot設(shè)置ELK堆棧的方法,閱讀完整文相信大家對ELK堆棧的設(shè)置有了一定的認(rèn)識。
10年積累的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有臨泉免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。什么是ELK?
ELK是Elasticsearch,Logstash和Kibana的首字母縮寫。 它是Elastic擁有的開源軟件。
Elasticsearch是基于Apache Lucene的搜索引擎,幾乎可以實(shí)時(shí)搜索,存儲和分析大量數(shù)據(jù)。 Elasticsearch可以在內(nèi)部安裝,也可以用作SaaS應(yīng)用程序。
Logstash是日志聚合器,它具有一個(gè)管道來接收輸入,過濾數(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è)計(jì)架構(gòu)
在以上設(shè)計(jì)中,不同的微服務(wù)將吐出日志。 我們將擁有Syslog驅(qū)動程序,以將從不同的微服務(wù)生成的日志推送到Logstash,后者將過濾日志并將其推送到Elasticsearch。 所有匯總的日志將在Kibana中顯示。
在EC2上設(shè)置ELK
我們將使用官方Docker鏡像在EC2 Ubuntu計(jì)算機(jī)上設(shè)置ELK。 登錄到EC2服務(wù)器,并在路徑/ home / ubuntu /中創(chuàng)建一個(gè)名為“ elk”的目錄。
請按照此處提到的步驟在EC2上安裝Docker。
導(dǎo)航到elk目錄并創(chuàng)建一個(gè)名為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計(jì)數(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ì)算機(jī)中存在的rsyslog.conf進(jìn)行更改。
vi /etc/rsyslog.conf
取消注釋以下行:
現(xiàn)在,在spring boot項(xiàng)目的logback.xml中添加以下行:
{logstash host }
{ logstash port 25826 }
LOCAL1
[%thread] %logger %msg
上面的設(shè)置會將日志推送到Logstash。
如果項(xiàng)目是使用Docker構(gòu)建的,那么我們需要使用docker run命令添加驅(qū)動程序:
–log-driver syslog –log-opt syslog-address = tcp:// {logstashhost}:{logstashport}
在啟動服務(wù)器并點(diǎn)擊API時(shí),你可以在Kibana中看到日志。
看完上述內(nèi)容,你們對用spring boot設(shè)置ELK堆棧的方法有進(jìn)一步的了解嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。