June 26, 2024
背景
日益增长的数据运维需求与低效昂贵的人工运维方式是影响自主移动机器人企业经营效率的巨大痛点。自主移动机器人的故障率高居不下,导致机器人的可用时间较短,企业的成本结构失衡,也影响了客户对于机器人的持续采购。
对于以上问题,刻行时空提出了远程运维的解决方案。这个方案主要有两部分构成,第一部分是远程数据自动采集与诊断,第二部分是远程可视化运维。本篇文章主要介绍刻行时空数据平台的数据自动采集与诊断功能。该功能通过实时监测设备日志采集目标数据、执行自动诊断,实现了数据的远程采集、自动上传和自动诊断,为后续的远程可视化运维奠定了基础。
准备工作
机器人在实际运行过程中可能会出现环境故障、软件故障和硬件故障。一般这些故障都有对应的错误码,当这些故障出现的时候,机器人首先是需要上报自身的状态,然后有运维人员来负责解决,让机器人从故障状态恢复至正常运行状态。
本文将通过一个名称为 dev-A 的设备,模拟当 dev-A 出现故障时(即在其 log 中出现 error1 的故障),演示平台的数据自动采集与诊断功能,展现平台的价值。
在平台能工作之前,需要完成配置规则,配置数采设备信息,注册设备和查看实例四个步骤。当一切工作准备就绪之后,只要设备中的 log 出现 error1 的信息时,log 文件便会自动上传到平台中,并以**记录**的形式被平台进行管理。此外,通过平台提供的自动化诊断的能力,在客户所期望标记的 error1 出现的时间点可创建**一刻**。通过一刻,让信息更加内聚,让运维人员收到告警信息时,通过一刻也能快速的排查问题。
**备注**
1. 记录是一个或多个描述相同或相似场景的文件集合,属于项目。
2. 一刻是一段数据中的关键片段,属于记录。
在开始之前,用户需要登录平台并创建项目,可按照以下步骤进行:
通过浏览访问 https://sso.coscene.cn/
点击右上角的快速登陆进入登陆界面。
选择登陆的方式,进入刻行时空数据平台。若要使用邮箱登陆请联系小刻。
2. 在平台创建一个项目,项目作为数据管理单元,负责数据的存储、管理、隔离及权限控制。
3. 随后,请查看用户在平台中的组织角色是否为管理员,出于数据安全考虑,只有组织管理员才有配置数据自动采集与诊断的权限,若不是管理员,请联系组织管理员更新组织角色。
4. 准备一台机器人设备
添加规则
1. 进入创建的项目,点击左侧边栏的项目设置,进入页面后找到数采与诊断规则的页面,点击添加**规则组**。在命名这个规则组名称之后,就可以在里面添加规则了。
**备注**
1. 规则是规则组中的单个规则,用于定义触发数据采集与诊断的条件,以及触发后的操作。
2. 填写模版化信息(可选):
当规则想用于创建多个高度相似但部分信息不同的规则场景,可以将信息不同的部分参数化,进而使用模版化实现自动生成多条规则的操作。例如,当有 error 1 和 error 2 时,可在平台上创建如下的模板化规则。
3. 添加触发条件:
可添加多个触发条件,只要有一个条件满足即可触发操作。单引号包围的信息是在 log 中出现的信息。以图片中为例,log 中包含 'error 1' 的信息都会被自动采集并上传到平台。
4. 选择触发操作:生成记录和创建一刻。前者对设备端生效,在设备端触发规则后会生成记录并上传文件;后者对记录生效,在记录中触发规则后,在触发时间点创建一刻。
5. 点击保存完成对规则参数信息的配置,回到数采与诊断规则页面通过按钮启用刚刚添加的规则组。
添加数据诊断触发器
添加了规则之后,满足触发条件的数据会自动进行上传。但是需要完成自动诊断还需要两个步骤。第一是配置数据处理逻辑,第二是配置触发条件。数据处理逻辑在刻行的平台中被定义为动作,触发条件则被定义为触发器。当前平台中已经预定义了一些系统动作,通过点击记录详情中的“调用动作” 可以手动调用一个动作。触发器的配置中可绑定动作来自动化完成数据诊断。在此次样例的演示中,我们不会手动触发动作,会将动作绑定在触发器中,由触发器自动触发。
当触发器满足调用动作的条件的时候,会自动进行诊断。
按照以下步骤可完成触发器的创建:
1. 在左侧栏中的自动化-触发器中创建触发器
2. 输入触发器的名称,触发条件和关联动作。
例如,我们将触发器命名为数据诊断,文件通配符模式为 *.log(格式使用 Glob,详情可以参考附录链接),从系统动作下拉框中选择数据诊断,点击创建触发器。
配置数采信息
配置完规则和触发器之后,还需要配置数采设备信息去定义需要监控的设备日志所在目录、设备信息文件的存放目录等信息。
1. 点击右上角的用户头像,在下拉栏中选择组织管理,进入设备详情页后点击编辑数采规则。
2. 清空规则中的默认内容后,复制下述规则,粘贴在编辑器中后点击保存编辑,您就完成了数采信息的配置了。
准入设备 & 添加设备
在配置完规则和数采信息,我们需要将您需要实现自动化的设备添加到平台中。
以 Linux 设备为例:
1. 打开设备终端,执行以下命令并输入密码,进入 root
2. 在设备终端,创建文件监听目录 /root/logs
3. 在组织管理-设备页面中选择添加设备
4. 在弹窗中选择从设备端添加,复制安装命令,以 root 账户粘贴到设备终端
5. 当在组织管理页面的设备看到该设备的时候(需耗时 1 分钟左右),该设备的 Agent 已经安装成功。对于该设备,通过刻行时空数据平台的前端页面可以执行两个操作:准入数采,准入远程。
6. 点击进入项目设备页面,点击【添加设备】,找到需要添加的设备,将其添加到项目设备中。
写入文件
当配置好规则和设备之后,您可以在设备监听目录中写入文件。
1. 确认设备已获取到数采与诊断规则,当日志中出现如下字段时,表示已成功获取到规则。
2. 下载设备的示例 log 文件到设备 dev-A,先通过平台网页 SSH 的能力,远程登录设备
3. 远程登录设备之后,执行以下命令
执行成功以后,会有以下结果
示例 log 文件详情:
查看创建的记录和一刻
1. 当完成上述操作后,您可以前往先前创建的项目,点击左侧边栏中的记录,查看自动创建的记录。
2. 查看在触发时间点创建的一刻
按照以上步骤,我们就完成了对名称为 dev-A 的设备,模拟当 dev-A 出现故障时(即在其 log 中出现 error1 的故障),展现了平台数据自动采集与诊断功能。通过这个能力,将设备和平台的链路打通,当设备出现故障时,平台会按照定义的规则自助采集数据,降低机器人的故障率,提升机器人的可观测性。