Elastic Stack-Kibana使用介紹(七)


一、前言

    主要來講述一下Kibana使用以及上生產時候的一些配置,要是大家對這塊比較感興趣我到時候也可以在結合Grafana做一些圖表方面的介紹,后面等介紹完Beats以后我去阿里雲租幾台機器,給大家來個ELK方面的實戰,然后要是時間充分在和大家一起學習下Elasticsearch源碼,廢話不多說開始嘍;

二、Kibana配置

    主要介紹一些常用的配置,剩下一些冷門的大家可以查看下官方配置;

    server.port:

    默認值: 5601 該配置指定Kibana 使用的端口號;

    server.host:

    默認值: "localhost" 指定后端服務器的主機地址;

    server.maxPayloadBytes:

    默認值: 1048576 服務器請求的最大負載,單位字節;

    server.name:

    默認值: "主機名" Kibana 實例對外展示的名稱;

    elasticsearch.url:

    默認值: "http://localhost:9200" 用來處理所有查詢的 Elasticsearch 實例的 URL ;

    kibana.index:

    默認值: ".kibana" Kibana 使用 Elasticsearch 中的索引來存儲保存的檢索,可視化控件以及儀表板。如果沒有索引,Kibana 會創建一個新的索引;

    elasticsearch.requestTimeout:

    默認值: 30000 等待后端或 Elasticsearch 的響應時間,單位微秒,該值必須為正整數;

    logging.dest:

    默認值: stdout指定 Kibana 日志輸出的文件;

    以上基本就是常用的甚至一些都用不到,如果大家想啟用SSL大家去參考下官方配置,我將這塊的都已經默認關閉了;接下來我們主要來介紹下生產線上一些相關方面的配置,之前我們介紹Elasticsearch 的時候只介紹兩種主要的節點,還有一個節點類型沒有介紹,他就是協調節點,該節點作用負載平衡器,該節點處理傳入的HTTP請求,根據需要將操作重定向到群集中的其他節點,並收集並返回結果;我們主要利用這個特性來搭建Kibana生產的部署架構,當然你直接配置也是可以,這個只是推薦,我們主要利用這個節點來協調Kibana 的請求,獲取返回我們需要數據,官方有個名字Coordinating only node,整體架構如下圖:

    

     接下來我們結合上面架構我們需要如何配置Elasticsearch,

     1.在與Kibana相同的計算機上安裝Elasticsearch客戶端節點;

     2.通過設置將節點配置為僅協調節點:

        node.master: false;

        node.data: false;

        node.ingest: false;

     3.將客戶端節點添加到elasticsearch集群;

        cluster.name: "my_cluster";

     4.配置network.host(對Kibana HTTP連接)和transport.host(需要連接的到集群上的節點):

        network.host: localhost;

        http.port: 9200;

        transport.host: YOUR_IP;

        transport.tcp.port: 9300;

     5.配置kibana;

        elasticsearch.url: "http://localhost:9200";

     接下來我們思考下這樣架構的好處,協調節點不參與選主環節,減少了選主時間,通過協調節點專門處理監控或者我們需要的一些數據的請求,使其他節點專注於線上請求,提升了效率,要說有什么不好,那就是需要多一台機器;接下來我們來通過Kibana做一些圖表;

三、Kibana入門實戰

      Elasticsearch集群搭建和Logstash相關下載和安裝就不講解了,我們主要借助Kibana來分析120年奧運會運動員或者國家一些情況,數據我是在這個網址下載的,准確性方面我沒去核對,我們主要借助這些數據來學習Kibana就好了。整體流程是通過Logstash講CSV文件導入到Elasticsearch,然后借助Kibana分析,我把Logstash配置粘貼到下面,通過使用logstash.bat -f ../config/logstash.conf啟動起來就可以將文件導入到Elasticsearch中,在啟動起來之前我們還需要在Elasticsearch建立模板,當然也可以通過Logstash指定模板這個有興趣自己百度下,我也將Mapping模板放到下面;

input {

  file{
  
    path => ["C:/Users/wangt/Desktop/athlete_events.csv"]
    
    # 設置多長時間檢測文件是否修改(單位:秒)
    stat_interval => 1
    
    # 監聽文件的起始位置,默認是end
    start_position => beginning
    
    
    # 設置多長時間會寫入讀取的位置信息(單位:秒)
    sincedb_write_interval => 5
  }
}


filter {
    #去除每行記錄中需要過濾的NA,替換為空字符串
    mutate{
        gsub => [ "message", "NA", "" ]   
    }

      csv {
        # 每行記錄的字段之間以,分隔
        separator => ","
        
        columns => ["name","sex","age","height","weight","team","noc","games","year","season","city","sport","event","medal"]
        
        # 過濾掉默認加上的字段
        remove_field => ["host", "path","message"]
    } 
}


output {
       elasticsearch {
        hosts => ["127.0.0.1:9200","127.0.0.1:9201","127.0.0.1:9202"]
        index => "olympicawards"
    }
}
View Code
{
    "mappings":{
        "doc":{
            "properties":{
                "@timestamp":{
                    "type":"date"
                },
                "@version":{
                    "type":"keyword"
                },
                "name":{
                    "type":"keyword"
                },
                "sex":{
                    "type":"keyword"
                },
                "age":{
                    "type":"integer"
                },
                "weight":{
                    "type":"float"
                },
                "team":{
                    "type":"keyword"
                },
                "noc":{
                    "type":"keyword"
                },
                "games":{
                    "type":"keyword"
                },
                "year":{
                    "type":"integer"
                },
                "season":{
                    "type":"keyword"
                },
                "sport":{
                    "type":"keyword"
                },
                "event":{
                    "type":"keyword"
                },
                "medal":{
                    "type":"keyword"
                }
            }
        }
    }
}
View Code

      以上就是大家需要的模板,這里不做特別復雜儀表盤等ELK實戰的時候我們來做一些比較復雜東西,但是本質上是不變的,只要對DSL足夠了解,構建儀表盤都是分分鍾的事,我們先來整體介紹下Kibana的整體界面,然后在做一個簡單的儀表盤就完成這篇博客;

      

     主要有7大模塊,介紹下每個模塊的作用:

     Discover:以頁面的形式展示Elasticsearch中的數據,可以做一些過濾、搜索等等操作;

     Visualize:根據Elasticsearch創建可視化的界面;

     Dashboard:儀表盤可以將可視化界面組合在一些,類似現在的比較流行的大屏界面一樣;

     Timelion:時間序列數據可視化工具,按照時間檢索數據;

     Dev Tools:通過DSL進行查詢數據的工具;

     Monitoring:監控數據Elasticsearch、Logstash和Beats運行狀況的工具;

     Management:Kibana管理索引以及一些參數配置地方;

     接下來我們使用Visualize和Dashboard做圖表,通過Visualize構建相關類型的圖表,有如下類型:

     

     選中想要構建類型,通過添加一些類型或者增加一些過濾條件來展示數據;

     

     最終通過保存按鈕保存起來,在構建Dashboard時候使用,

     

     點擊增加按鈕,選擇在Visualize保存的圖表,然后通過調整位置得到自己想要的界面,最終保存下來;

     

     最終就完成對整個索引信息的圖表化展示。

四、結束

     歡迎大家加群438836709,歡迎大家關注我!

     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM