谢邀!
如果只是让大佬看tail -f的日志,写个bat脚本就行了吧。为什么要通过web?好处有什么?公司有网络限制吗?测试开发机账户密码要求比较严格?
还想问个问题,大佬会有这个需求?web看tail -f看日志?我有点理解不了,tail -f给的信息量太少了吧,全量信息看不了,而且业务发生错误时,我们连搜索都无法做到。这满屏刷刷的感觉,是因为看着比较爽吗?如果大佬要看,最好是能帮助分析的工具或是已经分析出来的结果。
建议你好好和大佬们沟通一下,一定要结合实际需求开发,不然功能做出来,可能并不一定有人使用,那对自己也是个打击。如果确实要做,提供三套思路,分别是:
使用tail
也就是你的思路。如果只是看tail -f的日志,我觉得,写的脚本就行了,bat脚本或python脚本。如果一定要ssh + web浏览也可以,但限制会比较多。主要是因为tail是别人写的,一些我们需要的功能或许是没有,比如无法做到实时,每次只能手动刷新页面,还有文件读取不受控制,比如我想向上读取,也做不到。
自己写
纯粹自己写,对自己也是个提升。通过web实时查看日志,主要涉及两部分,读取和触发。
读取即为日志读取,要分全量和增量两方面来看,第一次读取采用全量读取,当然不一定是全部读取出来,你可以设置一个比较大的范围,比如读取最后的500行。而增量获取,就是每次获取数据后,记录下最新读取到的位置,下次从这个位置向后读取数据,并进行拼接。如果要考虑,浏览器内存占用,前段还需经常丢弃一些老的数据。
接口如何触发?可以使用你说的websocket实现,也可以使用ajax定时读取,简单使用而且工作量小。不过这种方式会存在读取不实时的问题。websocket的数据读取的触发方式更灵活些,比如可以固定时间读取或文件增量超过固定大小读取,也可以把两者结合起来。如果实时性要求比较高,python中有文件状态监控的包,pynotify或watchdog。声明,我都没用过,你可以都用下看看。
开源组件
为什么不尝试用一下开源的日志收集分析平台,比如elk。建议你可以去了解一下。它可以做非常详细的分析。基本的日志查看是必须支持的,还有数据过滤查询、报表制作、监控等。当然主要是用在上线业务会更好。
如果说这种方式的缺点,那就是,学习成本有点高。如果之前没有接触,估计使用会比较困难。