如何使用命令行工具管理 APM

安装地址池管理器 (APM) 应用程序后,您可以执行以下管理功能。

地址池管理器为您提供了两个用于执行管理员任务的命令行选项。您可以使用 APM 实用程序脚本 (apm) 或 Kubernetes 命令行工具来管理 APM。

访问 APM 实用程序命令

使用 APM 实用程序命令执行管理功能。

您可以使用 APM 实用程序脚本 (apm) 来管理应用程序并访问用于配置地址管理功能的 CLI。瞻博网络 APM 安装将实用程序脚本放置在 /var/local/apm 中,并在 /usr/local/bin/apm 中创建指向该脚本的符号链接。

您可以使用 apm 实用程序脚本(使用 Kubernetes 命令行工具和 Helm 命令)执行以下操作:

  • 创建和删除对象。
  • 提供日志访问权限。
  • 使用 pod 容器进行交互式会话。
  • 显示 APM 对象的状态。

使用实用工具脚本可以 apm 简化许多管理职责。该脚本执行管理 APM 所需的任务,同时掩盖命令的 kubectl 复杂性。

表 1 列出了可以使用 apm 实用程序脚本调用的命令,并介绍了发生的操作。许多单独的命令都有可以指定的选项。

表 1:APM 实用程序脚本命令
姓名 行动

sudo -E apm clean --context [context-name | multi-cluster-context-name] --docker --release software-release --dry-run --uninstall --cluster-repos

清理不需要的版本和 Docker 缓存。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • log [error, warning, info, debug]- 调整日志级别。

  • no-color- 打印不带颜色的邮件。

  • docker—仅清理本地 Docker 缓存,所有其他文件将保留。

  • release software-release- 指定一个释放以清洁或清洁所有可能的释放。

  • dry-run- 标识要删除的版本和 docker 映像,并将其打印到控制台。此命令实际上不会清理任何版本或 Docker 缓存。

  • uninstall—从磁盘中卸载所有 APM 材料。该命令不会影响正在运行的应用程序。

  • cluster-repos- 清理已移除群集的群集存储库。

apm cli --context [context-name | multi-cluster-context-name] [-p|--pipe]

允许您访问可用于配置 APM 功能的 CLI。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • pipe- 允许您将输入通过管道传输到命令中。

apm contexts [-o|--output json]

显示使用 APM 进行控制的可用上下文。

此命令提供以下选项:

  • contexts- 列出可用上下文。

  • output json- 允许您请求 JSON 格式的输出。

sudo -E apm db --context [context-name | multi-cluster-context-name] --workload-context workload-context-name

提供对 Redis 数据库 CLI 的访问。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • workload-context workload-context-name- 要为其附加到特定子系统外壳的工作负载上下文名称。此选项仅用于多个地理位置设置。

apm db-info --context [context-name | multi-cluster-context-name] --workload-context workload-context-name

显示 APM 数据库微服务的当前状态,包括当前版本、有状态集 pod 及其角色。
注意:对于位于多个地理位置的设置,显示apm db-info工作负载集群的 redis 角色。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • workload-context workload-context-name- 要为其显示数据库信息的工作负载上下文名称。此选项仅用于多个地理位置设置。

sudo -E apm db-switchover --context [context-name | multi-cluster-context-name] --workload-context workload-context-name

强制主数据库容器切换到符合条件的备份数据库容器。要运行此命令,您需要 sudo 权限。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • workload-context workload-context-name- 要为其附加到特定子系统外壳的工作负载上下文名称。此选项仅用于多个地理位置设置。

注意:

db-switchover 是服务中断事件,您只能在升级过程中使用它。

apm ip --context [context-name | multi-cluster-context-name] [-o| --output json --detail]

显示每个服务的外部 IP 地址。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • output json- 允许您请求 JSON 格式的输出。

  • detail— 显示详细的 IP 信息。

位于单一地理位置的设置用途:sudo -E apm link --context context-name --version software-release --log info --no-color --from-running

位于多个地理位置的设置用途:

sudo -E apm link --context multi-cluster-context-name --version software-release --from-running --log info --no-color --workload-contexts workload-1-context-name workload-2-context-name

