首先配置命令記錄到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,所執行過的命令
