运维神器:asciinema 记录你所有的操作



缘由

        最近看到了2个项目,促使我再次核查了以下这个软件是什么。这两个项目是 webterminal 和 jumpserver 。这两个项目里面都有一个功能 运维审计,用户行为录像。挺好奇这个录像怎么做的,就去找了下有咩有类似的开源软件。其实以前在上海安居客的时候我们运维也有这种软件,但是具体是不是叫这个名字我不太清楚,我个人觉得这种录屏软件挺神奇了 就想了解下,当然由于种种原因 直到本周我才认真查阅了下,找到了这个可以实现这个功能的软件:asciinema

介绍

        asciinema 是一个开源命令行终端录制器,它可以将命令行输入输出的任何内容加上时间保存在文件中,同时还提供方法在终端或者web浏览器中进行回放。asciinema的录制和播放都是基于文本的,相比传统的video有很多好处,例如录制文件体积小,在播放的过程中可以暂停复制其中的文本内容等等

安装

        asciinema使用python开发,所以只要有python环境安装很方便。我们使用最简单的方式进行安装吧,如下命令

pip3 install asciinema

命令介绍

录制

asciinema rec first.cast

播放

两倍速度播放

asciinema play -s 2 first.cast

自动录制审计日志

        通过如何配置才能把所有用户的操作记录下来咧?我查阅了相关资料,可以在 profile中进行配置,因为这是每个人登录都会加载的文件,大致命令如下,可以自行修改

$ vim /etc/profile
#添加如下内容 记住一定要加 && exit 不然 用户退出的时候很奇怪,需要退出两遍
#由于我是每天一个文件,所以这边要判断文件是否存在,存在要使用 --append
rec_path="/tmp/recv/$USER-$(date +%Y%m%d).log"
if [ -f "${rec_path}" ]; then
	/usr/local/bin/asciinema rec  $rec_path --append -q && exit
else
	/usr/local/bin/asciinema rec  $rec_path  -q && exit
fi

效果图

参考文章

asciinema : https://github.com/asciinema/asciinema

webterminal : https://jimmy201602.github.io/doc/zh/ 

jumpserver : https://github.com/jumpserver/jumpserver

linux
编程浪子走四方:CodeRonin