使⽤ELK收集Linux所有⽤户的登录和操作⽇志
⼀般我们可以⽤history命令来查看⽤户的操作记录,但是这个命令不能记录是哪个⽤户登录操作的,也不能记录详细的操作时间,且不完整;所以误操作⽽造成重要的数据丢失,就很难查到是谁操作的。
在这⾥我们通过脚本代码来实现记录所以⽤户的登录操作⽇志
编辑/etc/profile⽂件,在⽂件末尾加⼊下⾯代码:
[root@telecom225 /]# vi /etc/profile
history
USER=`whoami`
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
linux登录命令if [ "$USER_IP" = "" ]; then
USER_IP=`hostname`
fi
if [ ! -d /var/log/history ]; then
mkdir /var/log/history
chmod 777 /var/log/history
fi
if [ ! -d /var/log/history/${LOGNAME} ]; then
mkdir /var/log/history/${LOGNAME}
chmod 300 /var/log/history/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +"%Y%m%d_%H:%M:%S"`
export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null
#执⾏
source /etc/profile
注释: /var/log/history这是记录⽇志的存放位置,可以⾃定义。
在/var/log/history下会以每个⽤户为名新建⼀个⽂件夹.
扩展:
添加filebeat 推向logstash
#此处采⽤的是filebeat7.7版本,其他版本写法有所区别
vi /etc/l
#filebeat.prospectors:
filebeat.inputs:
-
type: log
paths:
- /var/log/history/appdev/admin*
tags: ["history-admin"]
fields:
itcase: "192.168.1.1"
user: "admin"
- /var/log/history/appdev/root*
tags: ["history-root"]    #logstash 根据不同的tags推向不同的index
fields:                          #增加⾃定义选项
itcase: "192.168.1.1"
user: "root"
output.logstash:
hosts: ["$IP"]
kibana展⽰效果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。