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

Nginx Ingress訪問日志分析與監(jiān)控

阿里云Ingress組件除了提供外部可訪問的URL、負(fù)載均衡、SSL、基于名稱的虛擬主機(jī)外,還支持將所有您的HTTP請求日志記錄到標(biāo)準(zhǔn)輸出中。您可以在創(chuàng)建集群時啟用日志服務(wù),在阿里云日志服務(wù)SLS查看Nginx Ingress的訪問日志分析報表和監(jiān)控Nginx Ingress實時狀態(tài)。本文介紹Nginx Ingress訪問日志的部署及查看。

索引

前提條件

  1. 安裝日志組件。

    集群創(chuàng)建時,默認(rèn)會安裝日志組件,如未安裝請參見通過DaemonSet采集Kubernetes容器文本日志進(jìn)行手動安裝。

  2. 升級Log Controller。

    通過執(zhí)行kubectl edit deployment alibaba-log-controller -n kube-system命令修改鏡像版本進(jìn)行升級。

開啟Nginx Ingress日志采集配置

方式一:通過ACK控制臺開啟

  1. 登錄容器服務(wù)管理控制臺,在左側(cè)導(dǎo)航欄選擇集群

  2. 集群列表頁面,單擊目標(biāo)集群名稱,然后在左側(cè)導(dǎo)航欄,選擇運維管理 > 組件管理

  3. 組件管理頁面,單擊網(wǎng)絡(luò)頁簽,找到Nginx Ingress Controller組件,然后在組件所在卡片的右下角單擊image.png,選擇開啟日志,最后根據(jù)頁面提示完成日志開啟。

方式二:通過命令行開啟

日志采集配置針對ACK進(jìn)行了CRD擴(kuò)展,您可以直接部署AliyunLogConfig的CRD配置,Log Controller會自動創(chuàng)建日志服務(wù)相關(guān)采集配置和報表資源。

重要

部署AliyunLogConfig的CRD時需要注意以下事項:

  • 對于已經(jīng)正在運行的nginx-ingress-controller, 創(chuàng)建AliyunLogConfig之后,需要重建nginx-ingress-controller Pod,使其采集日志生效。

  • 請確保日志組件alibaba-log-controller版本不低于0.2.0.0-76648ee-aliyun。更新版本后,若已經(jīng)應(yīng)用了該CRD配置,請刪除該配置并重新應(yīng)用。

  • 部署AliyunLogConfig的CRD只針對ACK默認(rèn)Ingress Controller中的日志格式生效。若您修改過Ingress Controller的訪問日志格式,請修改CRD配置中的正則表達(dá)式提取processor_regex部分。具體操作,請參見通過DaemonSet-CRD方式采集容器日志

  • IncludeLabel為Docker inspect中的Label信息。

  • Kubernetes中的命名空間和容器名會映射到Docker的Label中,分別為io.kubernetes.pod.namespaceio.kubernetes.container.name。例如,您創(chuàng)建的Pod所屬命名空間為backend-prod,容器名為worker-server。

    • 如果配置Label白名單為io.kubernetes.pod.namespace : backend-prod,則收集對應(yīng)Pod中所有容器的日志。

    • 如果配置Label白名單為io.kubernetes.container.name : worker-server,則收集對應(yīng)容器的日志。

  • Kubernetes不建議使用除io.kubernetes.pod.namespaceio.kubernetes.container.name之外的其他Label。其他情況請使用IncludeEnv或ExcludeEnv,具體操作,請參見通過DaemonSet-控制臺方式采集容器標(biāo)準(zhǔn)輸出

