您好,登錄后才能下訂單哦!
這篇文章的知識點包括:ELK堆棧的介紹、ELK堆棧的設置以及spring boot設置ELK堆棧的方法,閱讀完整文相信大家對ELK堆棧的設置有了一定的認識。
什么是ELK?
ELK是Elasticsearch,Logstash和Kibana的首字母縮寫。 它是Elastic擁有的開源軟件。
Elasticsearch是基于Apache Lucene的搜索引擎,幾乎可以實時搜索,存儲和分析大量數據。 Elasticsearch可以在內部安裝,也可以用作SaaS應用程序。
Logstash是日志聚合器,它具有一個管道來接收輸入,過濾數據并發送輸出。 Logstash可以使用不同的輸入插件從各種來源獲取日志,并以所需的方式發送輸出。
Kibana是用于可視化Elasticsearch數據的軟件。 它是Elasticsearch的插件。 Elasticsearch和Kibana可以部署為云服務,并寄托在AWS或GCP上。 Kibana也可以安裝在內部基礎結構中。 在本教程中,我們將使用ELK的Docker映像并將其在EC2中進行設置。
設計架構
在以上設計中,不同的微服務將吐出日志。 我們將擁有Syslog驅動程序,以將從不同的微服務生成的日志推送到Logstash,后者將過濾日志并將其推送到Elasticsearch。 所有匯總的日志將在Kibana中顯示。
在EC2上設置ELK
我們將使用官方Docker鏡像在EC2 Ubuntu計算機上設置ELK。 登錄到EC2服務器,并在路徑/ home / ubuntu /中創建一個名為“ elk”的目錄。
請按照此處提到的步驟在EC2上安裝Docker。
導航到elk目錄并創建一個名為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默認使用mmapfs目錄存儲其索引。 默認的操作系統對mmap計數的限制可能太低,這可能會導致內存不足異常。
在Linux上,你可以通過以root用戶身份運行以下命令來分配最大內存來增加限制:
sudo sysctl -w vm.max_map_count=262144
運行docker-compose up來啟動ELK的所有容器。
通過單擊端口5601驗證Kibana是否已啟動。你應該看到以下頁面:
在Kibana中設置索引模式。
運行telnet [logstash的IP] [logstash的端口]并輸入任何文本(例如telnet 52.207.254.8 25826)
一旦你可以在Kibana中看到文本,則意味著已為ELK設置了連接性。
接下來,我們將看到如何將日志從微服務推送到ELK。
設置系統日志驅動程序
為了從EC2中寄托的微服務發送日志,我們可以使用syslog驅動程序將日志推送到Logstash。 我正在使用該項目作為日志。 我們將在EC2中運行此項目。
我們需要對Ubuntu計算機中存在的rsyslog.conf進行更改。
vi /etc/rsyslog.conf
取消注釋以下行:
現在,在spring boot項目的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>
上面的設置會將日志推送到Logstash。
如果項目是使用Docker構建的,那么我們需要使用docker run命令添加驅動程序:
–log-driver syslog –log-opt syslog-address = tcp:// {logstashhost}:{logstashport}
在啟動服務器并點擊API時,你可以在Kibana中看到日志。
看完上述內容,你們對用spring boot設置ELK堆棧的方法有進一步的了解嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。