将群集链接到特定软件版本。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • version software-release- 指定要链接到群集特定存储库的软件版本。

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • workload-contexts workload-1-context-name workload-2-context-name- 两个工作负载上下文名称。仅与位于多个地理位置的设置一起使用。输入上下文的名称。

  • l, log [error, warning, info, debug]- 调整日志级别。

  • no-color- 打印不带颜色的邮件。

  • from-running— 尝试匹配正在运行的地址池管理器的软件版本。

    该 from-running 选项用于从正在运行的应用程序部署中恢复版本和用户设置。这可以帮助您恢复失败的跳转主机或同步跳转主机网络。

apm logs --logset logset-type --services services-names --context [context-name | multi-cluster-context-name] --workload-context workload-context-name --log info --follow --previous --nocolor

显示 APM 微服务的日志。如果运行命令时不带该services选项,则会显示 、 entman和provman微服务的addrman日志。

此命令提供以下选项:
  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • workload-context workload-context-name- 要为其附加到特定子系统外壳的工作负载上下文名称。此选项仅用于多个地理位置设置。

  • logset logset-type- 用于指示要显示其日志的微服务类型。此命令具有以下选项:

    • apm

      —显示 addrman、 entman和 provman 微服务日志。如果未配置该 logset 选项,则该 apm选项为默认操作,只能查看上述微服务的日志。
    • apm-infra

      - 显示 configserver、 dbsync和 mgmt redis 实例微服务日志。
  • services services-names- 列出要显示其日志的特定微服务。日志按时间顺序显示。

  • l, log [error, warning, info, debug]- 调整输出日志级别。

  • nocolor- 禁用彩色输出。

  • f, follow— 跟踪所有微服务的日志。

  • p, previous- 查看以前容器实例中的日志。

apm multi-cluster dbsync-stats --context multi-cluster-context-name

显示工作负载群集之间的数据库同步状态。

此命令提供以下选项:

  • context multi-cluster-context-name - 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

注意:

此命令仅在位于多个地理位置的设置中受支持。

apm multi-cluster status --context multi-cluster-context-name

从应用程序的角度显示工作负载集群的状态。

此命令提供以下选项:

  • context multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

注意:

此命令仅在位于多个地理位置的设置中受支持。

sudo -E apm multi-cluster switchover --context multi-cluster-context-name --workload-context workload-context-name --force --role [active | dormant]

启动到其他工作负载群集的切换。APM 微服务在其他工作负载群集上重新调度。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • force- 忽略与停用活动工作负载群集相关的错误。

    例如,如果活动工作负载群集已关闭,并且您希望使休眠群集处于活动状态,则切换命令将导致错误。force 参数忽略错误,并使休眠群集成为活动群集。

    注意:由于无法访问活动群集以安全地将其转换为休眠状态,因此激活备份群集存在创建主动-主动方案的风险。

    如果要手动设置群集的角色(例如在两个工作负载群集都已进入休眠状态的情况下),可以使用以下选项运行 switchover 命令来完成此操作。

  • role- 输入 或 active dormant。指定工作负载群集的角色。

  • workload-context workload-context-name- 要设置其角色的工作负载上下文的名称。

此命令仅在多地理位置设置中受支持。

sudo -E apm rename-context --context [context-name | multi-cluster-context-name] --new-name new-name

重命名上下文。该命令不会影响当前在群集上运行的 APM。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • new-name new-name—Kubernetes 上下文的新名称。输入新名称。

sudo -E apm restart --context [context-name | multi-cluster-context-name] --workload-context workload-context-name --force --wait microservice-name

重新启动一个或多个指定的服务。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • workload-context workload-context-name- 应在其上重新启动微服务实例的工作负载上下文的名称。此选项仅用于多个地理位置设置。

  • force— 强制重启微服务,而不验证其是否可以安全重启。

  • wait—等待新 pod 完全启动。

  • microservice-name- 输入要重新启动的微服务名称。

sudo -E apm rollout --context [context-name | multi-cluster-context-name] --workload-context workload-context-name [--service service name --version software-release]

升级或启动 APM 服务。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • workload-context workload-context-name- 要推出的工作负载上下文名称。此选项仅用于多个地理位置设置,并且仅在升级过程中使用。

  • sevice service name- 要部署的微服务名称。输入微服务的名称。此命令仅适用于升级 APM 时。

  • version software-release—要推出的软件版本。输入软件版本号。此命令仅适用于升级 APM 时。

sudo -E apm save-config -- context [context-name | multi-cluster-context-name]

存档 APM 的当前工作配置,以便在发生 和 apm rollout 事件序列时apm stop保留该配置。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

