有些时候需要用到堡垒机,但要知道用户都用那些命令操作过。
rsyslog属性的名称中以$开头的是从本地系统获得的变量、不带$是从消息中获得变量
一、先配置系统变量记录SSH命令,并生成文件,位置/var/log/ssh.log。
#vi /etc/profile.d/ssh.sh //创建一个文件ssh.sh脚本去存放变量
export HISTORY_FILE=/var/log/ssh.log export PROMPT_COMMAND=‘{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE‘####
创建完文件要生效一下。
#source /etc/profile.d/ssh.sh
以上配置成功后可以查看/var/log/ssh.log文件来显示。
#tail -f /var/log/ssh.log#####
注意:如果希望按时间去生成文件可以修改ssh.sh里的ssh.log改成`date ‘+%F‘`.log这样就会按天来保存了,如果需要时间请去查看LINUX短格式修改。
export HISTORY_FILE=/var/log/ssh-`date ‘+%F‘`.log //注意date也被单引号包括起来了
二、添加rsyslog模块上传
vi /etc/rsyslog.d/ssh-log.conf
# rsyslog v5 configuration file # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html # If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html #### MODULES #### ### 注意 ### #配置文件中的中文注释为方便初学者,并非官方提供,中文注释可能会引起奇怪的问题。 #建议:在使用中删除所有的中文注释,如需注释可以用英文(实在不行就拼音) #装载imfile模块 $ModLoad imfile #检查日志文件间隔(秒) $InputFilePollInterval 1 #指定日志文件的拥有者 $FileOwner root # 使用自定义的格式 $ActionFileDefaultTemplate myformat #状态文件保存路径,文件被用来记录扫描日志位置等信息。 #在测试中服务器收集不到日志,是因为被扫描过的文档不会再次上传,可以清空该目录缓存 $WorkDirectory /var/spool/rsyslog # 定义队列文件名 #$ActionQueueFileName relpact # 重试次数, -1 表示无限重试 #$ActionResumeRetryCount -1 # rsyslog关闭时将队列内容存盘,防止数据丢失 #$ActionQueueSaveOnShutdown on $PrivDropToGroup root ##日志格式模板: $template BiglogFormatTomcat,"%msg%\n" ## Tomcat的catalina.out路径,根据实际情况修改: #读取日志文件 $InputFileName /var/log/ssh.log #写入日志附加标签字符串 $InputFileTag ssh-log #日志类型,local5必须和日志收集服务器里过滤器facility(local5)里local5名字一样。 $InputFileFacility local5 #定义记录偏移量数据文件名 $InputFileStateFile stat-ssh-log #日志等级 $InputFileSeverity info #回写偏移量数据到文件间隔时间(秒) $InputFilePersistStateInterval 1 #激活读取,可以设置多组日志读取,每组结束时设置本参数。以示生效。 $InputRunFileMonitor #提交日志到不同服务器时单独在此指定服务器IP:port, #如都提交在同一服务器只需在rsyslog.conf里指定一次即可 # local5.* @@192.168.1.251:514
重启rsyslog服务生效
#service rsyslog restart
附录:LINUX命名短格式参考
%% a literal % %a locale’s abbreviated weekday name (e.g., Sun) %A locale’s full weekday name (e.g., Sunday) %b locale’s abbreviated month name (e.g., Jan) %B locale’s full month name (e.g., January) %c locale’s date and time (e.g., Thu Mar 3 23:05:25 2005) %C century; like %Y, except omit last two digits (e.g., 20) %d day of month (e.g, 01) %D date; same as %m/%d/%y %e day of month, space padded; same as %_d %F full date; same as %Y-%m-%d %g last two digits of year of ISO week number (see %G) %G year of ISO week number (see %V); normally useful only with %V %h same as %b %H hour (00..23) %I hour (01..12) %j day of year (001..366) %k hour ( 0..23) %l hour ( 1..12) %m month (01..12) %M minute (00..59) %n a newline %N nanoseconds (000000000..999999999) %p locale’s equivalent of either AM or PM; blank if not known %P like %p, but lower case %r locale’s 12-hour clock time (e.g., 11:11:04 PM)
参考文章:
http://www.cnblogs.com/mchina/p/linux-centos-rsyslog-loganalyzer-mysql-log-server.html
http://blog.163.com/ly_89/blog/static/1869022992011756434459/
http://jingyan.baidu.com/article/f25ef25466bffc482c1b82b6.html
时间: 2024-10-14 09:56:43