Syslog-ng+Rsyslog收集日志:收集SSH用户命令(四)
有些时候需要用到堡垒机,但要知道用户都用那些命令操作过。rsyslog属性的名称中以$开头的是从本地系统获得的变量、不带$是从消息中获得变量
一、先配置系统变量记录SSH命令,并生成文件,位置/var/log/ssh.log。
1
#vi /etc/profile.d/ssh.sh//创建一个文件ssh.sh脚本去存放变量
1
2
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'####
创建完文件要生效一下。
1
#source /etc/profile.d/ssh.sh
以上配置成功后可以查看/var/log/ssh.log文件来显示。
1
#tail -f /var/log/ssh.log#####
注意:如果希望按时间去生成文件可以修改ssh.sh里的ssh.log改成`date '+%F'`.log这样就会按天来保存了,如果需要时间请去查看LINUX短格式修改。
1
export HISTORY_FILE=/var/log/ssh-`date '+%F'`.log//注意date也被单引号包括起来了
二、添加rsyslog模块上传
1
vi /etc/rsyslog.d/ssh-log.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 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服务生效
1
#service rsyslog restart
附录:LINUX命名短格式参考
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
%% 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 Mar3 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)
页:
[1]