sudo -E apm setup --context [context-name | multi-cluster-context-name] --help --log info --no color --bbecloudsetup --update --ssh ip-address:port-number --secrets --verbose --config file-name --template file-name --mandatory --optional

在安装过程中设置 APM 应用程序。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • h, help- 显示帮助消息并退出。

  • l, log [error, warning, info, debug]- 调整日志级别。

  • no-color- 打印不带颜色的邮件。

  • bbecloudsetup—填写与 bbecloudsetup 创建的群集一致的操作参数,这样您在设置过程中就不必与 APM 交互(有关群集安装说明,请参阅 BBE Cloudsetup 安装指南 )。

    注意:

    仅使用选项 bbecloudsetup 或选项 template file-name 。不要同时使用这两个选项。

  • update- 在设置过程中,系统只会提示您输入缺失值。

  • ssh ip-address:port-number—(仅用于单个地理位置设置)输入群集的虚拟 IP 地址或群集节点的 IP 地址以及 APM 管理微服务侦听 SSH 的端口号(在配置中启用时)。IP 地址也可以是 DNS 名称。

    注意:要在多地理位置部署中通过 SSH 设置 CLI 访问,必须使用模板文件(使用template命令中的setup选项)。这使您能够配置两个工作负载群集地址。
  • secrets—更新 APM 使用的密钥、证书和密钥。

  • verbose- 在每个提示问题之前提供详细说明。

  • config file-name— 您希望 APM 在启动时使用的初始配置文件。

  • template file-name- YAML 格式的文件,其中包含在设置过程中创建的配置文件的子集。设置过程会自动使用在模板文件中输入的值。使用该 template 选项时,无需在设置过程中手动输入模板文件中包含的信息。仅当使用 Red Hat OpenShift Container Platform 创建群集或创建多地理群集时,才应使用该 template 选项。 表 3 介绍了需要在配置文件中 template 输入的信息。

    注意:

    仅使用选项 bbecloudsetup 或选项 template file-name 。不要同时使用这两个选项。

  • mandatory- 仅在设置过程中询问必填问题。

  • optional- 仅询问设置过程中不需要的问题。

sudo -E apm shell --context [context-name | multi-cluster-context-name] --workload-context workload-context-name [-p|--pipe] microservice-name

将您连接到正在运行的微服务。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • workload-context workload-context-name- 要连接到的微服务所在的工作负载上下文的名称。

  • microservice-name- 要连接到的微服务的名称。

  • pipe- 允许您将输入通过管道传输到命令中。

apm status --context [context-name | multi-cluster-context-name] [-o|--output json] --terse --detail

显示 APM 服务的当前状态。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • output- 允许您请求 JSON 格式的输出。

  • terse- 显示系统运行状况的汇总输出。

  • detail- 显示每个容器的信息。

sudo -E apm stop --context [context-name | multi-cluster-context-name] --now

停止所有 APM 服务。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

  • now—立即停止 APM,而不是等待两分钟的延迟。

apm storage --context [context-name | multi-cluster-context-name]

提供 APM 的存储驱动程序的状态。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

sudo -E apm unlink --context [context-name | multi-cluster-context-name]

取消链接与上下文关联的组件。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

apm version --context [context-name | multi-cluster-context-name] --detail

显示 APM 实例中每个正在运行的微服务的版本以及 APM 实用程序。它还列出了系统上所有可用的 APM 软件版本。

此命令提供以下选项:

  • context- 输入以下任一选项:

    • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

    • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

    • detail- 显示详细信息。

使用以下常规语法发出命令:

  • 简短的选项:

  • 对于长期选项:

要将命令定位到特定群集上下文,请使用该 context 选项。

要显示带有简要说明的可用命令列表,请使用 h 或 help 选项:

要显示特定命令的选项:

要指定 no-color 禁用彩色文本输出的选项(用于区分日志与不同微服务):

使用 APM 安装实用程序将 APM 升级到新版本

使用此过程升级到安装在类似群集部署(单个地理位置或多个地理位置)上的新版本的 APM。此过程假定 APM 在您的系统上运行。

注意:不能在单个地理位置和多个地理位置部署之间升级。

