更新时间:2024-11-05 GMT+08:00
分享

公网如何接入APM

前提条件

  1. 已购买华为云弹性云服务器ECS作为跳板机。
  2. 弹性云服务器已绑定弹性IP地址。
  • 推荐CentOS 6.5 64bit及其以上版本的镜像, 最低规格为1vCPUs | 1GB,推荐规格为2vCPUs | 4GB。
  • 推荐使用iptables作为跳板机转发实现。

操作步骤

请先在华为云上购买一台弹性云服务器作为跳板机,然后执行如下操作。

  1. 登录弹性云服务器,修改跳板机ECS的安全组规则。

    1. 在ECS详情页,单击安全组页签,进入安全组列表页。
    2. 单击具体的安全组名,单击“更改安全组规则”,进入安全组详情页。
    3. 在该安全组详情页,单击“入方向规则 > 添加规则 ”,按表1添加安全组规则。
      表1 安全组规则

      方向

      协议

      端口

      说明

      入方向

      TCP

      41333,41335

      JavaAgent发送数据到跳板机的端口列表。

  2. 获取APM上报地址,参见探针接入地址
  3. 以root用户登录跳板机,执行iptables转发命令。

    如果没有iptables相关服务,需要先安装,命令如下。

    yum install iptables-services
    systemctl stop firewalld.service
    systemctl disable firewalld.service
    systemctl mask firewalld.service
    1. 开启数据转发功能。
      # 编辑文件
      vim /etc/sysctl.conf
      # 增加一行
      net.ipv4.ip_forward=1
      # 使数据转发功能生效
      sysctl -p
    2. 将本机(跳板机)端口的数据转发到上报到APM的端口。
      # 编辑文件
      vim /etc/sysconfig/iptables
      # *filter新增
      -A INPUT -p tcp -m state --state NEW -m tcp --dport 41333 -j ACCEPT
      -A INPUT -p tcp -m state --state NEW -m tcp --dport 41335 -j ACCEPT
      # *新增NAT规则
      -A OUTPUT -p tcp --dport 41333 -j DNAT --to-destination {上报到APM的主机IP}:41333
      -A PREROUTING -p tcp --dport 41333 -j DNAT --to-destination {上报到APM的主机IP}:41333
      -A POSTROUTING -d {上报到APM的主机IP}/32 -p tcp --dport 41333 -j SNAT --to-source {跳板机ip}
      
      -A OUTPUT -p tcp --dport 41335 -j DNAT --to-destination {上报到APM的主机IP}:41335
      -A PREROUTING -p tcp --dport 41335 -j DNAT --to-destination {上报到APM的主机IP}:41335
      -A POSTROUTING -d {上报到APM的主机IP}/32 -p tcp --dport 41335 -j SNAT --to-source {跳板机ip}
      
      # 如果存在以下规则,需要删除
      -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    3. 重启iptables。
      systemctl restart iptables
    4. 验证端口转发是否成功。
      curl -kv https://{跳板机ip}:41333 
      curl -kv https://{跳板机ip}:41335

  4. 修改javaagent中的apm.config配置文件。

    master.address=https://{跳板机公网ip}:41333
    access.address={跳板机公网ip}:41335

  5. 重启应用。

相关文档