如果不需要Ingress日志采集,刪除AliyunLogConfig配置即可。

  1. 創(chuàng)建配置文件k8s-nginx-ingress.yaml,YAML文件完整樣例如下。

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      # 配置名稱,不能夠重名。
      name: k8s-nginx-ingress
      # 命名空間,放置于ingress controller所在命名空間,請按需修改。
      namespace: kube-system
    spec:
      # logstore名稱。
      logstore: nginx-ingress
      # 產(chǎn)品Code,請勿更改。
      productCode: k8s-nginx-ingress
      # 詳細(xì)配置。
      logtailConfig:
        inputType: plugin
        # logtail配置名稱,需要和metadata.name保持一致。
        configName: k8s-nginx-ingress
        inputDetail:
          plugin:
            inputs:
              - type: service_docker_stdout
                detail:
                  IncludeLabel: # docker容器中的標(biāo)簽信息。
                    # 容器名稱為nginx-ingress-controller。
                    # 如果配置多個ingress controller請注意預(yù)防日志重復(fù)采集,詳細(xì)請閱讀注意事項中IncludeLabel釋義。
                    io.kubernetes.container.name: nginx-ingress-controller
                  Stderr: true
                  Stdout: true
            processors:
              - type: processor_regex # 使用正則表達(dá)式提取字段。
                detail:
                  KeepSource: false
                  Keys: # 提取出的字段名稱,按照順序排列。
                    - client_ip
                    - x_forward_for
                    - remote_user
                    - time
                    - method
                    - url
                    - version
                    - status
                    - body_bytes_sent
                    - http_referer
                    - http_user_agent
                    - request_length
                    - request_time
                    - proxy_upstream_name
                    - upstream_addr
                    - upstream_response_length
                    - upstream_response_time
                    - upstream_status
                    - req_id
                    - host
                    - proxy_alternative_upstream_name
                  NoKeyError: true
                  NoMatchError: true
                  # 提取字段使用的正則表達(dá)式。符合該格式的日志,會將每個捕獲組中內(nèi)容映射到對應(yīng)的字段上。
                  Regex: ^(\S+)\s-\s\[([^]]+)]\s-\s(\S+)\s\[(\S+)\s\S+\s"(\w+)\s(\S+)\s([^"]+)"\s(\d+)\s(\d+)\s"([^"]*)"\s"([^"]*)"\s(\S+)\s(\S+)+\s\[([^]]*)]\s(\S+?(?:,\s\S+?)*)\s(\S+?(?:,\s\S+?)*)\s(\S+?(?:,\s\S+?)*)\s(\S+?(?:,\s\S+?)*)\s(\S+)\s*(\S*)\s*\[*([^]]*)\]*.*
                  SourceKey: content
  2. 執(zhí)行以下命令,部署AliyunLogConfig的CRD配置。

    kubectl apply -f k8s-nginx-ingress.yaml

查看Nginx Ingress日志與報表

  1. 登錄日志服務(wù)控制臺

  2. 在Project列表區(qū)域,選擇創(chuàng)建集群時設(shè)置的日志Project,單擊名稱進(jìn)入日志Project頁面(默認(rèn)創(chuàng)建的project名稱為k8s-log-{cluster-id})。

  3. 在左側(cè)導(dǎo)航欄單擊Nginx Ingress.png儀表盤圖標(biāo),然后在儀表盤列表中選擇儀表盤名稱,查看對應(yīng)的分析報表。

Ingress概覽

Ingress概覽報表主要展示當(dāng)前Nginx Ingress的整體狀態(tài),主要包括以下幾類信息:

  • 整體架構(gòu)狀態(tài)(1天),包括PV、UV、流量、響應(yīng)延遲、移動端占比和錯誤比例等。

  • 網(wǎng)站實時狀態(tài)(1分鐘),包括訪問PV、訪問UV、訪問成功率、平均延遲、P95延遲和P99延遲等。

  • 用戶請求類信息(1天),包括1天訪問PV對比、7天訪問PV對比、地域分布、TOP訪問省份、TOP訪問城市、移動端占比和Android/iOS占比等。

  • TOP URL統(tǒng)計(1小時),包括訪問TOP10、延遲TOP10、5XX錯誤TOP10和404錯誤TOP10。

Ingress訪問中心

Ingress訪問中心主要側(cè)重于用于訪問請求相關(guān)的統(tǒng)計信息,一般用于運營分析,包括今日UV、今日PV、UV分布、PV分布、TOP訪問省份、TOP訪問城市、TOP訪問瀏覽器、TOP訪問IP、移動端占比和Android/iOS占比等。

58f6cf5ad7710fa03276f1cb85779f0c

Ingress監(jiān)控中心

Ingress監(jiān)控中心主要側(cè)重于網(wǎng)站實時監(jiān)控數(shù)據(jù),一般用于完整實時監(jiān)控與告警,包括請求成功率、錯誤比例、5XX比例、請求未轉(zhuǎn)發(fā)比例、平均延遲、P95延遲、P99延遲、P999延遲、狀態(tài)碼分布、Ingress壓力分布、Service訪問TOP10、Service錯誤TOP10、Service延遲TOP10和Service流量TOP10等。

