使用KubeFATE的日志聚合功能跟踪处理FATE的日志 - FederatedAI/KubeFATE GitHub Wiki

KubeFATE 日志聚合

从KubeFATE v1.5.1开始支持对FATE集群日志的收集功能。通过使用kubefate cluster log命令,可以轻松地收集FATE集群各个组件,或指定单一组件的日志。

为什么要日志聚合

在一个程序运行的生命周期内,日志往往提供了丰富的信息,给予了运维工程师或者程序的用户对程序更好的掌控。日志通常记录在日志文件中,集群应用的日志往往都分散在不同的主机中,这就使得日志的查看十分困难,日志的收集和管理就十分必要。

KubeFATE的日志聚合功能,就是解决了FATE集群的日志分散不容易查看的问题。

日志聚合的价值

使用日志聚合功能可以方便的完成下面的工作:

运行状态监控

集群应用的运行状态是集群是否健康的重要指标。对于FATE来说,通过查看日志是了解FATE集群运行是否健康的很好的方式。

任务错误排查

程序应用的开发不可避免的会有各式各样的错误,而在使用过程中能够及时的发现问题,定位原因是非常必要的。

KubeFATE的日志聚合功能对使用FATE的用户来说是很好的排查工具

算法调试

针对联邦学习的AI计算任务,往往需要多方参与,不同方的集群实例分散在各种复杂的环境当中,这就对了联邦学习算法设计调试带来了非常大的挑战。

KubeFATE的日志聚合可以收集单方的所有日志信息,对调试分析提供了有力的支持。

任务监控

AI计算正式生产的任务通常需要巨大地计算量,也需要较长的任务时间,在这期间保证集群的健康运行就显得非常重要,通过集群的所有日志了解集群的健康状态是一个非常重要的手段。

使用方法

KubeFATE的日志聚合功能对使用FATE带来了极大的改变,那么接下了看下如何使用这些功能。

命令

kubefate cluster logs [options] <cluster_ID>  [modules_name]

[options] 是命令的选项

<cluster_ID> 是指定FATE集群的ID (必选)

[modules_name] FATE对应的模块组件

选项

options 描述
--follow, -f 指定是否使用流式传输日志。 (默认值:false)
--previous 如果为true,则在容器中打印容器的先前实例的日志(如果存在)。 (默认值:false)
--since value 仅返回比相对持续时间(例如5s,2m或3h)新的日志。 默认为所有日志。 与--since-time,只能使用其中的一个。
--since-time value 仅在特定日期(RFC3339)之后返回日志。 默认为所有日志。 与--since,只能使用其中的一个。
--timestamps 在日志输出的每行中包括时间戳。 (默认值:false)
--tail value 要显示的最近的日志文件行。 默认值为-1,表示不带选择器,显示所有日志行。 (默认值:-1)
--limit-bytes value 要返回的日志的最大字节数。 默认为无限制。
--help show help (default: false)

示例

$ kubefate cluster list
UUID                                	NAME     	NAMESPACE	REVISION	STATUS 	CHART	ChartVERSION	AGE
8b980f0b-b139-40b2-a94d-d5aebd14d913	fate-9999	fate-9999	1       	Running	fate 	v1.5.1      	100s

通过日志检查指定组件是否成功运行

查看python组件的日志

kubefate cluster logs 8b980f0b-b139-40b2-a94d-d5aebd14d913 python

python_log

查看rollsite组件的日志

kubefate cluster logs 8b980f0b-b139-40b2-a94d-d5aebd14d913 rollsite

rollsite_log

持续监控组件的日志

监控python组件的日志

kubefate cluster logs -f 8b980f0b-b139-40b2-a94d-d5aebd14d913 python

python_flow_log

持续监控集群所有组件的日志

kubefate cluster logs -f 8b980f0b-b139-40b2-a94d-d5aebd14d913

all_flow_log

监控错误日志

kubefate cluster logs 8b980f0b-b139-40b2-a94d-d5aebd14d913 | grep ERROR

error_log

查看单个任务日志

kubefate cluster logs b4db45a6-e9b5-4350-8be3-511ea72c76cf | grep <Job_ID>

job_log

⚠️ **GitHub.com Fallback** ⚠️