Elastic Stack-Kibana使用介紹(七)

1、前言html

    主要來說述一下Kibana使用以及上生產時候的一些配置,要是你們對這塊比較感興趣我到時候也能夠在結合Grafana作一些圖表方面的介紹,後面等介紹完Beats之後我去阿里雲租幾臺機器,給你們來個ELK方面的實戰,而後要是時間充分在和你們一塊兒學習下Elasticsearch源碼,廢話很少說開始嘍;node

2、Kibana配置後端

    主要介紹一些經常使用的配置,剩下一些冷門的你們能夠查看下官方配置;服務器

    server.port:架構

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

    server.host:elasticsearch

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

    server.maxPayloadBytes:ide

    默認值: 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作一些圖表;

3、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保存的圖表,而後經過調整位置獲得本身想要的界面,最終保存下來;

     

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

4、結束

     歡迎你們加羣438836709,歡迎你們關注我!

     

相關文章
相關標籤/搜索