ACVIP 问题排查

ACVIP 部署问题

前置条件

解决 ACVIP 部署问题时,请先按照以下内容确认您的环境:

  • 数据库时间和 ACVIP 机器时间需要一致,否则无法部署完成。

    • 查看机器时间

      命令如下:

      date -R
    • 查看数据库时间

      1. 获取 DB 连接。

        env | grep data
      2. 连接数据库。

        mysql -h<hostname> -u<username> -p<passwd> -P <port> -D <DB 链接>
      3. 查看数据库时间。

        select now()
  • 数据库版本不能为 MySQL 8 。

  • /etc/hosts 文件中需要有 IPv4 地址和 hostname 的映射配置。

ACVIP 部署不到终态

排查步骤如下:

  1. 查看启动日志 /home/admin/logs/acvip/Startup.log

    1620910079845-090f6c7f-45f3-4216-bf81-def31f2d7df1图中日志说明 domain 加载失败,需要确认发布失败的原因。

  2. 查询 antvip_vip_domain

    查询命令如下:

    select * from antvip_vip_domain
    11

    查找是否有步骤 1 中加载失败的域名,且 enable 是否为 1,为 1 则继续下面的步骤。

  3. 查询是否存在有效节点。

    查询命令如下:

    select * from antvip_real_node where domain_id=4
    1620912331357-fba1bf4b-8f3c-428d-aa5e-0b60c77b7c87

    确认节点是否存活,如果有不正常的节点,进行处理。如果都正常,继续进行下面的步骤。因为 ACVIP 有多个节点时,会有数据分组,这个 domain 可能是其他的 ACVIP 在进行加载。

  4. 查询其他 ACVIP 节点。

    查询命令如下:

    select * from antvip_vip_server

    心跳时间(last_heartbeat)和当前时间相近的是活跃节点,需要测试当前服务器和这些服务器是否建立连接。1620912774794-a5d54f82-e344-49ba-8c83-a5c0f97e9796

  5. 确认网络连通性。

    命令如下:

    netstat -anlp | grep 12200
    1620912845185-d4a3b59f-6995-4099-ba3e-7bb5f266f5ee

    查看 ACVIP 的 12200 端口是否有正常的通讯,有则表示网络正常,建议联系售后技术支持进行排查;如果没有通讯,则说明网络出现故障,建议检查网络问题。

使用问题

获取不到域名信息如何处理?

使用 curl 命令尝试获取域名信息,获取命令如下:

curl -i -XPOST {acvip地址}:9003/antcloud/antvip/instances/get -d '{"vipDomainName2ChecksumMap":{"000001-DSR_CLOUD":"N"}}'

长连接 Long Polling 命令示例如下:

curl -i -XPOST localhost:9003/antcloud/antvip/instances/get -d '{"vipDomainName2ChecksumMap":{"000001-DSR_CLOUD":"N"},"allowPolling":true}'
1620913915379-d935721d-cfa7-4d81-9d75-525b99cc9d60
  • 查询到结果,说明 ACVIP 服务正常,请检查本地 ACVIP 配置。

    1. 执行 cd /home/admin/conf/acvip-java-client-cache/domains/ 命令,查看本地缓存中是否有目标域名信息,并查看获取的时间信息。

    2. 如果获取信息失败,查看 api-stat.log 是否有报错。

      cd /home/admin/logs/acvip-java-client 
      cat api-stat.log
    3. 根据查询的报错信息进行处理。

      您可以查询指定时段的 Java 客户端拉取记录,命令如下:

      tail -n 500 acvip-default.log.2021-05-12 | grep java

      p279416日志格式如下:1620914776358-37259002-4411-4727-8694-68bab486d8de

  • 如果查询到的结果是空,需要到 ACVIP 服务端增加域名配置。

  • 如果网络报错,确认 ACVIP 服务器地址配置是否正确。

如何查看客户端的请求内容?

您可以在 ACVIP 上执行如下命令查看:

tcpdump port 9003 and host <对端 IP> -nnvvXS