23213 发表于 2016-4-20 09:48:25

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]
查看完整版本: Syslog-ng+Rsyslog收集日志:收集SSH用户命令(四)