售后打电话说现场设备出问题了,嵌入式工程师最想干什么?

简介: 售后打电话说现场设备出问题了,嵌入式工程师最想干什么?

作为嵌入式系统开发人员,我最想做的就是能够能通过telnet或者ssh登录到设备上,看看设备系统还正常不正常,查看程序日志,看看程序到底干什么去了!做软件的同学都知道,软件出问题,一定要保留现场,这样才容易查问题,特别是那种偶现的问题,现场以破坏,下次不知道什么时候出现了。下面给大家介绍下之前做过的一套嵌入式系统远程调试运维的软件。


嵌入式系统运维概述


提起运维,大家想到的可能都是服务器运维,各种linux服务器、windows服务器、交换机路由器配置、防火墙配置……不过,我这里所说的是嵌入式系统设备的运维,这个概念现在提的应该不多。这个也是最近几年,随着嵌入式(linux)设备的发展,使用不断增加而出现的,设备的量越来越大,特别是现在物联网爆发式增长,各行各业都会用到嵌入式系统,而这些设备,大部分都是用的嵌入式linux系统。


必要性


设备的量上去了,设备的运维问题也就是暴露出来了,设备一般使用现场偏远,有的是车载设备,随车满地跑,所以,维护起来并不像那些固定的服务器那样容易,这也就产生了嵌入式设备远程运维的概念。这里所说的远程运维,即是指可以像本地操作设备一样去操作与控制远程现场的嵌入式设备。


如果在物联网行业,一般嵌入式系统作为网关的形式存在,这样的话单个客户的用量并不会大,一般在10台以内的数量级,所以如果设备出了问题,一般还需要派人去现场,这样必然会增加额外的差旅费用。如果是车载设备,一般量就比较大了,一个地区可能会有成千上万台设备,这样就更需要建设远程运维系统了。


设计原则


作为远程运维程序,需要做的非常稳定,怎么才能尽可能稳定,不出bug?我们会将运维程序与正式的程序分开,并且运维程序在设备上做的尽可能简单,因为只有简单了,才能够稳定。这样也保证运维模块程序不受其他应用程序的影响。


如下图所示:

这里的运维平台用户对象主要是开发人员,开发人员在设备出问题时,通过运维平台可以远程登录到设备上面,可以查日志、下载日志、查看数据、查看系统状态等等。


实现思路


组成模块


和常规的平台通信类似,这里以典型的C/S架构为例(原来做的是C/S架构,当然也可以用B/S架构),需要三部分组成:


1.嵌入式设备程序

2.平台服务程序

3.客户端程序


嵌入式端与平台服务器端需要制定一套简单的协议,包括设备注册、心跳维持、ssh/telnet代理等,平台服务端会将注册上来的设备统一管理,可以分组织,以把不同地区、不同客户的设备分开,便于维护。客户端与平台服务端也有一套协议,主要是用于获取设备列表信息,还有ssh与telnet代理。


关键技术-远程登录


这里提到了ssh/telnet代理,大家可能都比较熟悉ssh和telnet,通常用于远程登录系统。像这种远程系统里,由于需要跨公网,并不能直接连接到设备,所以需要在平台服务端做ssh或者telnet的代理。这两种方式我们都用过,telnet是明文传输,存在安全问题;还有一点不能传输文件,ssh可以传输文件,也可以在xshell的登录终端直接利用xmodem协议传输文件。虽然说可以通过ftp服务传文件,但是在登录终端直接传输文件还是很方便的操作。


使用rz命令给设备下载文件,可以下载升级文件,下载配置文件等等,使用sz可以把设备的日志文件、数据发配置等送到自己的电脑上面。这样是不是很方便!

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
7月前
|
存储 运维 监控
语雀故障与反思,随便再领半年会员!
语雀故障与反思,随便再领半年会员!
335 0
|
设计模式 缓存 NoSQL
公司新来一个同事,把优惠券系统设计的炉火纯青!
公司新来一个同事,把优惠券系统设计的炉火纯青!
|
搜索推荐 程序员 SEO
程序员怎么接私活:外包众包接单方法!
程序员怎么接私活:外包众包接单方法!
662 0
程序人生 - 维修手机如何避坑?
程序人生 - 维修手机如何避坑?
90 0
|
Web App开发 自然语言处理 安全
TikTok 美国员工抱怨工作压力大;多省集中排查整治超时加班;黑客向上海市民卖抢菜软件被抓;苹果员工对回办公室工作感到不满
本周架构视点:TikTok 美国员工抱怨工作压力大:需周末加班,跨时区工作;谷歌调整绩效评价体系:降低评估频率,属于变相加薪;多个省份集中排查整治超时加班问题,互联网企业等被重点检查;向日葵远程控制回应服务器崩溃;GitHub 要求所有贡献代码的用户在 2023 年底前启用双因素认证;WhatsApp 前高管:后悔当年把公司卖给 Facebook。
196 0
|
安全 Java 程序员
2020 年的第一天,程序员鸭血粉丝又碰上生产事故
hello~各位读者新年好,我是鸭血粉丝(大家可以称呼我为「阿粉」),一位喜欢吃鸭血粉丝的程序员!2019 年,阿粉写了很多 bug,这不前一段时间 OOM 差点就把服务器搞挂。跨年的时刻,阿粉默默立下一个 flag,2020 年再见 bug。
2020 年的第一天,程序员鸭血粉丝又碰上生产事故
|
物联网 大数据 数据库
产品:“嘘,这事千万别让开发知道”
作为2019年首场最受瞩目的云计算开发者大会,阿里云火力全开。本次开发者大会聚焦开源大数据、IT基础设施云化、数据库、云原生、物联网五大主力方向。
2147 0
|
程序员
偶遇到客户的奇葩需求
@梁大折腾 部门老大:你,做个微信小游戏吧 我:啥样的? 老大:反正你就做个小游戏吧,这个火 我:????? @柔情 领导:那个运维啊,你来把他的系统破解了,要不把他服务器黑了也行。给你一天时间,搞不搞得定。
1858 0