<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 5205字,需瀏覽 11分鐘

           ·

          2020-11-08 21:17

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

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

          ? 作者?|??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)境中應(yīng)設(shè)置為一個安全的ip
          http.port: 9200 # es服務(wù)的端口號
          discovery.zen.ping.unicast.hosts: [“10.2.0.151”, “10.2.0.152”, “10.2.0.153”] # 配置自動發(fā)現(xiàn)

          2.2復(fù)制替換此文件到兩個數(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服務(wù)會監(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服務(wù)器的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服務(wù)器的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 總結(jié)

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




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

          ???

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



          感謝點贊支持下哈?


          瀏覽 58
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕+乱码+中文字幕17c | 91视频在线 | 成人黄色在线免费 | 国产午夜精品电影 | 大香蕉乱伦网 |