使用此过程升级到新版本的 APM,该版本安装在由 BBE Cloudsetup 实用程序或 Red Hat OpenShift Container Platform 控制台创建的群集上。此过程假定 APM 在您的系统上运行。

  1. 将 APM 软件包从瞻博网络软件下载页面下载到跳转主机。

    APM 可作为压缩的 tarball 映像 (.tgz) 使用。文件名中包含版本号作为名称的一部分。版本号的格式为:<Major>.<Minor>.<Maintenance>

    • major 是产品的主要版本号。
    • minor 是产品的次要版本号。
    • maintenance 是修订号。
  2. 通过输入以下方式在跳转主机上解压 APM tarball (.tgz) 文件:
  3. 解压 tarball 后运行加载程序脚本。
  4. 使用命令 link 链接到群集。该 link 命令将加载的 APM 软件包关联到群集,以准备设置。为单个地理位置或多个地理位置部署输入的命令是不同的。运行以下适合部署的命令:
    • 单一地理位置:

    • 多地理位置:

    • context- 输入以下内容之一:

      • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

      • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

    • apm-version—APM 软件版本。

    • workload-1-context-name workload-2-context-name- 两个工作负载上下文名称。

  5. 如果您要在红帽 OpenShift 容器平台群集上升级 APM,请使用 OpenShift CLI 登录,然后继续下一步。
    如果要在 BBE Cloudsetup 创建的群集上安装 APM,请继续执行下一步。
  6. 您必须使用每个群集的容器注册表进行身份验证才能推送 APM 容器镜像。对于单个地理位置部署。使用单个群集的容器注册表进行身份验证。对于多地理位置部署,可以使用管理的容器注册表和两个工作负载群集进行身份验证。向注册表进行身份验证的方式取决于您是在 BBE Cloudsetup 创建的群集上还是在 Red Hat OpenShift Container Platform 群集上安装 APM(有关详细信息,请参阅相应的文档)。
  7. 运行命令 setup 以完成任何其他环境值的设置。为单个地理位置或多个地理位置部署输入的命令是不同的。运行以下适合部署的命令:
    • 单一地理位置:

    • 多地理位置:

    • context- 输入以下内容之一:

      • context-name- 单个群集设置的群集的 Kubernetes 上下文名称。

      • multi-cluster-context-name- 多地理位置设置的上下文名称。是 multi-cluster-context-name 应用于 link 命令的用户定义字符串,用作两个工作负载集群的通用参考。

    • update 是仅提示缺失值(主要在加载新软件版本后使用)。

  8. 显示正在运行的数据库,查看哪个 Pod 是主 Pod,并确定是否要升级持久状态数据库。为单个地理位置或多个地理位置部署输入的命令是不同的。运行以下适合部署的命令:
    • 单一地理位置:

    • 多地理位置:

  9. 显示新包中的数据库版本:
    注意:

    例如,数据库版本 6.2.16-debian-12-r3 晚于正在运行的版本 (6.2.14),因此您需要升级数据库。

  10. 如果不是 jnpr-apm-redis-0 主数据库,则启动数据库切换。为单个地理位置或多个地理位置部署输入的命令是不同的。运行以下适合部署的命令:
    • 单一地理位置:

    • 多地理位置:

  11. 使用 rollout 命令升级微服务。按以下顺序输入部署的命令(单个或多个地理位置):
    注意:

    如果redis微服务版本没有变化,则无需运行rollout命令进行升级。

    • 单一地理位置:

    • 多地理位置

      注意:您需要在两个工作负载上下文上运行以下命令。在休眠上下文上完成这些命令后,执行(apm multi-cluster switchover请参阅 表 1)。执行切换时,会将当前活动工作负载上下文切换到休眠上下文,反之亦然。然后,在现在休眠的上下文中执行这些命令。
  12. 验证所有微服务是否都在运行新版本的软件:

使用 APM 实用程序启动或停止 APM 服务

使用实用程序脚本启动 apm 或停止所有 APM 服务。服务按依赖关系顺序开始。首先开始提供基本服务(数据库和管理),然后是其他服务。服务按依赖关系相反的顺序停止。

  • 要启动所有 APM 服务:

    注意:

    APM 在您执行 apm setup 命令时从其初始设置开始。执行命令时 apm stop ,任何持久状态都将丢失。可以使用命令 apm save-config 保存当前配置。保存的配置是下次启动 APM 时使用的配置。

  • 要停止所有 APM 服务:

使用 APM 实用程序设置密钥

您可以在设置过程中设置机密,也可以运行以 sudo -E apm setup --context context-name --secrets 设置机密或更新它们。

