日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

對接Kibana

如果您已經在Kibana上實現Elasticsearch日志可視化,想要將日志數據從Elasticsearch遷移到SLS,可以使用SLS提供的Elasticsearch兼容接口,無需改動業務代碼。

重要

本文檔為阿里云原創文檔,知識產權歸阿里云所有,由于本文檔旨在介紹阿里云與第三方產品交互的服務能力,因此可能會提及第三方公司或產品等名稱。

前提條件

  • 已創建Project、標準型Logstore并完成日志采集。具體操作,請參見創建項目Project、創建Logstore數據采集概述

  • 查詢日志前,已配置索引。具體操作,請參見創建索引

  • 已創建RAM用戶的AccessKey,并且為RAM用戶授予Logstore的查詢權限。具體操作,請參見RAM授權。

背景信息

Kibana是一款基于Elasticsearch的數據可視化和探索工具。您可以通過Kibana對Elasticsearch中的數據進行查詢、分析和可視化。對于已經習慣使用Kibana做日志查詢和可視化報表的用戶,日志服務提供了兼容Elasticsearch的接口,用戶可以使用這些兼容接口實現在Kibana中查詢和分析日志服務中的數據。

操作視頻

本視頻指導您使用Kibana訪問日志服務的Elasticsearch兼容接口。

工作原理

