Linux下使用rsyslog部署Log Service器 && 記錄history並發送到rsyslog伺服器,linuxrsyslog

來源:互聯網
上載者:User

Linux下使用rsyslog部署Log Service器 && 記錄history並發送到rsyslog伺服器,linuxrsyslog
一、syslog服務簡介

rsyslog 是一個 syslogd 的多線程增強版。rsyslog負責寫入日誌, logrotate負責備份和刪除舊日誌, 以及更新記錄檔

logger命令

將自訂的資訊寫入到本地日誌系統需要用到:logger 命令 

logger 是一個shell 命令介面,可以通過該介面使用Syslog的系統日誌模組,還可以從命令列直接向系統記錄檔寫入一行資訊

logger -it error  -p local5.info "hello world"

-i 在每行都記錄進程ID 
-t 日誌中的每一行都加一個error標籤 
-p 指定自訂的日誌裝置和記錄層級,相關內容參見文章附錄 

日誌類型

日誌類型 說明
auth pam產生的日誌
authpriv ssh,ftp等登入資訊的驗證資訊
cron 時間任務相關
kern 核心
lpr 列印
mail 郵件
mark(syslog) rsyslog服務內部的資訊,時間標識
news 新聞群組
user 使用者程式產生的相關資訊
uucp unix to unix copy, unix主機之間相關的通訊
local1~7 自訂的日誌裝置

記錄層級 

層級 說明
debug 有調式資訊的,日誌資訊最多
info 一般資訊的日誌,最常用
notice 最具有重要性的普通條件的資訊
warning 警告層級
err 錯誤層級,阻止某個功能或者模組不能正常工作的資訊
crit 嚴重層級,阻止整個系統或者整個軟體不能正常工作的資訊
alert 需要立刻修改的資訊
emerg 核心崩潰等嚴重資訊
none 什麼都不記錄
二、syslog服務配置
[root@localhost]# yum install rsyslog rsyslog-mysql  logrotate[root@localhost]# service rsyslog  statusrsyslogd (pid  24331) is running...[root@localhost]# ps -ef | grep rsyslogd | grep -v greproot     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 指定監聽連接埠。 預設514

-x 在接收用戶端訊息時,禁用DNS尋找。需和-r參數配合使用。

-m 標記時間戳記。單位是分鐘,為0時,表示禁用該功能。

 

編輯rsyslog.conf 開啟相關屬性

$ModLoad immark

$ModLoad imudp

$UDPServerRun 514

查看是否啟動

[root@localhost]# netstat -nultp | grep 514udp        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等,這裡*號代表說有層級,即所有服務的說有日誌都會發送到192.168.1.10這台主機上

注意:如果server端開啟的是tcp的514連接埠,上面就應該這樣寫:*.*    @@rsyslog-server-ip記錄日誌(有一個很實用的功能記錄伺服器執行的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動態查看

tail -f /var/log/remotehost.log 

 

參考文章

http://levichen.logdown.com/posts/2013/11/04/syslog-record-history

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.