Ingress監(jiān)控中心

Ingress藍(lán)綠發(fā)布監(jiān)控中心

Ingress藍(lán)綠發(fā)布監(jiān)控中心主要用于版本發(fā)布時的實時監(jiān)控與對比(版本前后對比以及藍(lán)綠版本當(dāng)前對比),以便您在服務(wù)發(fā)布時快速檢測異常并進(jìn)行回滾。在該報表中您需要選擇進(jìn)行對比的藍(lán)綠版本(ServiceAServiceB),報表將根據(jù)您的選擇動態(tài)顯示藍(lán)綠版本相關(guān)指標(biāo),包括PV、5XX比例、成功率、平均延遲、P95延遲、P99延遲、P999延遲和流量等。

Ingress藍(lán)綠發(fā)布監(jiān)控中心

Ingress異常檢測中心

Ingress異常檢測中心基于日志服務(wù)提供的機(jī)器學(xué)習(xí)算法,通過多種時序分析算法從Nginx Ingress的指標(biāo)中自動檢測異常點,提高問題發(fā)現(xiàn)的效率。

Ingress異常檢測中心

配置告警

日志服務(wù)除提供交互式分析、可視化報表之外,您可直接基于上述報表快速配置告警,告警支持通知釘釘WebHook、短信、郵件和自定義WebHook等。

告警詳細(xì)配置方法請參見設(shè)置告警

下述示例為Nginx Ingress配置5XX比例的告警,告警每5分鐘執(zhí)行一次,當(dāng)5XX比例超過1%時觸發(fā)。

  1. 進(jìn)入Ingress監(jiān)控中心報表,鼠標(biāo)滑動到圖表5XX比例右上角的提示圖標(biāo),在彈出的提示框中單擊另存為告警(舊版)

    配置告警

  2. 創(chuàng)建告警面板中,填入告警名稱關(guān)聯(lián)圖表頻率觸發(fā)條件,查詢語句中的total為5XX的百分比,因此觸發(fā)條件輸入total > 1

  3. 在下一步的通知中,根據(jù)您的需求選擇對應(yīng)的通知方式,并填入對應(yīng)參數(shù),然后單擊提交,即可完成告警創(chuàng)建。

訂閱定時報告

日志服務(wù)除支持通過告警方式通知外,還支持報表訂閱功能,您可使用該功能將報表定期渲染成圖片并通過郵件、釘釘群等方式發(fā)送。

訂閱功能詳細(xì)使用方法請參見訂閱儀表盤

下述示例為Ingress概覽配置訂閱功能,每天上午10點將報表發(fā)送到指定釘釘群。

  1. 進(jìn)入Ingress概覽V1.2報表,選擇報表右上角的訂閱 > 創(chuàng)建

  2. 創(chuàng)建訂閱面板中,頻率選擇每天10:00,關(guān)閉添加水印選項,單擊下一步

  3. 通知類型中選擇WebHook釘釘機(jī)器人,填入釘釘機(jī)器人的WebHook地址(WebHook地址請參見獲取Webhook地址),然后單擊提交,即可完成訂閱。

使用Ingress Dashboard與ARMS進(jìn)行聯(lián)動排查

  1. 登錄日志服務(wù)控制臺

  2. Project列表區(qū)域,選擇創(chuàng)建集群時設(shè)置的日志Project,單擊名稱進(jìn)入日志Project頁面(默認(rèn)創(chuàng)建的project名稱為k8s-log-{cluster-id})。

  3. 單擊左側(cè)列表的,在儀表盤列表查看Ingress概覽V1.2儀表盤,獲取您所需要的信息。

    例如,定位Top10延遲URL區(qū)域,查看TOP10延遲URL的URL(ARMS排查)字段。您可以單擊URL鏈接跳轉(zhuǎn)到對應(yīng)服務(wù)的ARMS監(jiān)控鏈路查詢頁面并在ARMS控制臺查詢對應(yīng)服務(wù)的查詢調(diào)用鏈路詳細(xì)情況。

相關(guān)文檔

如果您需要對日志采集進(jìn)行過濾,請參見過濾日志