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>

        Springboot+elk實現(xiàn)分布式日志管理

        共 5205字,需瀏覽 11分鐘

         ·

        2020-11-08 21:17

        點擊上方藍色字體,選擇“標星公眾號”

        優(yōu)質文章,第一時間送達

        ? 作者?|??CosmosNi

        來源 |? urlify.cn/zINBvm

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

        一:準備工作

        1.準備三臺機器:
        10.2.0.151 主
        10.2.0.152 數(shù)據(jù)中心
        10.2.0.153 數(shù)據(jù)中心
        機器上都安裝上jdk

        2.修改host文件

        vim?/etc/hosts
        10.2.0.151?master-node
        10.2.0.152?data-node1
        10.2.0.153?data-node2

        二:安裝Elasticsearch 分布式集群

        在三臺機器上分別裝上Elasticsearch

        wget?https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.rpm
        rpm?-ivh?elasticsearch-6.0.0.rpm


        2.搭建集群
        2.1 修改主節(jié)點上的配置文件

        vim?/etc/elasticsearch/elasticsearch.yml

        修改如下幾個配置:
        cluster.name: master-node # 集群中的名稱
        node.name: master # 該節(jié)點名稱
        node.master: true # 意思是該節(jié)點為主節(jié)點
        node.data: false # 表示這不是數(shù)據(jù)節(jié)點
        network.host: 0.0.0.0 # 監(jiān)聽全部ip,在實際環(huán)境中應設置為一個安全的ip
        http.port: 9200 # es服務的端口號
        discovery.zen.ping.unicast.hosts: [“10.2.0.151”, “10.2.0.152”, “10.2.0.153”] # 配置自動發(fā)現(xiàn)

        2.2復制替換此文件到兩個數(shù)據(jù)中心

        ? 10.2.0.152 下修改如下配置:
        ??node.name:?data-node1
        ??node.master:?false
        ??node.data:?true

        ? 10.2.0.153 下修改如下配置:
        ??node.name:?data-node2
        ??node.master:?false
        ??node.data:?true

        2.3啟動es

        systemctl?start?elasticsearch.service
        ps?aux?|grep?elasticsearch
        netstat?-lntp?|grep?java??#?es服務會監(jiān)聽兩個端口

        2.4查看集群健康狀態(tài)

        curl?'10.2.0.151:9200/_cluster/health?pretty'
        {
        ??"cluster_name"?:?"master-node",
        ??"status"?:?"green",??#?為green則代表健康沒問題,如果是yellow或者red則是集群有問題
        ??"timed_out"?:?false,??#?是否有超時
        ??"number_of_nodes"?:?3,?#?集群中的節(jié)點數(shù)量
        ??"number_of_data_nodes"?:?2,?#?集群中data節(jié)點的數(shù)量
        ??"active_primary_shards"?:?0,
        ??"active_shards"?:?0,
        ??"relocating_shards"?:?0,
        ??"initializing_shards"?:?0,
        ??"unassigned_shards"?:?0,
        ??"delayed_unassigned_shards"?:?0,
        ??"number_of_pending_tasks"?:?0,
        ??"number_of_in_flight_fetch"?:?0,
        ??"task_max_waiting_in_queue_millis"?:?0,
        ??"active_shards_percent_as_number"?:?100.0
        }

        集群的詳細信息:

        curl?'192.168.77.128:9200/_cluster/state?pretty'

        到此,集群安裝成功

        三:搭建kibana

        1.安裝

        wget?https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-x86_64.rpm
        rpm?-ivh?kibana-6.0.0-x86_64.rpm


        2.配置

        vim?/etc/kibana/kibana.yml??#?增加以下內(nèi)容

        server.port:?5601??#?配置kibana的端口
        server.host:?10.2.0.151??#?配置監(jiān)聽ip
        elasticsearch.url:?"http://10.2.0.151:9200"??#?配置es服務器的ip,如果是集群則配置該集群中主節(jié)點的ip
        logging.dest:?/var/log/kibana.log??#?配置kibana的日志文件路徑,不然默認是messages里記錄日志


        3.創(chuàng)建日志文件:

        ?touch?/var/log/kibana.log;?chmod?777?/var/log/kibana.log

        4.啟動

        systemctl?start?kibana
        ps?aux?|grep?kibana???###監(jiān)聽的端口
        netstat?-lntp?|grep?5601??##進程是否啟動

        5.訪問
        http://ip+5601

        四:logstash

        1.安裝

        wget?https://artifacts.elastic.co/downloads/logstash/logstash-6.0.0.rpm
        rpm?-ivh?logstash-6.0.0.rpm


        2.配置logstash
        新建一個conf文件:

        input?{
        ????tcp?{
        ????????port?=>?4560????##開啟的端口號,后面項目logback配置的
        ?mode?=>?"server"?
        ?tags?=>?["tags"]?
        ?codec?=>?json_lines??##解析方式
        ????}
        }

        output{
        ??elasticsearch?{?
        ?????hosts?=>?["10.2.0.151:9200"]???###elasticsearch?主節(jié)點
        ?????index?=>"%{[appname]}-%{+YYYY.MM.dd}"?????#appname??后面logback會用到,指向項目名
        ??}
        ??stdout?{?codec?=>?rubydebug?}
        }



        將文件放入到/etc/logstash/conf.d/目錄下

        3.檢查配置文件是否有錯

        cd?/usr/share/logstash/bin
        ./logstash?--path.settings?/etc/logstash/?-f?/etc/logstash/conf.d/syslog.conf?--config.test_and_exit

        Sending?Logstash's?logs?to?/var/log/logstash?which?is?now?configured?via?log4j2.properties
        Configuration?OK??#?為ok則代表配置文件沒有問題


        命令說明:
        –path.settings 用于指定logstash的配置文件所在的目錄
        -f 指定需要被檢測的配置文件的路徑
        –config.test_and_exit 指定檢測完之后就退出,不然就會直接啟動了

        4.配置kibana服務器的ip以及配置的監(jiān)聽端口:

        vim?/etc/rsyslog.conf
        ####?RULES?####

        *.*?@@10.2.0.153:4560

        ###重啟rsyslog
        systemctl?restart?rsyslog


        5.指定配置文件,啟動logstash

        cd?/usr/share/logstash/bin
        ./logstash?--path.settings?/etc/logstash/?-f?/etc/logstash/conf.d/syslog.conf
        systemctl?start?logstash


        6.查看是否啟動成功

        netstat?-lntp?|grep?9600
        netstat?-lntp?|grep?10514

        五:測試

        1.登錄master節(jié)點

        curl?'10.2.0.151:9200/_cat/indices?v'

        可以看到配置的appname的索引

        2.創(chuàng)建springboot項目
        pom文件如下

        "1.0"?encoding="UTF-8"?>
        "http://maven.apache.org/POM/4.0.0"?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        ????xsi:schemaLocation="http://maven.apache.org/POM/4.0.0?http://maven.apache.org/xsd/maven-4.0.0.xsd">
        ????4.0.0

        ????com.test
        ????springboot-with-elk
        ????0.0.1-SNAPSHOT
        ????jar

        ????springboot-with-elk
        ????Demo?project?for?Spring?Boot

        ????
        ????????org.springframework.boot
        ????????spring-boot-starter-parent
        ????????2.1.0.RELEASE
        ?????????
        ????


        ????
        ????????UTF-8
        ????????UTF-8
        ????????1.8
        ????


        ????
        ????????
        ????????????org.springframework.boot
        ????????????spring-boot-starter-web
        ????????



        ????????
        ????????????net.logstash.logback
        ????????????logstash-logback-encoder
        ????????????5.2
        ????????



        ????????
        ????????????org.springframework.boot
        ????????????spring-boot-devtools
        ????????????runtime
        ????????

        ????????
        ????????????org.springframework.boot
        ????????????spring-boot-starter-test
        ????????????test
        ????????

        ????


        ????
        ????????
        ????????????
        ????????????????org.springframework.boot
        ????????????????spring-boot-maven-plugin
        ????????????

        ????????

        ????






        3.在resources包下創(chuàng)建logback-spring.xml,文件內(nèi)容如下:

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

        ????"org/springframework/boot/logging/logback/base.xml"?/>
        ?
        ????"LOGSTASH"?class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        ????????10.2.0.153:4560
        ????????"UTF-8"?class="net.logstash.logback.encoder.LogstashEncoder">
        ????????????{"appname":"first-elk-demo"}
        ????????
        ????
        ?
        ????"INFO">
        ????????"LOGSTASH"?/>
        ????????"CONSOLE"?/>
        ????
        ?
        ?




        4.創(chuàng)建mainclass,并運行項目

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

        /**
        ?*
        ?*?@author?admin
        ?*/
        @SpringBootApplication
        public?class?Application?implements?CommandLineRunner?{

        ????public?static?void?main(String[]?args)?{
        ????????SpringApplication.run(SpringbootWithElkApplication.class,?args);
        ????}

        ????@Override
        ????public?void?run(String...?args)?throws?Exception?{
        ????????Logger?logger?=?LoggerFactory.getLogger(SpringbootWithElkApplication.class);
        ????????for?(int?i?=?0;?i?????????????logger.info("Hello,Elk.?This?is?my?{}?time?to?see??you;",?i,?i);
        ????????}
        ????}
        }


        5.訪問kibana,
        創(chuàng)建索引:

        訪問discover

        6 總結

        到此,hello world的執(zhí)行成功了。更加詳細高層次的內(nèi)容還在學習中。歡迎大家一起學習進步。




        粉絲福利:實戰(zhàn)springboot+CAS單點登錄系統(tǒng)視頻教程免費領取

        ???

        ?長按上方微信二維碼?2 秒
        即可獲取資料



        感謝點贊支持下哈?


        瀏覽 58
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        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>
            综合色国产精品欧美在线| 亚洲日韩精品无码| 91丨牛牛丨国产人妻| 久久中文字幕电影| 国产精品外围| 久久免费成人| 白嫩无码| 2017天天干天天射| 狠狠狠狠狠狠操| 一区二区三区水蜜桃|