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

通過Nginx正向代理接入ARMS

本文介紹如何通過Nginx正向代理接入ARMS應用監控。

使用場景

對于非阿里云環境(包括線下數據中心以及其他云環境)的應用,只要網絡能和ARMS服務端連通,就可以接入ARMS應用監控。您可以選擇通過公網接入,或者通過專線接入,具體接入方式請參見應用監控接入概述

如果應用所在的環境只有特定的機器可以連通公網,就需要通過正向代理進行中轉。對于大多數用戶而言,正向代理通常是不需要的,但金融系統等對網絡安全性有特殊要求場景,可能存在這樣的需求。

前提條件

  • 已自行部署Nginx,并確保Nginx的穩定運行。

  • 該方案目前暫不支持4.x版本探針,請先使用3.x版本探針接入,探針版本說明請參見探針(Java Agent)版本說明

架構方案

image

如圖所示,在用戶所在IDC,業務應用部署區的Java應用無法訪問公網,只有DMZ區域具備訪問公網的能力,可以通過如下兩個步驟進行正向代理轉發:

  1. DMZ區域部署Nginx,參見本文提供的Nginx配置腳本,將ARMS探針上報的監控數據轉發到阿里云ARMS服務端。

  2. 修改ARMS探針的配置,將DMZ區域部署的Nginx作為監控數據上報目標。

Nginx配置

步驟一:安裝部署Nginx

請先確保Nginx已經安裝,并具備公網訪問能力,Nginx的安裝方式請參見Nginx官方文檔

步驟二:獲取ARMS接入點信息

根據需要接入的阿里云地域,獲取ARMS接入點域名,以及ACM引擎的IP地址。具體操作,請參見Java應用監控網絡配置

步驟三:獲取阿里云賬號ID

獲取阿里云賬號ID,具體操作,請參見如何查看阿里云賬號ID?

步驟四:修改Nginx配置文件

修改/etc/nginx/site-available/default文件,添加如下內容:

server {
  listen 80 default_server;
  listen [::]:80 default_server;

  server_name arms-service;
  ignore_invalid_headers off;

  # 請將數字部分替換為步驟三中獲取的阿里云賬號ID
  location /1672753017****** {
    # 請將URL替換為步驟二中獲取的持續剖析接入點
    proxy_pass http://arms-profiling-cn-shenzhen.oss-cn-shenzhen.aliyuncs.com;
  }

  location / {
    # 請將URL替換為步驟二中獲取的調用鏈接入點
    proxy_pass http://arms-dc-sz.aliyuncs.com;
  }
}

server {
  listen 9990;
  server_name arms-meta;
  ignore_invalid_headers off;
  location / {
    # 請將URL替換為步驟二中獲取的調用鏈接入點
    proxy_pass http://arms-dc-sz.aliyuncs.com:9990;
  }
}

server {
  listen 80;
  server_name arms-metrics;
  ignore_invalid_headers off;

  location / {
    # 請將URL替換為步驟二中獲取的指標接入點
    proxy_pass http://cn-shenzhen.arms.aliyuncs.com;
  }
}

server {
  listen 8080;
  server_name arms-acm;
  ignore_invalid_headers off;

  location / {
    return 200 $server_addr;
  }
}

server {
  listen 8848;
  server_name arms-acm;
  ignore_invalid_headers off;

  location / {
    # 請將IP地址替換為步驟二中獲取的ACM引擎IP地址
    proxy_pass http://139.196.XX.XX:8848;
  }
}

修改/etc/nginx/nginx.conf文件,添加如下內容:

stream {
    upstream arms-arthas {
        # 請將URL替換為步驟二中獲取的調用鏈接入點
        server arms-dc-sz.aliyuncs.com:9092;
    }

    server {
        listen 9092;
        proxy_pass arms-arthas;
    }
}

ARMS探針配置

目前ARMS正向代理模式支持手動接入的探針,以及通過Kubernetes環境自動接入的探針。請先參考手動安裝探針通用Kubernetes環境自動安裝探針文檔安裝探針。探針安裝完成之后,數據上報目標為ARMS的公網接入點,由于Java應用所在的環境沒有公網訪問能力,所以暫時無法接入ARMS。參考本節內容,將探針的數據上報目標修改為Nginx之后,即可成功接入ARMS。

手動安裝模式

步驟一:修改hosts

修改應用所在機器的/etc/hosts文件,添加如下內容,請將IP地址替換為NginxIP地址。