您需要在客戶端環境中部署Kibana、Proxy和Elasticsearch。

  • Kibana:用于查詢、分析和可視化展示數據。

  • Elasticsearch:用于存儲Kibana的Meta數據(主要為配置信息,數據量極?。?/p>

    由于Kibana的Meta信息經常需要更新,而日志服務不支持更新操作。因此需要部署一個Elasticsearch專門用于存儲Kibana的Meta數據。

  • Proxy:用于區分Kibana對Meta數據和日志服務Elasticsearch兼容接口的API請求,需要部署一個Proxy對Kibana的API請求進行路由。

image

步驟一:部署Elasticsearch、Kibana和Proxy

重要

建議服務器的內存為8G及以上。

使用Docker Compose部署

  1. 在服務器執行以下命令,創建一個名為sls-kibana的新目錄,在sls-kibana目錄下創建一個名為data子目錄。更改data目錄的權限,確保Elasticsearch容器具有對該目錄的讀、寫和執行權限。

    mkdir sls-kibana
    
    cd sls-kibana
    
    mkdir data
    chmod 777 data 
  2. sls-kibana目錄創建.env文件,內容如下,請根據實際參數修改。

    ES_PASSWORD=aStrongPassword  # 請根據實際情況修改
    
    SLS_ENDPOINT=cn-huhehaote.log.aliyuncs.com
    SLS_PROJECT=etl-dev-7494ab****
    SLS_ACCESS_KEY_ID=xxx
    SLS_ACCESS_KEY_SECRET=xxx
    #SLS_PROJECT_ALIAS=etl-dev # 可選,如果覺得SLS_PROJECT名字太長,可以設置一下別名
    #SLS_LOGSTORE_FILTERS="access*" # 可選,過濾哪些logstore自動創建index pattern,多個index pattern用逗號分隔,比如 "access*,error*",注意加上雙引號
    #KIBANA_SPACE=default # 可選,指定索引模式(index pattern)創建在哪個space下, 不存在則自動創建。
    
    # 如果有更多project,可以繼續加; 注意超過6個的話,docker-compose.yml中引用也要加
    #SLS_ENDPOINT2=cn-huhehaote.log.aliyuncs.com
    #SLS_PROJECT2=etl-dev2
    #SLS_ACCESS_KEY_ID2=xxx
    #SLS_ACCESS_KEY_SECRET2=xxx
    #SLS_PROJECT_ALIAS2=etl-dev2 # 可選,如果覺得SLS_PROJECT名字太長,可以設置一下別名
    #SLS_LOGSTORE_FILTERS2="test*log" # 可選,過濾哪些logstore自動創建index pattern創建,多個pattern用逗號分隔,比如 "access*,error*",注意加上雙引號
    #KIBANA_SPACE2=default # 可選,指定index parttern創建在哪個space下; 不存在則自動創建

    參數

    說明

    ES_PASSWORD

    Elasticsearch的密碼,也是Kibana的密碼。

    SLS_ENDPOINT

    Project的訪問域名,請參見管理Project。

    SLS_PROJECT

    日志服務的Project名稱,請參見管理Project。

    SLS_ACCESS_KEY_ID

    前提條件中創建的RAM用戶的AK。RAM用戶需要具備Logstore的查詢權限,請參見RAM授權

    SLS_ACCESS_KEY_SECRET

    前提條件中創建的RAM用戶的SK。RAM用戶需要具備Logstore的查詢權限,請參見RAM授權。

    SLS_PROJECT_ALIAS

    可選,如果SLS_PROJECT名稱過長,可以選擇設置一個別名。

    SLS_LOGSTORE_FILTERS

    可選,過濾哪些logstore自動創建index pattern,多個index pattern用逗號分隔,比如 "access*,error*",注意加上雙引號。

    KIBANA_SPACE

    可選,指定索引模式(index pattern)創建在哪個space下, 不存在則自動創建。

  3. sls-kibana目錄中創建docker-compose.yaml文件,內容如下。

    services:
      es:
        image: sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/elasticsearch:7.17.3
        environment:
          - "discovery.type=single-node"
          - "ES_JAVA_OPTS=-Xms2G -Xmx2G"
          - ELASTIC_USERNAME=elastic
          - ELASTIC_PASSWORD=${ES_PASSWORD}
          - xpack.security.enabled=true
        volumes:
          # TODO 這里的./data目錄需要提前建立, 確認已經mkdir data && chmod 777 data
          - ./data:/usr/share/elasticsearch/data
      kproxy:
        image: sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:2.1.2
        depends_on:
          - es
        environment:
          - ES_ENDPOINT=es:9200
    
          # 第一個sls project
          - SLS_ENDPOINT=${SLS_ENDPOINT}
          - SLS_PROJECT=${SLS_PROJECT}
          - SLS_LOGSTORE_FILTERS=${SLS_LOGSTORE_FILTERS}
          - KIBANA_SPACE=${KIBANA_SPACE}
          - SLS_PROJECT_ALIAS=${SLS_PROJECT_ALIAS}
          - SLS_ACCESS_KEY_ID=${SLS_ACCESS_KEY_ID}
          - SLS_ACCESS_KEY_SECRET=${SLS_ACCESS_KEY_SECRET}
    
          # 第二個sls project
          - SLS_ENDPOINT2=${SLS_ENDPOINT2}
          - SLS_PROJECT2=${SLS_PROJECT2}
          - SLS_LOGSTORE_FILTERS2=${SLS_LOGSTORE_FILTERS2}
          - KIBANA_SPACE2=${KIBANA_SPACE2}
          - SLS_PROJECT_ALIAS2=${SLS_PROJECT_ALIAS2}
          - SLS_ACCESS_KEY_ID2=${SLS_ACCESS_KEY_ID2}
          - SLS_ACCESS_KEY_SECRET2=${SLS_ACCESS_KEY_SECRET2}
    
          - SLS_ENDPOINT3=${SLS_ENDPOINT3}
          - SLS_PROJECT3=${SLS_PROJECT3}
          - SLS_LOGSTORE_FILTERS3=${SLS_LOGSTORE_FILTERS3}
          - KIBANA_SPACE3=${KIBANA_SPACE3}
          - SLS_PROJECT_ALIAS3=${SLS_PROJECT_ALIAS3}
          - SLS_ACCESS_KEY_ID3=${SLS_ACCESS_KEY_ID3}
          - SLS_ACCESS_KEY_SECRET3=${SLS_ACCESS_KEY_SECRET3}
    
          - SLS_ENDPOINT4=${SLS_ENDPOINT4}
          - SLS_PROJECT4=${SLS_PROJECT4}
          - SLS_LOGSTORE_FILTERS4=${SLS_LOGSTORE_FILTERS4}
          - KIBANA_SPACE4=${KIBANA_SPACE4}
          - SLS_PROJECT_ALIAS4=${SLS_PROJECT_ALIAS4}
          - SLS_ACCESS_KEY_ID4=${SLS_ACCESS_KEY_ID4}
          - SLS_ACCESS_KEY_SECRET4=${SLS_ACCESS_KEY_SECRET4}
    
          - SLS_ENDPOINT5=${SLS_ENDPOINT5}
          - SLS_PROJECT5=${SLS_PROJECT5}
          - SLS_LOGSTORE_FILTERS5=${SLS_LOGSTORE_FILTERS5}
          - KIBANA_SPACE5=${KIBANA_SPACE5}
          - SLS_PROJECT_ALIAS5=${SLS_PROJECT_ALIAS5}
          - SLS_ACCESS_KEY_ID5=${SLS_ACCESS_KEY_ID5}
          - SLS_ACCESS_KEY_SECRET5=${SLS_ACCESS_KEY_SECRET5}
    
          - SLS_ENDPOINT6=${SLS_ENDPOINT6}
          - SLS_PROJECT6=${SLS_PROJECT6}
          - SLS_LOGSTORE_FILTERS6=${SLS_LOGSTORE_FILTERS6}
          - KIBANA_SPACE6=${KIBANA_SPACE6}
          - SLS_PROJECT_ALIAS6=${SLS_PROJECT_ALIAS6}
          - SLS_ACCESS_KEY_ID6=${SLS_ACCESS_KEY_ID6}
          - SLS_ACCESS_KEY_SECRET6=${SLS_ACCESS_KEY_SECRET6}
          # 如有更多,可以繼續加,最多255個
      kibana:
        image: sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kibana:7.17.3
        depends_on:
          - kproxy
        environment:
          - ELASTICSEARCH_HOSTS=http://kproxy:9201
          - ELASTICSEARCH_USERNAME=elastic
          - ELASTICSEARCH_PASSWORD=${ES_PASSWORD}
          - XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED=true
        ports:
          - "5601:5601"
    
      # 這個服務組件是可選的,作用是自動創建kibana index pattern
      index-patterner:
        image: sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:2.1.2
        command: /usr/bin/python3 -u /workspace/create_index_pattern.py
        depends_on:
          - kibana
        environment:
          - KPROXY_ENDPOINT=http://kproxy:9201
          - KIBANA_ENDPOINT=http://kibana:5601
          - KIBANA_USER=elastic
          - KIBANA_PASSWORD=${ES_PASSWORD}
    
          - SLS_PROJECT_ALIAS=${SLS_PROJECT_ALIAS}
          - SLS_ACCESS_KEY_ID=${SLS_ACCESS_KEY_ID}
          - SLS_ACCESS_KEY_SECRET=${SLS_ACCESS_KEY_SECRET}
    
          - SLS_PROJECT_ALIAS2=${SLS_PROJECT_ALIAS2}
          - SLS_ACCESS_KEY_ID2=${SLS_ACCESS_KEY_ID2}
          - SLS_ACCESS_KEY_SECRET2=${SLS_ACCESS_KEY_SECRET2}
    
          - SLS_PROJECT_ALIAS3=${SLS_PROJECT_ALIAS3}
          - SLS_ACCESS_KEY_ID3=${SLS_ACCESS_KEY_ID3}
          - SLS_ACCESS_KEY_SECRET3=${SLS_ACCESS_KEY_SECRET3}
    
          - SLS_PROJECT_ALIAS4=${SLS_PROJECT_ALIAS4}
          - SLS_ACCESS_KEY_ID4=${SLS_ACCESS_KEY_ID4}
          - SLS_ACCESS_KEY_SECRET4=${SLS_ACCESS_KEY_SECRET4}
    
          - SLS_PROJECT_ALIAS5=${SLS_PROJECT_ALIAS5}
          - SLS_ACCESS_KEY_ID5=${SLS_ACCESS_KEY_ID5}
          - SLS_ACCESS_KEY_SECRET5=${SLS_ACCESS_KEY_SECRET5}
    
          - SLS_PROJECT_ALIAS6=${SLS_PROJECT_ALIAS6}
          - SLS_ACCESS_KEY_ID6=${SLS_ACCESS_KEY_ID6}
          - SLS_ACCESS_KEY_SECRET6=${SLS_ACCESS_KEY_SECRET6}
    
          # 如有更多,可以繼續加,最多255個
  4. 執行以下命令,啟動服務。

    docker compose up -d
  5. 執行以下命令,查看服務狀態。

    docker compose ps
  6. 部署完成后,在瀏覽器中輸入http://${部署Kibana的IP地址}:5601,進入Kibana的登錄頁面,輸入第一步中設置的Elasticsearch的用戶名和密碼。

    重要

    必須在服務器的安全組規則中添加5601端口,請參見添加安全組規則

    http://${部署Kibana的IP地址}:5601

    image

使用Helm部署

前提條件

確保阿里云容器服務 Kubernetes 版ACK集群中有以下組件。查看已安裝組件的操作步驟,請參見管理組件

操作步驟

  1. 創建命名空間(Namespace)。

    # 創建namespace
    kubectl create namespace sls-kibana
  2. 創建并編輯values.yaml文件,內容如下,請根據實際情況修改。

    kibana:
      ingressClass: nginx # 根據實際安裝的ingress controller修改
      # 根據ack集群->運維管理->組件管理下搜ingress,查看已安裝的ingress控制臺確定該值
      # ALB Ingress Controller 設置為alb
      # MSE Ingress Controller 設置為mse
      # Nginx Ingress Controller 設置為nginx
      ingressDomain: #可以為空,如果需要通過域名訪問kibana,可以設置該值
      ingressPath: /kibana/ # 必填,訪問時的子路徑
      # 如果ingressDomain非空, 那么ingressPath支持設置為/
      #i18nLocale: en # 設置Kibana的語言,默認為英文,如果需要中文可以設置值為zh-CN
    
    elasticsearch:
      password: aStrongPass  # 請根據實際情況修改es的密碼,同時也是kibana的訪問密碼,對應賬號為elastic
      #diskZoneId: cn-hongkong-c # 指定es使用的云盤所在的az。不設置的情況下az會系統選擇
    
    repository:
      region: cn-hangzhou
      # 鏡像所在區域,中國固定設置為cn-hangzhou 海外固定設置為ap-southeast-1;會使用公網拉取鏡像
    
    sls:
      - project: k8s-log-c5****** # sls的project
        endpoint: cn-huhehaote.log.aliyuncs.com # sls project對應的endpoint
        accessKeyId: 具有sls訪問權限的accessKeyId
        accessKeySecret: 具有sls訪問權限的accessKeySecret
      #  alias: etl-logs # 可選,如果覺得project名在kibana中顯示太長,可以設置別名
      #  kibanaSpace: default  # 可選,指定index pattern創建在哪個space下; 不存在則自動創建
      #  logstoreFilters: "*" # 可選,過濾哪些logstore自動創建index pattern創建,多個pattern用逗號分隔,比如 "access*,error*",注意加上雙引號。
    
      # 如果有第二個繼續按上面的格式添加
      #- project: etl-dev2 # sls的project
      #  endpoint: cn-huhehaote.log.aliyuncs.com # sls project對應的endpoint
      #  accessKeyId: 具有sls訪問權限的accessKeyId
      #  accessKeySecret: 具有sls訪問權限的accessKeySecret
      #  alias: etl-logs2 # 可選,如果覺得project名在kibana中顯示太長,可以設置別名
      #  kibanaSpace: default  # 可選,指定index pattern創建在哪個space下; 不存在則自動創建
      #  logstoreFilters: "*" # 可選,過濾哪些logstore自動創建index pattern創建,多個pattern用逗號分隔,比如 "access*,error*",注意加上雙引號
    

    參數說明

    說明

    kibana.ingressClass

    根據實際安裝的ingress controller修改,查看組件的步驟請參見管理組件。

    • ALB Ingress Controller:設置為alb

    • MSE Ingress Controller:設置為mse

    • Nginx Ingress Controller:設置為nginx

    kibana.ingressDomain

    可以為空,如果需要通過域名訪問kibana,需要設置該值。

    repository.region

    鏡像所在區域,中國固定設置為cn-hangzhou,海外固定設置為ap-southeast-1,會使用公網拉取鏡像。

    kibana.ingressPath

    訪問時的子路徑。如果ingressDomain非空, 那么ingressPath支持設置為/。

    elasticsearch.password

    請根據實際情況修改Elasticsearch的密碼,同時也是Kibana的訪問密碼,Elasticsearch賬號為elastic。

    sls.project

    日志服務的Project名稱,請參見管理Project

    sls.endpoint

    Project的訪問域名,請參見管理Project。

    sls.accessKeyId

    前提條件中創建的RAM用戶的AK。RAM用戶需要具備Logstore的查詢權限,請參見RAM授權。

    sls.accessKeySecret

    前提條件中創建的RAM用戶的SK。RAM用戶需要具備Logstore的查詢權限,請參見RAM授權。

    sls.alias

    可選,如果Project名在Kibana中顯示太長,可以設置別名。

    sls.kibanaSpace

    可選,指定索引模式(index pattern)創建在哪個space下, 不存在則自動創建。

    sls.logstoreFilters

    可選,過濾哪些logstore自動創建index pattern,多個index pattern用逗號分隔,比如 "access*,error*",注意加上雙引號。

  3. 執行以下命令,使用Helm部署。

    helm install sls-kibana https://sls-kproxy.oss-cn-hangzhou.aliyuncs.com/sls-kibana-1.5.2 -f values.yaml --namespace sls-kibana
  4. 部署完成后,在瀏覽器中輸入http://${ingress地址}/kibana/,進入Kibana的登錄頁面,輸入第一步中設置的Elasticsearch的用戶名和密碼。

    http://${ingress地址}/kibana/ 

    image

使用Docker部署

第一步:部署Elasticsearch

重要

使用Docker部署,必須先安裝和啟動Docker,請參見安裝Docker。

  1. 在服務器上執行如下命令,部署Elasticsearch。

    sudo docker pull sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/elasticsearch:7.17.3
    
    sudo mkdir /data  # Elasticsearch數據的存儲目錄, 請根據實際情況修改。
    sudo chmod 777 /data # 配置權限。
    
    sudo docker run -d --name es -p 9200:9200 \
               -e "discovery.type=single-node" \
               -e "ES_JAVA_OPTS=-Xms2G -Xmx2G" \
               -e ELASTIC_USERNAME=elastic \
               -e ELASTIC_PASSWORD=passwd \
               -e xpack.security.enabled=true \
               -v /data:/usr/share/elasticsearch/data \
               sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/elasticsearch:7.17.3

    參數

    說明

    ELASTIC_USERNAME

    登錄Elasticsearch的用戶名,固定為elastic。

    ELASTIC_PASSWORD

    登錄Elasticsearch的密碼。Elasticsearch的密碼必須是字符串類型。

    /data

    Elasticsearch在物理機上的數據存儲位置,請根據情況修改。

  2. 部署完成后,請執行如下命令驗證Elasticsearch是否部署成功。如果使用公網IP,必須在服務器的安全組規則中添加9200端口,請參見添加安全組規則。

    curl http://${Elasticsearch所在機器的IP地址}:9200

    如果返回結果是包含security_exception的JSON格式數據,則表示Elasticsearch已經成功部署。

    {"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}

第二步:部署Proxy

Kibana對接日志服務時,支持對接單個或多個Project,您需要在部署Proxy時,添加對應的Project信息。對應的部署示例如下所示。

單個Project

sudo docker pull sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:2.1.2

sudo docker run  -d --name proxy \
            -e ES_ENDPOINT=${Elasticsearch所在機器的IP地址}:9200 \
            -e SLS_ENDPOINT=https://prjA.cn-guangzhou.log.aliyuncs.com/es/ \
            -e SLS_PROJECT=prjA \
            -e SLS_ACCESS_KEY_ID=${aliyunAccessId} \
            -e SLS_ACCESS_KEY_SECRET=${aliyunAccessKey} \
            -p 9201:9201 \
            -ti sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:2.1.2

多個Project

    重要
    • 最多可添加32個Project。

    • SLS_PROJECT、SLS_ENDPOINT、SLS_ACCESS_KEY_ID、SLS_ACCESS_KEY_SECRET為第一個Project相關的變量名稱。從第二個Project開始,其相關變量名稱需加數字后綴,例如SLS_PROJECT2、SLS_ENDPOINT2。

    • 如果后面某Project的相關變量取值與第一個Project相同,則該Project對應的Endpoint、AccessKey可省略配置。

sudo docker pull sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:2.1.2

sudo docker run  -d --name proxy \
            -e ES_ENDPOINT=${Elasticsearch所在機器的IP地址}:9200 \
            -e SLS_ENDPOINT=https://prjA.cn-guangzhou.log.aliyuncs.com/es/ \
            -e SLS_ENDPOINT2=https://prjB.cn-guangzhou.log.aliyuncs.com/es/ \ 
            -e SLS_PROJECT=prjA \
            -e SLS_PROJECT2=prjB \
            -e SLS_ACCESS_KEY_ID=${aliyunAccessId} \ 
            -e SLS_ACCESS_KEY_SECRET=${aliyunAccessKey} \ 
            -e SLS_ACCESS_KEY_ID2=${aliyunAccessId} \ #如果值和SLS_ACCESS_KEY_ID相同,無需配置。
            -e SLS_ACCESS_KEY_SECRET2=${aliyunAccessKey} \ #如果值和SLS_ACCESS_KEY_SECRET相同,無需配置。
            -p 9201:9201 \
            -ti sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:2.1.2
  • 示例1

    對接2個Project(prjA和prjB),且使用相同的AccessKey,則示例如下:

    sudo docker pull sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:2.1.2
    sudo docker run  -d --name proxy \
                -e ES_ENDPOINT=${Elasticsearch所在機器的IP地址}:9200 \
                -e SLS_ENDPOINT=https://prjA.cn-guangzhou.log.aliyuncs.com/es/ \
                -e SLS_ENDPOINT=https://prjB.cn-guangzhou.log.aliyuncs.com/es/ \
                -e SLS_PROJECT=prjA \
                -e SLS_PROJECT2=prjB \
                -e SLS_ACCESS_KEY_ID=${aliyunAccessId} \
                -e SLS_ACCESS_KEY_SECRET=${aliyunAccessKey} \
                -p 9201:9201 \
                -ti sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:2.1.2
  • 示例2

    對接3個Project(prjA、prjB、prjC),其中prjA和prjC使用相同的AccessKey,則示例如下:

    sudo docker run  -d --name proxy \
                -e ES_ENDPOINT=${Elasticsearch所在機器的IP地址}:9200 \
                -e SLS_ENDPOINT=https://prjA.cn-guangzhou.log.aliyuncs.com/es/ \
                -e SLS_ENDPOINT2=https://prjB.cn-guangzhou.log.aliyuncs.com/es/ \
                -e SLS_ENDPOINT3=https://prjC.cn-guangzhou.log.aliyuncs.com/es/ \
                -e SLS_PROJECT=prjA \
                -e SLS_PROJECT2=prjB \
                -e SLS_PROJECT3=prjC \
                -e SLS_ACCESS_KEY_ID=${aliyunAccessId} \
                -e SLS_ACCESS_KEY_SECRET=${aliyunAccessKey} \
                -e SLS_ACCESS_KEY_ID2=${aliyunAccessId} \
                -e SLS_ACCESS_KEY_SECRET2=${aliyunAccessKey} \            
                -p 9201:9201 \
                -ti sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kproxy:2.1.2

重要參數說明如下表所示。

參數

說明

ES_ENDPOINT

Elasticsearch的訪問地址,格式為${Elasticsearch所在機器的IP地址}:9200。

SLS_ENDPOINT

數據訪問地址,格式為https://${project}.${sls-endpoint}/es/。其中${project}為Project名稱,${sls-endpoint}為日志服務Project的訪問域名。更多信息,請參見服務入口。例如:https://etl-guangzhou.cn-guangzhou.log.aliyuncs.com/es/

重要

必須使用HTTPS協議。

SLS_PROJECT

日志服務的Project名稱,請參見管理Project。

SLS_ACCESS_KEY_ID

阿里云AccessKey ID。

建議使用RAM用戶的AccessKey,該RAM用戶需具備Logstore的數據查詢權限。您可以通過權限助手,配置權限。具體操作,請參見配置權限助手。AccessKey的獲取方法,請參見訪問密鑰。

SLS_ACCESS_KEY_SECRET

阿里云AccessKey Secret。

建議使用RAM用戶的AccessKey,該RAM用戶需具備Logstore的數據查詢權限。您可以通過權限助手,配置權限。具體操作,請參見配置權限助手。AccessKey的獲取方法,請參見訪問密鑰。

部署完成后,您可以執行如下命令驗證是否部署成功。如果使用公網IP,必須在服務器的安全組規則中添加9201端口,請參見添加安全組規則。

curl http://${Proxy所在機器IP地址}:9201

如果返回結果中包含security_exception的JSON格式數據,則表示Proxy已經成功部署。

{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}

第三步:部署Kibana

參見如下示例,部署Kibana。本文以Kibana 7.17.3版本為例。

sudo docker pull  sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kibana:7.17.3

sudo docker run -d --name kibana \
            -e ELASTICSEARCH_HOSTS=http://${Proxy所在機器的IP地址}:9201 \
            -e ELASTICSEARCH_USERNAME=elastic \
            -e ELASTICSEARCH_PASSWORD=passwd \
            -e XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED=true \
            -p 5601:5601 \
            sls-registry.cn-hangzhou.cr.aliyuncs.com/kproxy/kibana:7.17.3

參數

說明

ELASTICSEARCH_HOSTS

Proxy的訪問地址,格式為http://${proxy所在機器的IP地址}:9201。

ELASTICSEARCH_USERNAME

登錄Kibana的用戶名。

需與您在部署Elasticsearch時設置的Elasticsearch用戶名一致。

ELASTICSEARCH_PASSWORD

登錄Kibana的密碼。

需與您在部署Elasticsearch時設置的Elasticsearch密碼一致。

部署完成后,在瀏覽器中輸入http://${部署Kibana的IP地址}:5601,進入Kibana的登錄頁面,輸入第一步中設置的Elasticsearch的用戶名和密碼。

重要

必須在服務器的安全組規則中添加5601端口,請參見添加安全組規則。

http://${部署Kibana的IP地址}:5601

image

步驟二:訪問Kibana

查詢和分析數據

  1. 在左側導航欄中,選擇Analytics>Discover

    重要

    使用Kibana和Elasticsearch兼容接口分析日志服務數據時,目前只支持使用Discover和Dashboard這兩個模塊。

    image

  2. 在頁面左上角選擇目標索引,在頁面右上角選擇時間范圍,查詢日志數據。

    image.png

手動配置IndexPattern(可選)

重要

使用Docker Compose部署或使用Helm部署的情況下默認不需要手動創建Index Pattern。如果使用Docker手動部署,需要手工創建一下Index Pattern。

  1. 在左側導航欄中,選擇Management > Stack Management。image..png

  2. 在左側導航欄中,選擇Kibana > Index Patterns。

  3. 首次使用時,請先在提示框中單擊create an index pattern against hidden or system indices.image.png

    說明

    在Index pattern列表中看不到數據是正常的,日志服務的logstore映射到Kibana中的Index patterns需要手動創建。

  4. Create index pattern窗口中,配置相關參數。

    image.png

    參數名稱

    說明

    Name

    索引名稱,該名稱的命名規則為${日志服務Project名稱}.${Logstore名稱}。

    重要

    索引名稱僅支持精準匹配,不支持使用通配符,即您需要輸入完整的索引名稱。

    例如Project名稱為etl-guangzhou,Logstore名稱為es_test22,那么此處名稱為etl-guangzhou.es_test22

    Timestamp field

    時間戳字段,固定選擇為@timestamp

  5. 單擊Create index pattern

常見問題

使用Docker Compose部署,無法訪問Kibana?

  1. sls-kibana目錄里,執行docker compose ps查看容器的啟動狀態STATUS,確保都處于UP狀態。

    image.png

  2. 如果三個容器的狀態都為UP,則查看每個容器的錯誤日志。

    docker logs sls-kibana_es_1 # 查看es啟動日志
    docker logs sls-kibana_kproxy_1 # 查看kproxy啟動日志
    docker logs sls-kibana_kibana_1 # 查看kibana啟動日志

使用Helm部署,無法訪問Kibana?

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群。

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇工作負載 > 有狀態

  3. 在頁面頂端選擇命名空間為sls-kibana。檢查Elasticsearch、Kibana、Kproxy是否已經正常啟動。查看和編輯有狀態工作負載的狀態、批量重新部署應用的步驟,請參見批量重新部署應用。

如何卸載helm?

helm uninstall sls-kibana --namespace sls-kibana

Kibana中如何顯示高精度時間?

  1. 確保SLS中的時間使用高精度時間采集或上報,通過配置 納秒精度時間戳 ,支持納秒級精度時間戳。

  2. 在確保高精度時間采集后,需在字段索引中添加類型為long__time_ns_part__納秒字段索引配置。由于Kibana的部分查詢可能被轉換為SQL執行,因此需要在SQL結果中包含高精度時間

如何升級Helm Chart?

Helm Chart升級和install類似,把install命令換成upgrade即可。values.yaml可以復用之前install時的文件。

helm upgrade sls-kibana https://sls-kproxy.oss-cn-hangzhou.aliyuncs.com/sls-kibana-1.5.2.tgz -f values.yaml --namespace sls-kibana