注意:

如果输入密钥名称的值,则不会要求您提供密钥或认证文件。

使用 APM 实用程序显示数据库信息

该 apm db-info 命令显示 APM 数据库微服务的当前状态,包括当前版本、有状态集 Pod 及其角色。

位于单一地理位置的设置

位于多个地理位置的设置

注意:使用该apm db-info命令时,参数workload-context workload-context-name是可选的。

使用 APM 实用程序检查 APM 服务的状态

使用 apm status 实用程序脚本检查 表 2 中列出的每个 APM 服务(功能组件)的状态。状态显示服务是否正在运行、已退出或尚未启动。它还会在 Kubernetes Pod 上显示服务名称。可以比较服务的正常运行时间,以快速查看是否已重启任何服务。

注意:您可以使用apm status实用程序脚本检查多地理位置设置中每个 APM 服务的状态。
表 2:使用 status 命令显示的服务

微服务

Pod 前缀

addrman - 地址管理器。

jnpr-apm-addrman

dbSync - 数据库同步。

jnpr-apm-db同步

entman - 实体管理器。

jnpr-apm-entman

管理 — CLI 管理。

JNPR-APM-管理

apm-operator — 协调切换并收集系统运行状况信息。

jnpr-apm-operator

provman — 配置管理器。

jnpr-apm-provman

redis (远程字典服务器)— 由一组提供持久数据库的 Pod 组成。

jnpr-apm-redis

要检查状态,请执行以下操作:

  1. 显示服务状态。
  2. (可选)以 JavaScript Object Notation (JSON) 格式呈现版本信息,这对于编写脚本接口很有用。

例如:

使用 APM 实用程序显示 APM IP 地址

使用 apm ip 实用程序脚本显示 APM Pod 编排所需的 Kubernetes 对象。例如:

使用 APM 实用程序显示日志记录

使用 apm logs 实用程序脚本显示 APM 运行时发生的事件日志。您还可以使用 BBE 事件收集和可视化实用程序来显示自 APM 启动以来收集和存储的基于文件的日志。BBE 事件收集和可视化是一个基于云的集中式实用程序,它提供了一种捕获跨越 APM 微服务生命周期的 APM 日志的方法。设置 APM 时,您可以链接到 BBE 事件收集和可视化日志记录实用程序。请参阅 《宽带边缘事件收集和可视化安装指南》。

显示 APM 日志记录

BBE 事件收集和可视化是一个基于云的集中式实用程序,它提供了一种捕获跨越 APM 微服务生命周期的 APM 日志的方法。如果 BBE 事件收集和可视化正在运行,则在 APM 设置期间,您可以指向 BBE 事件收集和可视化来执行日志记录。BBE 事件收集和可视化通过一个基于 Web 的界面连接 OpenSearch 的功能,可对收集的系统日志事件进行高级搜索、聚合、查看和数据分析。

使用 apm logs 实用程序脚本显示 APM 运行时发生的事件日志。事件日志包括事件,例如以下非详尽列表中所示的事件:

  • 池域注册事件

  • 地址分配失败

  • 网络实体连接失败

  • 启动消息

  • 网络实体重新同步事件

  • 池和分区利用率阈值和耗尽警告

默认情况下,APM 将日志发送到服务的标准输出 (stdout)。输出显示所有服务或指定服务的循环缓冲区。您还可以启用日志记录以跟踪正在运行的服务的日志输出。遵循日志输出将创建一个打开的会话,该会话将日志持续流式传输到 stdout。

APM 日志记录函数掩盖了收集日志信息的命令的 kubectl log 潜在复杂性。您仍然可以使用该 kubectl log 命令,但这超出了本文档的范围。

注意:

您可以使用第三方应用程序来捕获和重定向容器的 stdout 流。请参阅您的第三方文档以获取帮助。您还可以使用不同的日志记录驱动程序配置 Docker 以重定向 stdout。请参阅您的 Docker 文档以获取帮助。

要显示所有服务的 APM 日志:

最佳实践:

仅在瞻博网络支持代表的指导下进行故障排除时才使用该 apm logs [--context contextName] [--workload-context workload-context-name]] --services 选项。

要跟踪所有服务的日志,请指定以下选项 (-f):

要查看 Kubernetes Pod 中容器先前实例的日志,请指定之前的容器选项 ():-p

