点击上方“IT那活儿”,关注后了解更多精彩内容!!!
在一个健全的应用系统中,日志系统是一个非常重要的组成部分。日志系统可以记录下系统产生的所有行为,能够在系统异常时给运维人员指明方向,能够使运维人员及时排错,优化系统。因此在一个完整的系统中,日志是非常重要的。
在安全的领域中,安全系统需要记录在服务器上面的所有操作,同时对这些操作的危险性进行评估,并发送出对应的告警。同时如果系统中有任何组件异常也可以从操作历史命令中发现异常。因此,主机系统的操作日志也在日志系统中有着举足轻重的地位。因此,今天我们通过rsyslog服务来开启系统操作日志的记录。
rsyslog服务是一个syslog的多线程增强版,提供了高性能,极好的安全功能和模块化设计。同时支持不同服务器中的日志转发,因此,使用rsyslog搭建系统操作记录日志中转平台是首选。
首先,在进行操作前,需要先了解rsyslog服务中的local0-7的用法。Local0-7日志为rsyslog服务提供的共用户使用的自定义日志,我们只需要将操作日志自定义存储到local0-7日志中的一部分,即可对日志进行转发等配置。其次,在进行操作日志记录的配置的时候,我们需要先确定一点,我们在日志中需要什么信息。我们首先需要的是最基本的,操作的命令和操作命令对应的时间。其次,目前大部分服务器都是通过远程了连接的方式登录,因此获取远程操作此服务起的主机ip也就至关重要了。然后,在日常操作中,我们操作的命令并不一定是全路径,因此获取执行操作是的路径也非常重要。最后就是获取主机的IP。分析完毕后,我们可以发现,前面几项都可以通过格式化history命令来实现,最后一项则需要自己编写命令来获取主机IP。接下来,就开始正式操作。第一个难题,我们如何去记录这些命令呢,我首先想到的方案是编写脚本实时运行在主机上。但是此条直接被我pass掉。先不说是否对主机性能存在影响,但是每台服务器都需要维护,就是一大维护工作量。因此最好将这些东西集成到系统中。然后我就想到了既然能够在环境变量的配置文件格式化历史命令,那么我能不能尝试在环境变量中测试脚本呢?因此,我编写了一个简单的脚本,通过这个脚本可以及时记录这些操作命令的相关信息,并将其记录到rsyslog服务的local4.info日志中。这个脚本简单易懂,一目了然。a. 在使用source /etc/profile 命令刷新环境变量文件后,发现并无明显脚本错误的地方。然后测试history命令是否成功。b. 很显然,测试成功。然后输出HOSTIP变量,查看获取到的ip是否准确c. 操作成功,最后头疼的是我们并没有办法查看日志是否记录到的local4.info日志中。但是,rsyslog默认的message日志是能够记录主机上面所有info级别的日志,然后查看message日志,果然成功了。d. 至此我们离成功只剩一步,我们只需要将这个日志输出到一个固定的文件中即可。主机的操作记录日志注定不会存在很大的记录量,因此我们无需考虑日志占用空间问题。e. 这时候我们直接在/etc/rsyslog.conf文件中添加一条配置:f. #将操作日志输入到/var/log/下面的history.log中:local4.info /var/log/history.logh. 重启后可以在/var/log下面看到history日志:话语说到这里,也该结束了本篇文章,本文中所讲解的用法只使用了rsyslog服务的基本功能,还有更多用法有待挖掘,例如日志转发等,但这些不在本文涉及范围内,就不再过多讲解,感谢大家的观看!本 文 原 创 来 源:IT那活儿微信公众号(上海新炬王翦团队)