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

通過X-Pack Watcher實現CCR異常報警通知

Elasticsearch X-Pack Watcher可跟蹤網絡,具備對基礎設施、索引數據和集群健康等指標的監控和報警能力。您可以在Kibana控制臺上獲取跨集群復制CCR(Cross Cluster Replication)功能相關的監控,并通過X-Pack Watcher監控CCR異常實現報警。本文介紹如何將CCR獲取的讀數據請求耗時及CCR Checkpoint作為預警條件,實現CCR異常報警通知。

前提條件

  • 已創建阿里云Elasticsearch實例。 具體操作,請參見創建阿里云Elasticsearch實例。

    說明
    • 舊網絡架構下,X-Pack Watcher功能僅支持單可用區Elasticsearch實例,不支持多可用區實例。

    • 新網絡架構下,需要配置實例私網連接打通網絡限制。具體操作,請參見配置實例私網連接

    關于網絡架構,請參見【通知】網絡架構調整。

  • 已開啟Elasticsearch實例的X-Pack Watcher功能。 具體操作,請參見配置YML參數。

  • 已在用戶VPC下創建ECS實例。具體操作,請參見自定義購買實例

    說明

    阿里云Elasticsearch的X-Pack Watcher功能不支持直接與公網通訊,需要基于實例的私網地址(專有網絡VPC環境)通訊。因此,用戶VPC下的ECS實例需要持有公網IP或通過配置SNAT實現公網訪問。更多信息,請參見綁定彈性公網IP配置SNAT。

操作步驟

步驟一:創建并配置釘釘機器人

  1. 創建一個釘釘報警接收群。具體操作,請參見釘釘入門教程

  2. 在群的右上角單擊設置.png圖標,在群設置面板中,單擊機器人。

  3. 單擊添加機器人

  4. 機器人對話框中,單擊添加機器人。

  5. 單擊自定義機器人,單擊添加

  6. 選中自定義關鍵詞,并輸入關鍵詞。

    重要

    關鍵詞必須包含在您設置的報警信息中。

  7. 選中免責條款后,單擊完成。

  8. 單擊Webhook后的復制,復制機器人的Webhook地址。

    請保管好Webhook地址,以備后用。同時不要將其公布在外部網站上,泄露Webhook地址有安全風險。

更多信息,請參見獲取自定義機器人Webhook安全設置。

步驟二:配置Nginx代理和ECS安全組

  1. 在ECS上配置Nginx代理。

    Nginx代理的作用是轉發報警信息。Elasticsearch的X-Pack Watcher服務把報警信息發送到Nginx上,Nginx再把報警信息轉發到釘釘或者企業微信中。

    1. 在ECS上安裝Nginx。

      安裝方法,請參見Nginx安裝配置。

    2. 配置nginx.conf文件。

      使用以下配置替換nginx.conf文件中server部分的配置。

      server
        {
          listen 8080;#監聽端口
          server_name localhost;#域名
          index index.html index.htm index.php;
          root /usr/local/webserver/nginx/html;#站點目錄
            location ~ .*\.(php|php5)?$
          {
            #fastcgi_pass unix:/tmp/php-cgi.sock;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
          }
          location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
          {
            expires 30d;
            # access_log off;
          }
          location / {
            proxy_pass <Webhook地址>;
          }
          location ~ .*\.(js|css)?$
          {
            expires 15d;
            # access_log off;
          }
          access_log off;
        }

      <Webhook地址>替換為接收報警消息的釘釘機器人的Webhook地址。

    3. 加載修改后的配置文件并重啟Nginx。

      /usr/local/webserver/nginx/sbin/nginx -s reload            # 重新載入配置文件
      /usr/local/webserver/nginx/sbin/nginx -s reopen            # 重啟Nginx
  2. 配置ECS安全組。

    允許ECS上的Nginx代理接收來自Elasticsearch實例的報警信息。

    1. 登錄阿里云ECS控制臺。

    2. 在左側導航欄,單擊實例

    3. 實例頁面,單擊目標實例名稱。

    4. 單擊安全組頁簽。

    5. 安全組列表頁簽,單擊目標安全組名稱。

    6. 入方向頁簽,單擊手動添加。

    7. 填寫相關參數。

      參數

      說明

      授權策略

      選擇允許

      優先級

      保持默認。

      協議類型

      選擇自定義TCP。

      端口范圍

      填寫您常用的端口(配置Nginx時需要用到,本文以8080為例)。

      授權對象

      添加您購買的阿里云Elasticsearch實例所有節點的IP地址。

      說明

      參見查看節點的基本信息,獲取Elasticsearch實例中所有節點的IP地址。

      描述

      輸入對規則的描述。

    8. 單擊保存。