您可以使用标准 Ubuntu 约定将日志重定向到文件或终端和文件。有关更多信息,请参阅 Ubuntu 文档,但您可以使用以下示例作为起点:

  • 仅将所有日志重定向到一个文件。

  • 将所有日志重定向到屏幕和文件。

最佳实践:

只能在瞻博网络支持代表的指导下将该 --services 选项用于故障排除。

您可以按严重性增加的顺序指定以下任何严重性级别:

表 3:严重性级别
严重性级别 描述
debug 通常仅在尝试诊断问题时才对其感兴趣的详细信息。这些日志通常非常频繁。
info 关注的事件或非错误条件。此级别的日志可确认一切按预期工作。这些日志通常不是很频繁。
warning 表示发生了意外情况或不久的将来可能会出现某些问题。后者的一个简单示例是 磁盘空间不足 警告,表示您可能很快就会用完磁盘空间。无论哪种情况,软件仍按预期工作,但您可能需要更密切地监控它。这些日志通常不是很频繁。
error 表示更严重的问题导致软件无法执行某些功能,但软件已尽可能妥善处理问题以继续运行。
critical 严重错误,指示程序本身可能无法继续运行。

您可以使用该 --logset 选项仅显示 APM 服务或仅预构建服务的日志。如果不使用此选项,则仅显示 APM 服务日志。

要仅显示 APM 服务的日志:

要显示预构建服务的日志,请执行以下操作:

预构建服务是从其他来源借来的服务,为 APM 提供基础设施功能。这些来源包括 mgmt、redis 和 redis-sentinel。例如,redis 提供数据库和消息服务,管理提供配置和 CLI 服务等等。

使用 APM 实用程序确定 APM 版本

使用 apm version [--context context-name] [-o|--output json] [--detail] [--compare software-version] 实用程序脚本确定已安装的 APM 版本的版本号。

要显示发行版本:

要将指定的软件版本与指定上下文的当前部署版本进行比较:

使用该 -j 选项以 JavaScript Object Notation (JSON) 格式呈现版本信息。

使用 APM 实用程序卸载并删除 APM

使用 apm 实用程序脚本卸载 APM 配置。该 uninstall 命令将恢复您在设置 APM 时执行的操作。使用此命令可将 APM 恢复到安装应用程序后、执行任何设置配置之前的状态。

要卸载 APM:

卸载 APM 后,我们建议您使用 Debian 卸载过程删除整个软件包。

有关 apm clean 命令选项,请参阅以下内容:

  • -h 或 --help—显示帮助消息并退出。

  • --log 或 -l [error | warn | info | debug] - 调整实用程序脚本的日志级别。

  • --no-color—打印无颜色的邮件。

  • --docker- 清理本地 docker 缓存。

  • --release release-number- 要清理的释放 (默认为未使用的释放)。

  • --dry-run- 列出将要移除的发行版或容器。

  • --uninstall— 卸载所有软件版本并从系统中删除 APM。

  • --cluster-repos- 清理已移除的群集存储库。

如何使用 APM 实用程序访问 APM 配置和操作命令

使用 APM 实用程序访问 APM CLI

要访问 CLI 提示符,请输入以下 apm 实用程序脚本命令:

输入问号以查看可用的顶级 CLI 命令。此命令列表是 Junos OS 顶级命令的子集。

有关 Junos OS CLI 基础知识的概述,请参阅 Day One:探索 Junos CLI。有关更多详细信息,请参阅 CLI 用户指南。

使用 APM 实用程序访问和使用 CLI 配置语句

  1. 使用 APM 实用程序命令 apm cli 访问顶级 CLI 提示符。
  2. 访问配置模式以配置 APM 以及 APM 用于配置托管路由器的信息。
  3. 输入 CLI 语句以配置 APM 管理的 BNG、池域、池和系统属性。
  4. 保存并激活配置。仅当没有配置语法错误时,此命令才会成功。
  5. (可选)退出配置模式并返回到顶级 CLI 提示符。

使用 APM 实用程序访问和使用 CLI 操作命令

要监控 APM、查看 APM 配置和统计信息或手动运行某些操作:

  1. 使用 APM 实用程序命令 apm cli 访问顶级 CLI 提示符。
  2. 输入特定命令。
    • 使用 show 命令显示统计信息以及分区、BNG、池域和池之间的关系。

    • 使用 request 命令手动启动某些 APM 操作。