history linux 日志服务器_Linux下使用rsyslog部署日志服务器 记录history并发送到rsyslog服务器...
一、syslog服務簡介
rsyslog 是一個 syslogd 的多線程增強版。rsyslog負責寫入日志, logrotate負責備份和刪除舊日志, 以及更新日志文件
logger命令
將自定義的信息寫入到本地日志系統(tǒng)需要用到:logger 命令
logger 是一個shell 命令接口,可以通過該接口使用Syslog的系統(tǒng)日志模塊,還可以從命令行直接向系統(tǒng)日志文件寫入一行信息
logger -it error -p local5.info "hello world"
-i 在每行都記錄進程ID
-t 日志中的每一行都加一個error標簽
-p 指定自定義的日志設備和日志級別,相關內容參見文章附錄
日志類型
日志類型說明
auth
pam產生的日志
authpriv
ssh,ftp等登錄信息的驗證信息
cron
時間任務相關
kern
內核
lpr
打印
郵件
mark(syslog)
rsyslog服務內部的信息,時間標識
news
新聞組
user
用戶程序產生的相關信息
uucp
unix to unix copy, unix主機之間相關的通訊
local1~7
自定義的日志設備
日志級別
級別
說明
debug
有調式信息的,日志信息最多
info
一般信息的日志,最常用
notice
最具有重要性的普通條件的信息
warning
警告級別
err
錯誤級別,阻止某個功能或者模塊不能正常工作的信息
crit
嚴重級別,阻止整個系統(tǒng)或者整個軟件不能正常工作的信息
alert
需要立刻修改的信息
emerg
內核崩潰等嚴重信息
none
什么都不記錄
二、syslog服務配置
[root@localhost]# yum install rsyslog rsyslog-mysql logrotate
[root@localhost]# service rsyslog status
rsyslogd (pid 24331) is running...
[root@localhost]# ps -ef | grep rsyslogd | grep -v grep
root 24331 1 0 20:26 ? 00:00:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 2 -r -x -m 180
server:
配置rsyslog
[root@localhost]# vim /etc/sysconfig/rsyslog
1 # Options for rsyslogd
2 # Syslogd options are deprecated since rsyslog v3.
3 # If you want to use them, switch to compatibility mode 2 by "-c 2"
4 # See rsyslogd(8) for more details
5 # SYSLOGD_OPTIONS="-c 5"
6 SYSLOGD_OPTIONS="-c 2 -r -x -m 180"
7 KLOGD_OPTIONS="-x"
各參數作用:
-c 指定運行兼容模式。
-r 指定監(jiān)聽端口。 默認514
-x 在接收客戶端消息時,禁用DNS查找。需和-r參數配合使用。
-m 標記時間戳。單位是分鐘,為0時,表示禁用該功能。
編輯rsyslog.conf 開啟相關屬性
$ModLoad immark
$ModLoad imudp
$UDPServerRun 514
查看是否啟動
[root@localhost]# netstat -nultp | grep 514
udp 0 0 0.0.0.0:514 0.0.0.0:* 24331/rsyslogd
udp 0 0 :::514 :::* 24331/rsyslogd
Client:
編輯rsyslog.conf? 新增以下:
*.*? ? ? ? ? ? ? ? @192.168.1.10
說明:
第一個*號字段為什么服務如:mail、kernel、ftpd等,這里的*號代表所有服務
第二個*號字段為記錄相應服務的日志級別如info、warn、err等,這里*號代表說有級別,即所有服務的說有日志都會發(fā)送到192.168.1.10這臺主機上
注意:如果server端開啟的是tcp的514端口,上面就應該這樣寫:*.*??? @@rsyslog-server-ip
記錄日志(有一個很實用的功能記錄服務器執(zhí)行的history)
這里有多種方法
第一種
修改bash源碼,重新編譯
# wget http://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz
# tar zxvf bash-4.2.tar.gz -C /usr/local/bash-4.2
# cd /usr/local/bash-4.2
。。。
可以參見?http://levichen.logdown.com/posts/2013/11/04/syslog-record-history
第二種 使用trap (Just add the following lines in your?/etc/profile)
function log2syslog
{
declare command
command=$(fc -ln -0)
logger -p local1.notice -t bash -i — $USER : $command
}
trap log2syslog DEBUG
第三種?(Just add the following lines in your?/etc/profile)
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'
export PROMPT_COMMAND='{ command=$(history 1 | { read x y; echo $y; }); logger -p local1.notice -t bash -i "user=$USER,from=$SSH_CLIENT,pwd=$PWD,command:$command"; }'
alias precmd "history 1 | /bin/logger -p local1.notice -t `echo $SHELL`:`whoami`:`pwd`:`ip r l |cut -d' ' -f12` -i "
PROMPT_COMMAND='history -a >(tee -a ~/.bash_history | logger -t "$USER[$$] $SSH_CONNECTION")'
export PROMPT_COMMAND='if [ "$(id -u)" -ne 0 ]; then echo "$(date "+%Y-%m-%d.%H:%M:%S") $(pwd) $(history 1)" >> ~/.logs/bash-history-$(date "+%Y-%m-%d").log; fi'
有好多種方式來記錄,我采用第二條命令
三、rsyslog server文件配置
修改配置文件
vim /etc/rsyslog.d/50-default.conf
添加內容
*.* /var/log/remotehost.log
新建保存日志文件
touch /var/log/remotehost.log
重啟rsyslog server,用tail動態(tài)查看
tail -f /var/log/remotehost.log
參考文章
http://levichen.logdown.com/posts/2013/11/04/syslog-record-history
總結
以上是生活随笔為你收集整理的history linux 日志服务器_Linux下使用rsyslog部署日志服务器 记录history并发送到rsyslog服务器...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重试次数配置_TestNG实践——2.用
- 下一篇: 微信外卖小程序 怎么计算与客户的距离_微