History记录到syslog中
日志类型
auth -用户授权
authpriv -授权和安全
cron -计划任务:at ,cron
daemon -系统守护进程
kern -与内核有关系的信息
lpr -与打印服务有关的信息。
mail -与电子邮件有关的信息
news -来自新闻服务器的信息
syslog -由 syslog 生成的信息
user -用户的程序生成的信息,默认。
uucp -由 uucp 生成的信息
local0~7 -来定义本地策略 #用于记自定义去记录日志
日志的级别分为七级,从紧急程度由高到底:
alert -需要立即采取的动作
crit -临界状态
err -错误状态。等同error
warning -预警信息,等同warn
notice -正常但是要注意
info -正常消息
debug -调试
首先配置命令记录到syslog中:
在客户端的/etc/bashrc 下添加:
logger -p local3.info \"`who am i` ======================================= is login \"
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; }); logger -p local3.info \[ $(who am i)\]\# \""${msg}"\"; }'
logger命令:
为syslog的shell接口命令,有一些参数,这里用了-p,主要是让它记录日志类型和级别。具体用法,请man一下
不知道你想过没有,把命令直接追加到日志文件中,这样是也是可以,但是有两个问题,文件只存储本机上了,可人为删除,
这样syslog不可以把记录传走,还是不安全,这样做是为了配合日志服务器的记录,达到安全性。还可以做监控报警
架构是:syslog-ng swatch
再配置日志的输出:
上面已经把日志输入到系统的SYSLOG中了,现在目的把日志存储到哪的问题,上面的配置默认是到/var/log/message中的,
下面我更改一下:
1:本地存储:
修改/etc/syslog.conf # 如果是CentsOS6以上版本,修改/etc/rsyslog.conf
加入
local7.info /var/log/user_command.log
上述是指定将local7这个类型的info级别的日志输入到/var/log/user_command.log中,当然还需要去配置回滚问题(这里不讲),这也可以使用*来匹配。这个不用我说了
也可以将日志传到别的地方,本次就是这样配置的,加入:
local7.info @log.server.com
下面是输出结果示例:
Nov 7 15:31:11 x.x.x.x root: [ root pts/0 2013-03-18 10:44 (10.57.41.86)]# source /etc/bashrc
Nov 7 15:31:20 x.x.x.x root: [ root pts/0 2013-03-18 10:44 (10.57.41.86)]# source /etc/bashrc
Nov 7 15:31:20 x.x.x.x root: [ root pts/0 2013-03-18 10:44 (10.57.41.86)]# echo poll
解释 :因客户端的与服务端的时间不一样,所以这里看到两个不一样的时间,这个也一个很好的参考,还是保留着吧,
这里能看到的内容有:目标IP,目标用户,目标时间,目标登录IP,所执行过的命令