1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        這個(gè)厲害了,springboot整合ELK實(shí)現(xiàn)日志收集

        共 4554字,需瀏覽 10分鐘

         ·

        2020-10-15 20:20

        點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”

        優(yōu)質(zhì)文章,第一時(shí)間送達(dá)

        ? 作者?|??易心i

        來(lái)源 |? urlify.cn/fQRJFj

        66套java從入門到精通實(shí)戰(zhàn)課程分享

        1.什么是ELK?

        ELK 就是Elasticsearch,logstash,kibana的縮寫哈哈。

        • Elasticsearch 是一個(gè)搜索和分析引擎。

        • Logstash 是服務(wù)器端數(shù)據(jù)處理管道,能夠同時(shí)從多個(gè)來(lái)源采集數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù),然后將數(shù)據(jù)發(fā)送到諸如 Elasticsearch 等“存儲(chǔ)庫(kù)”中。

        • Kibana 則可以讓用戶在 Elasticsearch 中使用圖形和圖表對(duì)數(shù)據(jù)進(jìn)行可視化。

        ELK該怎么實(shí)現(xiàn)日志收集呢?
        logstash就相當(dāng)于一個(gè)管道,日志通過(guò)這個(gè)管道傳輸給Elasticsearch來(lái)保存,最后在kibana上通過(guò)圖表的形式就可以看見日志信息啦!

        2.需要準(zhǔn)備的環(huán)境

        這里是使用的Docker來(lái)創(chuàng)建elasticsearch,logstash,kibana;Docker compose來(lái)啟動(dòng)的(也可以用Docker運(yùn)行,看個(gè)人選擇),所以需要安裝Docker和Docker-Compose環(huán)境

        2.1Docker環(huán)境安裝

        1. 安裝yum-utils:

        yum?install?-y?yum-utils?device-mapper-persistent-data?lvm2

        2. 為yum源添加docker倉(cāng)庫(kù)位置:

        yum-config-manager?--add-repo?https://download.docker.com/linux/centos/docker-ce.repo

        3. 安裝docker:

        yum?install?docker-ce

        4. 啟動(dòng)docker:

        systemctl?start?docker

        2.2Docker Compose環(huán)境安裝

        Docker Compose是一個(gè)用于定義和運(yùn)行多個(gè)docker容器應(yīng)用的工具。使用Compose你可以用YAML文件來(lái)配置你的應(yīng)用服務(wù),然后使用一個(gè)命令,你就可以部署你配置的所有服務(wù)了。
        使用Docker Compose的步驟

        • 使用Dockerfile定義應(yīng)用程序環(huán)境,一般需要修改初始鏡像行為時(shí)才需要使用;

        • 使用docker-compose.yml定義需要部署的應(yīng)用程序服務(wù),以便執(zhí)行腳本一次性部署;

        • 使用docker-compose up命令將所有應(yīng)用服務(wù)一次性部署起來(lái)。

        1. 安裝下載Docker Compose

        curl?-L?https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname?-s`-`uname?-m`?>?/usr/local/bin/docker-compose

        2. 修改該文件的權(quán)限為可執(zhí)行

        chmod?+x?/usr/local/bin/docker-compose

        3. 查看是否已經(jīng)安裝成功

        docker-compose?--version

        2.3獲取Elasticsearch,logstash,kibana的鏡像

        docker?pull?elasticsearch:6.4.0
        docker?pull?logstash:6.4.0
        docker?pull?kibana:6.4.0

        2.4部署前準(zhǔn)備

        Elasticsearch配置

        需要設(shè)置系統(tǒng)內(nèi)核參數(shù),否則會(huì)因?yàn)閮?nèi)存不足無(wú)法啟動(dòng);

        • 改變?cè)O(shè)置

        sysctl?-w?vm.max_map_count=262144

        • 使之立即生效

        sysctl?-p

        需要?jiǎng)?chuàng)建/mydata/elasticsearch/data目錄并設(shè)置權(quán)限,否則會(huì)因?yàn)闊o(wú)權(quán)限訪問(wèn)而啟動(dòng)失敗。

        • 創(chuàng)建目錄

        mkdir?/mydata/elasticsearch/data/

        • 創(chuàng)建并改變?cè)撃夸洐?quán)限

        chmod?777?/mydata/elasticsearch/data

        Logstash配置

        創(chuàng)建配置文件存放目錄logstash

        mkdir?/mydata/logstash

        • 創(chuàng)建一個(gè)存放logstash配置的文件logstash-springboot.conf
          文件內(nèi)容:

        input?{
        ??tcp?{
        ????mode?=>?"server"
        ????host?=>?"0.0.0.0"
        ????port?=>?4560
        ????codec?=>?json_lines
        ??}
        }
        output?{
        ??elasticsearch?{
        ????hosts?=>?"es:9200"
        ????index?=>?"springboot-logstash-%{+YYYY.MM.dd}"
        ??}
        }

        2.5使用docker-compose.yml腳本啟動(dòng)ELK服務(wù)

        創(chuàng)建docker-compose.yml,內(nèi)容如下

        version:?'3'
        services:
        ??elasticsearch:
        ????image:?elasticsearch:6.4.0
        ????container_name:?elasticsearch
        ????environment:
        ??????-?"cluster.name=elasticsearch"?#設(shè)置集群名稱為elasticsearch
        ??????-?"discovery.type=single-node"?#以單一節(jié)點(diǎn)模式啟動(dòng)
        ??????-?"ES_JAVA_OPTS=-Xms512m?-Xmx512m"?#設(shè)置使用jvm內(nèi)存大小
        ????volumes:
        ??????-?/mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins?#插件文件掛載
        ??????-?/mydata/elasticsearch/data:/usr/share/elasticsearch/data?#數(shù)據(jù)文件掛載
        ????ports:
        ??????-?9200:9200
        ??????-?9300:9300
        ??kibana:
        ????image:?kibana:6.4.0
        ????container_name:?kibana
        ????links:
        ??????-?elasticsearch:es?#可以用es這個(gè)域名訪問(wèn)elasticsearch服務(wù)
        ????depends_on:
        ??????-?elasticsearch?#kibana在elasticsearch啟動(dòng)之后再啟動(dòng)
        ????environment:
        ??????-?"elasticsearch.hosts=http://es:9200"?#設(shè)置訪問(wèn)elasticsearch的地址
        ????ports:
        ??????-?5601:5601
        ??logstash:
        ????image:?logstash:6.4.0
        ????container_name:?logstash
        ????volumes:
        ??????-?/mydata/logstash/logstash-springboot.conf:/usr/share/logstash/pipeline/logstash.conf?#掛載logstash的配置文件
        ????depends_on:
        ??????-?elasticsearch?#kibana在elasticsearch啟動(dòng)之后再啟動(dòng)
        ????links:
        ??????-?elasticsearch:es?#可以用es這個(gè)域名訪問(wèn)elasticsearch服務(wù)
        ????ports:
        ??????-?4560:4560


        3.部署Elasticsearch,Logstash,Kibana

        在docker-compose.yml目錄下,使用命令docker-compose up -d啟動(dòng)

        啟動(dòng)成功!??!

        3.1elasticsearch需要安裝中文分詞器IKAnalyzer

        • 進(jìn)入容器

        docker?exec?-it?elasticsearch?/bin/bash

        • 此命令需要在容器中運(yùn)行

        elasticsearch-plugin?install?https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.0/elasticsearch-analysis-ik-6.4.0.zip

        • 退出

        exit
        • 重啟

        docker?restart?elasticsearch

        3.2在logstash中安裝json_lines插件

        • 進(jìn)入logstash容器

        docker?exec?-it?logstash?/bin/bash

        • 安裝插件

        logstash-plugin?install?logstash-codec-json_lines

        • 退出容器

        exit

        • 重啟logstash服務(wù)

        docker?restart?logstash

        都重新啟動(dòng)好之后,這三個(gè)容器都是運(yùn)行好的

        查看kibana
        ip:5601

        查看elasticsearch是否成功啟動(dòng)
        ip:9200

        4.springboot應(yīng)用集成logstash

        4.1.導(dǎo)入pom依賴



        ????net.logstash.logback
        ????logstash-logback-encoder
        ????5.3


        4.2添加配置文件logback-spring.xml讓logback的日志輸出到logstash

        將下面的ip地址改成自己的

        "1.0"?encoding="UTF-8"?>


        ????"org/springframework/boot/logging/logback/defaults.xml"/>
        ????"org/springframework/boot/logging/logback/console-appender.xml"/>
        ????
        ????"APP_NAME"?value="mall-admin"/>
        ????
        ????"LOG_FILE_PATH"?value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/logs}"/>
        ????${APP_NAME}
        ????
        ????"FILE"?class="ch.qos.logback.core.rolling.RollingFileAppender">
        ????????"ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        ????????????${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log
        ????????????30
        ????????
        ????????
        ????????????${FILE_LOG_PATTERN}
        ????????

        ????
        ????
        ????"LOGSTASH"?class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        ????????
        ????????ip:4560
        ????????"UTF-8"?class="net.logstash.logback.encoder.LogstashEncoder"/>
        ????
        ????"INFO">
        ????????"CONSOLE"/>
        ????????"FILE"/>
        ????????"LOGSTASH"/>
        ????



        4.3配置yml文件

        添加logstash配置文件路徑

        logging:
        ??config:?classpath:logstash-spring.xml

        4.4測(cè)試

        寫了一個(gè)方法測(cè)試了一下

        訪問(wèn)路徑:http://localhost:8081/agv/agvdevdao/selectAll
        控制臺(tái)輸出

        在kibana中的日志信息

        成功?。?!

        最后總結(jié):
        1.安裝docker環(huán)境
        2.獲取elasticsearch,logstash,kibana的鏡像
        3.運(yùn)行這三個(gè)容器
        4.springboot集成logstash,將日志傳輸?shù)絜lasticsearch




        粉絲福利:108本java從入門到大神精選電子書領(lǐng)取

        ???

        ?長(zhǎng)按上方鋒哥微信二維碼?2 秒
        備注「1234」即可獲取資料以及
        可以進(jìn)入java1234官方微信群



        感謝點(diǎn)贊支持下哈?

        瀏覽 98
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            久久国产精品美女操出白浆视频 | 欧美综合77777色婷婷 | 亚洲欧美日韩在线 | 美女的胸又黄又大jk | 另类小说亚洲 | 91视频污 | 色色99 | 娱乐圈名器高h喷水荡肉爽文 | 四虎国产成人永久精品免费 | 《丰满女人》伦理hd |