如何在
VMware Aria Automation
中使用日志和日志包

各种服务会自动生成日志。可以在
VMware Aria Automation
中生成日志包。此外,还可以将环境配置为将日志发送到
VMware Aria Operations for Logs
有关
vracli
命令行实用程序的信息,请在
vracli
命令行中使用
--help
参数(例如,
vracli log-bundle --help
)。
有关
VMware Aria Operations for Logs
的相关信息,请参见如何在 VMware Aria Automation 中配置将日志转发到 VMware Aria Operations for Logs

日志包命令

可以创建日志包,以包含所运行服务生成的所有日志。日志包中包含所有服务日志。可以使用日志包进行故障排除。
在集群环境(高可用性模式)中,仅在一个节点上运行
vracli log-bundle
命令。将从环境中的所有节点中提取日志。但是,如果发生网络或其他集群问题,则从尽可能多的可访问节点中提取日志。例如,如果一个节点在包含三个节点的集群中断开连接,则仅从两个正常节点收集日志。
vracli log-bundle
命令输出包含有关发现的任何问题及其解决办法步骤的信息。
  • 要创建日志包,请通过 SSH 登录到任何节点,然后运行以下
    vracli
    命令:
    vracli log-bundle
  • 要更改从每个节点收集日志的超时值,请运行以下
    vracli
    命令:
    vracli log-bundle --collector-timeout $
    CUSTOM_TIMEOUT_IN_SECONDS
    例如,如果您的环境中包含大型日志文件、网络连接速度慢或 CPU 使用率较高,则可以将超时设置为大于默认值 1000 秒。
  • 要确定特定服务日志(例如
    ebs
    vro
    )使用的磁盘空间,请运行以下
    vracli
    命令并检查命令输出:
    vracli disk-mgr
  • 要配置其他选项(如程序集超时和缓冲区位置),请使用以下
    vracli
    help 命令:
    vracli log-bundle --help

日志包结构

日志包是一个带时间戳的 tar 文件。包的名称符合模式
log-bundle-<
date
>T<
time
>.tar
文件,例如
log-bundle-20200629T131312.tar
。日志包通常包含环境中所有节点的日志。如果出现错误,则包含尽可能多的日志。至少包含本地节点的日志。
日志包中包含以下内容:
  • 环境文件
    环境文件包含各种 Kubernetes 维护命令的输出。该文件提供有关每个节点和每个 pod 的当前资源使用情况的信息。此外,该文件还包含所有可用 Kubernetes 实体的集群信息和描述。
  • 主机日志和配置
    收集每个主机的配置(例如,其
    /etc
    目录)和主机特定的日志(例如
    journald
    )时,对每个集群节点或主机使用一个目录。目录的名称与节点的主机名相匹配。目录的内部内容与主机的文件系统相匹配。目录数与集群节点数相匹配。
  • 服务日志
    Kubernetes 服务的日志位于以下文件夹结构中:
    • <
      hostname
      >/services-logs/<
      namespace
      >/<
      app-name
      >/file-logs/<
      container-name
      >.log
    • <
      hostname
      >/services-logs/<
      namespace
      >/<
      app-name
      >/console-logs/<
      container-name
      >.log
    示例文件名为
    my-host-01/services-logs/prelude/vco-app/file-logs/vco-server-app.log
    • hostname
      是当前运行或过去运行应用程序容器的节点的主机名。通常情况下,每个服务的每个节点都有一个实例。例如,3 个节点 = 3 个实例。
    • namespace
      是在其中部署应用程序的 Kubernetes 命名空间。对于面向用户的服务,此值为
      prelude
    • app-name
      是生成日志的 Kubernetes 应用程序的名称(例如
      provisioning-service-app
      )。
    • container-name
      是生成日志的容器的名称。某些应用程序包含多个容器。例如,
      vco-app
      容器包括
      vco-server-app
      vco-controlcenter-app
      容器。
  • (旧版)Pod 日志
    虽然可以使用
    vracli log-bundle --include-legacy-pod-logs
    命令继续在包中生成 pod 日志,但不建议这样做,因为所有日志信息都已位于每个服务的日志中。包含 pod 日志可能会不必要地增加生成日志包所需的时间和空间。

减少日志包的大小

要生成较小的日志包,请使用以下任一
vracli log-bundle
命令:
  • vracli log-bundle --since-days
    n
    使用此命令可以仅收集过去几天内生成的日志文件。否则,将保留并收集过去 2 天的日志。例如:
    vracli log-bundle --since-days 1
  • vracli log-bundle --services
    service_A
    ,
    service_B
    ,
    service_C
    使用以下命令仅收集指定提供的服务的日志。例如:
    vracli log-bundle --services ebs-app,vco-app
  • vracli log-bundle --skip-heap-dumps
    使用此命令可以从生成的日志包中排除所有堆转储。

显示日志

可以使用
vracli logs <
pod_name
>
命令输出服务 pod 或应用程序的日志。
可以使用以下命令选项:
  • --service
    显示应用程序的所有节点(而不是单个 pod)的合并日志
    示例:
    vracli logs --service abx-service-app
  • --tail n
    显示日志的最后
    n
    行。
    n
    的默认值为 10。
    示例:
    vracli logs --tail 20 abx-service-app-8598fcd4b4-tjwhk
  • --file
    仅显示指定的文件。如果未提供文件名,则显示所有文件。
    示例:
    vracli logs --file abx-service-app.log abx-service-app-8598fcd4b4-tjwhk

了解日志轮换

关于日志轮换,请了解以下服务日志注意事项:
  • 所有服务都生成日志。服务日志存储在专用的
    /var/log/services-logs
    磁盘中。
  • 所有日志都定期轮换。每小时进行一次轮换,或者在达到特定大小限制时进行轮换。
  • 最终会压缩所有旧日志轮换。
  • 日志轮换没有服务级配额。
  • 系统会保留尽可能多的日志。Automation 会定期检查日志的已用磁盘空间。当空间达到 70% 时,将清除较旧的日志,直到日志的磁盘空间达到 60%。
  • 如果需要更多空间,可以调整日志磁盘的大小。请参见增加 VMware Aria Automation 设备的磁盘空间
要检查日志磁盘空间,请运行以下
vracli
命令。对于每个节点,
/dev/sdc(/var/log)
的可用空间应接近 30% 或更多。
# vracli cluster exec -- bash -c 'current_node; vracli disk-mgr; exit 0' sc1-10-182-1-103.eng.vmware.com /dev/sda4(/): Total size: 47.80GiB Free: 34.46GiB(72.1%) Available(for non-superusers): 32.00GiB(66.9%) SCSI ID: (0:0) /dev/sdb(/data): Total size: 140.68GiB Free: 116.68GiB(82.9%) Available(for non-superusers): 109.47GiB(77.8%) SCSI ID: (0:1) /dev/sdc(/var/log): Total size: 21.48GiB Free: 20.76GiB(96.6%) Available(for non-superusers): 19.64GiB(91.4%) SCSI ID: (0:2) /dev/sdd(/home): Total size: 29.36GiB Free: 29.01GiB(98.8%) Available(for non-superusers): 27.49GiB(93.7%) SCSI ID: (0:3)