步驟三:配置Watcher報警

  1. 登錄目標阿里云Elasticsearch實例的Kibana控制臺,根據頁面提示進入Kibana主頁。
    登錄Kibana控制臺的具體操作,請參見登錄Kibana控制臺。
    說明 本文以阿里云Elasticsearch 6.7.0版本為例,其他版本操作可能略有差別,請以實際界面為準。
  2. 在左側導航欄,單擊Dev Tools
  3. Console中,執行如下命令創建一個報警文檔。

    PUT _watcher/watch/ccr_watcher
    {
      "trigger": {
        "schedule": {
          "interval": "10s"
        }
      },
      "input": {
        "search": {
          "request": {
            "indices": [
              ".monitoring-es*" 
            ],
            "body": {
              "size": 0,
              "sort": [
                {
                  "timestamp": {
                    "order": "desc"
                  }
                }
              ],
              "query": {
                "bool": {
                  "must": [
                    {
                      "range": {
                        "timestamp": {
                          "gte": "now-10m"
                        }
                      }
                    },
                    {
                      "term": {
                        "type": {
                          "value": "ccr_stats"
                        }
                      }
                    },
                    {
                      "bool": {
                        "should": [
                          {
                            "range": {
                              "ccr_stats.time_since_last_read_millis": {
                                "gte": 600000
                              }
                            }
                          },
                          {
                            "script": {
                              "script": "long gap = doc['ccr_stats.leader_global_checkpoint'].value - doc['ccr_stats.follower_global_checkpoint'].value;\n            return gap>1000;"
    
    
                            }
                          }
                        ]
                      }
                    }
                  ]
                }
              },
              "aggs": {
                "NAME": {
                  "terms": {
                    "field": "ccr_stats.follower_index",
                    "size": 1000
                  }
                }
              }
            }
          }
        }
      },
      "condition": {
        "compare": {
          "ctx.payload.hits.total": {
            "gt": 0
          }
        }
      },
      "transform": {
        "script": """
        StringBuilder message = new StringBuilder();
    for (def bucket : ctx.payload.aggregations.NAME.buckets) {
      message.append(bucket.key).append('  ')
    }
        return [ 'delay_indices' : message.toString().trim()  ]
    """
      },
      "actions" : {
         "add_index": {
          "index": {
            "index": "ccr_delay_indices",
            "doc_type": "doc"
          }
        },
         "my_webhook": {
         "webhook" : {
            "method" : "POST",
            "url" : "http://<yourAddress>:8080",
            "body" : "{\"msgtype\": \"text\", \"text\": { \"content\": \"Please note: {{ctx.payload}}\"}}"
          }
        }
      }
    
    }

    部分關鍵參數說明如下。

    參數

    說明

    trigger

    檢測周期,請根據實際業務進行配置。以上示例設置為每10s檢測一次。

    input.search.request.indices

    查詢檢測的目標索引。.monitoring-es*索引保存集群支持的所有監控指標,其中也包括CCR指標。

    input.search.request.body

    查詢體。以上示例從系統監控索引查詢近10分鐘的CCR狀態信息,當查詢滿足以下條件中的其中一個,CCR將進入下一步:

    • ccr_stats.time_since_last_read_millis>600000ms(10min):讀請求發送到Leader節點的延時時間大于10min。請根據您CCR的實際業務使用進行配置。

    • ccr_stats.leader_global_checkpoint-ccr_stats.follower_global_checkpoint>1000:Follower Checkpoint落后于Leader Checkpoint的程度大于1000。請根據您CCR的實際業務使用進行配置。

    condition

    報警條件。以上示例表示滿足input.search.request.body中的條件,且返回的聚合文檔數大于0即可報警。

    transform

    預處理。以上示例表示循環獲取buckets key值,并通過空格進行分割,過濾出延遲索引名。

    actions

    滿足條件時,執行的具體操作。以上示例設置兩個action:

    • add_index:將上面返回的結果寫入索引中,在調試Watcher配置環節,定義index進行調試。

    • my_webhook:通過Webhook方式發送報警信息。

    <yourAddress>

    接收報警信息的服務器的訪問地址:

    • 新網絡架構下,配置為終端節點域名地址,請求通過終端節點域名進行轉發。獲取終端節點域名,請參見配置阿里云Elasticsearch私網互通。

    • 舊網絡架構下,配置為以下任一地址:

      • Nginx代理IP地址:請求通過同VPC下Nginx代理經公網進行轉發。

      • 釘釘機器人的Webhook地址。

    body

    根據釘釘機器人的安全設置配置。

    例如,步驟一:創建并配置釘釘機器人中選擇安全設置方式為自定義關鍵詞,且添加了一個自定義關鍵詞:note,那么body中的content字段必須包含note,釘釘機器人才會推送報警信息。

    說明

    如果在執行以上命令時,出現No handler found for uri [/_xpack/watcher/watch/log_error_watch_2] and method [PUT]異常,表示您購買的阿里云Elasticsearch實例未開啟X-Pack Watcher功能,請開啟后再執行以上命令。具體步驟,請參見配置YML參數。

步驟四:查看報警結果

正常情況下,當CCR狀態達到步驟三:配置Watcher報警中配置的報警條件時,您可以釘釘群中收到如下報警信息。查看報警結果

說明

如果您不再需要執行報警任務,可執行以下命令刪除該報警任務。

DELETE _xpack/watcher/watch/ccr_watcher