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

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

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

索引

前提條件

  1. 安裝日志組件。

    集群創(chuàng)建時(shí),默認(rèn)會(huì)安裝日志組件,如未安裝請(qǐng)參見通過日志服務(wù)采集Kubernetes容器日志進(jìn)行手動(dòng)安裝。

  2. 升級(jí)Log Controller。

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

開啟Nginx Ingress日志采集配置

方式一:通過ACK控制臺(tái)開啟

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

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

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

方式二:通過命令行開啟

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

重要

部署AliyunLogConfig的CRD時(shí)需要注意以下事項(xiàng):

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

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

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

  • IncludeLabel為Docker inspect中的Label信息。

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

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

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

  • Kubernetes不建議使用除io.kubernetes.pod.namespaceio.kubernetes.container.name之外的其他Label。其他情況請(qǐng)使用IncludeEnv或ExcludeEnv,具體操作,請(qǐng)參見通過DaemonSet-控制臺(tái)方式采集容器標(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所在命名空間,請(qǐng)按需修改。
      namespace: kube-system
    spec:
      # logstore名稱。
      logstore: nginx-ingress
      # 產(chǎn)品Code,請(qǐng)勿更改。
      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。
                    # 如果配置多個(gè)ingress controller請(qǐng)注意預(yù)防日志重復(fù)采集,詳細(xì)請(qǐng)閱讀注意事項(xiàng)中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á)式。符合該格式的日志,會(huì)將每個(gè)捕獲組中內(nèi)容映射到對(duì)應(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日志與報(bào)表

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

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

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

Ingress概覽

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

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

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

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

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

Ingress訪問中心

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

ingress訪問中心

Ingress監(jiān)控中心

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

Ingress監(jiān)控中心

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

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

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

Ingress異常檢測(cè)中心

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

Ingress異常檢測(cè)中心

配置告警

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

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

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

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

    配置告警

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

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

訂閱定時(shí)報(bào)告

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

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

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

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

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

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

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

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

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

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

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

相關(guān)文檔

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