10.0.0.201 arms-service
10.0.0.201 arms-metrics
10.0.0.201 arms-meta
10.0.0.201 arms-acm
# 將域名中的cn-shanghai替換為對應的阿里云地域代碼
10.0.0.201 arms-profiling-cn-shanghai.arms-service

步驟二:修改探針配置文件

在探針目錄下找到arms-agent.config配置文件,修改如下配置項對應的值:

# 如下5個配置項在所有版本的ARMS探針中都存在
profiler.collector.trace.endpoint=arms-service
profiler.collector.metric.endpoint=arms-metrics
profiler.collector.meta.endpoint=arms-meta
profiler.collector.endpoint=arms-service
profiler.acm.endpoint=arms-acm
# 探針版本為3.2.0+新增了profiler.oss.endpoint配置項,需要將此配置的值修改為arms-service
profiler.oss.endpoint=arms-service

Kubernetes環境自動安裝模式

說明

通過容器環境自動接入的探針,需要版本在3.2.0或以上才能使用正向代理模式。如果您的探針版本低于3.2.0,請先升級探針,具體操作,請參見升級ARMS探針

步驟一:獲取探針配置文件的內容

對于已經自動安裝ARMS探針的Java應用,登錄其中的一個Pod,可以在/home/admin/.opt/ArmsAgent/arms-agent.config路徑找到探針的配置文件,復制其中的內容。

步驟二:創建ConfigMap

針對上一步復制的內容,修改如下配置項對應的值:

profiler.collector.trace.endpoint=arms-service
profiler.collector.metric.endpoint=arms-metrics
profiler.collector.meta.endpoint=arms-meta
profiler.collector.endpoint=arms-service
profiler.acm.endpoint=arms-acm
profiler.oss.endpoint=arms-service

創建名為arms-agent-proxy-mode.configConfigMap,填入修改后的內容:

apiVersion: v1
kind: ConfigMap
metadata:
  name: arms-agent-proxy-mode.config
data:
  arms-agent.config: |-
    ### arms-agent.config的其他內容復制過來,只修改6個配置項 ####
    profiler.collector.trace.endpoint=arms-service
    profiler.collector.metric.endpoint=arms-metrics
    profiler.collector.meta.endpoint=arms-meta
    profiler.collector.endpoint=arms-service
    profiler.acm.endpoint=arms-acm
    profiler.oss.endpoint=arms-service
    ### arms-agent.config的其他內容復制過來,只修改6個配置項 ####

步驟三:修改應用YAML

參考以下內容,修改應用所在工作負載的YAML。

apiVersion: apps/v1
kind: Deployment
metadata:    
  labels:
    app: spring-boot-demo
  name: spring-boot-demo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: spring-boot-demo
  template:
    metadata:
      labels:
        app: spring-boot-demo
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: spring-boot-demo
    spec:
      hostAliases:
      # 將此IP替換為Nginx的IP
      - ip: "192.168.172.171" 
        hostnames:
        - "arms-service"
        - "arms-metrics"
        - "arms-meta"
        - "arms-acm"
        # 將域名中的cn-shanghai替換為對應的阿里云地域代碼
        - "arms-profiling-cn-shenzhen.arms-service"
      containers:
        - env:
            # 將探針配置指向修改后的新的配置文件
            - name: ARMS_CONFIG_FILE
              value: /home/admin/.opt/ArmsAgent/arms-agent-proxy-mode.config
          image: >-
            registry.cn-hangzhou.aliyuncs.com/ahas_apsara_adp/spring-boot-demo:wt-test
          imagePullPolicy: Always
          name: spring-boot-demo
          ports:
            - containerPort: 80
              protocol: TCP
          resources:
            limits:
              cpu: 500m
              memory: 1Gi
            requests:
              cpu: 250m
              memory: 512Mi
          volumeMounts:
            # 作為新的配置文件,掛載到探針目錄
            - mountPath: /home/admin/.opt/ArmsAgent/
              name: arms-agent-proxy-mode
      imagePullSecrets:
        - name: wt-test
      volumes:
        # 將configMap映射成名為arms-agent-proxy-mode的volume
        - configMap:
            name: arms-agent-proxy-mode.config
          name: arms-agent-proxy-mode
說明

上述YAML中,帶注釋的部分是需要關注并修改的內容。

確認接入成功

重啟應用,等待2分鐘左右,若您的應用出現在ARMS控制臺應用監控 > 應用列表頁面中且有數據上報,則說明接入成功。