运维神器: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