一. syslog簡介vim
syslog是一種工業標準的協議,可用來記錄設備的日誌。在UNIX系統,路由器、交換機等網絡設備中,系統日誌(System Log)記錄系統中任什麼時候間發生的大小事件。管理者能夠經過查看系統記錄,隨時掌握系統情況。UNIX的系統日誌是經過syslogd這個進程記錄系統有關事件記錄,也能夠記錄應用程序運做事件。經過適當的配置,咱們還能夠實現運行syslog協議的機器間通訊,經過分析這些網絡行爲日誌,藉以追蹤掌握與設備和網絡有關的情況。centos
功能:記錄至系統記錄。安全
二 . syslog服務與配置bash
安裝syslog軟件包服務器
軟件包名稱爲:rsyslog-5.8.10-10.el6_6.x86_64網絡
我用的是centos系統,配置的有第三方的yum源,我直接yum install直接裝就OK了ide
裝完後用 rpm -qa | grep syslog下看是否已安裝
this
2.syslog日誌系統能夠根據程序詳細信息的不一樣定義不一樣的日誌級別。debug
3.Linux上的日誌系統分爲:syslog和syslog-ng(syslog日誌系統的升級版)unix
4.syslog服務:
syslog服務進程分兩個,分別是:syslogd(系統,非內核產生的日誌)和klogd(專門記錄內核產生的日誌)
kernel-->物理終端(/dev/console)-->/var/log/dmesg
/var/log/dmesg文件可使用dmesg命令和cat查看文件內容
日誌滾動(日誌切割):
所謂的滾動是指歷史信息所保存的日誌,如;messages文件日誌會愈來愈大等到了某一段時間,會把messages文件從新命名爲messages.1,系統並從新建立messages文件,因此叫作日誌滾動
/sbin/init
/var/log/messages:系統標準錯誤日誌信息;非內核產生的引導信息,各子系統產生的信息
/vat/log/maillog:郵件系統產生的日誌信息
/vat/log/secure:安全相關log
系統自帶的日誌切割程序logrotate
logrotate腳本配置文件
[root@localhost cron.daily]# pwd /etc/cron.daily [root@localhost cron.daily]# vim logrotate
滾動日誌信息配置文件
[root@localhost cron.daily]# pwd /etc/cron.daily [root@localhost cron.daily]# vim /etc/logrotate.conf # see "man logrotate" for details # rotate log files weekly weekly #每週滾動一次 # keep 4 weeks worth of backlogs rotate 4 #只保留4個切割版本文件,超事後清除 # create new (empty) log files after rotating old ones create #滾動完以後建立一個空的新的文件 # use date as a suffix of the rotated file dateext # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d #包括/etc/logrotate.d 下的文件,手動添加可直接添加到此目錄 # no packages own wtmp and btmp -- we'll rotate them here /var/log/wtmp { monthly #按月,本身定義 create 0664 root utmp #建立文件並0664權限 minsize 1M #最新1M rotate 1 #保留幾個版本 } /var/log/btmp { missingok monthly create 0600 root utmp rotate 1 } # system-specific logs may be also be configured here. [root@localhost cron.daily]#
syslog配置文件/etc/rsyslog.conf
注:centos 6 的配置文件是/etc/rsyslog.conf,centos5的配置文件是/etc/syslog.conf
5.配置文件定義格式爲facility.priority action
facility是指哪一個facility來源產生的日誌; priority是指拿個級別的日誌 ;action是指產生日誌怎麼辦是保存在文件中仍是其餘。。。
facility能夠理解爲日誌的來源或設備或選擇條件,目前經常使用的facility有如下幾種:
auth #認證相關的
authpriv #權限,受權相關的
cron #任務計劃相關的
daemon #守護進程相關的
kern #內核相關的
lpr #打印相關的
mail #郵件相關的
mark #標記相關的
news #新聞相關的
security #安全相關的,與auth相似
syslog #syslog本身的
user #用戶相關的
uucp #unix to unix cp相關的
local0到local7 #用戶自定義使用
* #*表示全部的facility
priority(log level)日誌優先級的級別,通常分爲如下幾種級別(從低到高)
注:級別越低記錄的越詳細
debug #程序或系統的調試信息
info #通常信息
notice #不影響正常的功能,須要提醒用戶的重要事件
warning/warn #可能影響系統功能,須要提醒用戶的重要事件
err/error #錯誤信息
crit #比較嚴重的
alert #必須立刻處理的
emerg/canic #會致使系統不可用的
* #表示全部的日誌級別
none #跟*相反,表示什麼也沒有
action(動做)日誌記錄的位置
系統上的絕對路徑 #普通文件 如:/var/log/XXX
| #管道 經過管道送給其餘的命令出來
終端 #終端 如:/dev/console
@host #遠程主機 如@10.1.1.1
用戶 #系統用戶 如:root
* #登陸到系統上的全部用戶,通常emerg級別的日誌是這樣定義的
定義格式列子:
mail.info /var/log/mail.log #表示將mail相關的,級別爲info及info以上級別的信息記錄到/var/log/mail.log文件中
auth.=info @10.1.1.1 #表示將auth相關的,級別爲info的信息記錄到10.1.1.1主機上去,前提是10.1.1.1要能接收其主機發來的日誌信息
user.!=error #表示記錄user相關的,不包括error級別的信息
user.!error #表示user.error相反
*.info #表示記錄全部的日誌信息的info級別
mail.* #表示記錄全部mail相關的全部級別的信息
*.* #表示記錄全部的日誌信息的全部的日誌級別
cron.info;mail.info #多個日誌來源能夠用「 ; 」隔開
cron,mail.info #與cron.info;mail.info 是一個意思
mail.*;mail.!=info #表示記錄mail相關的全部級別的信息,可是不包括info級別的信息
重啓服務
#service rsyslog reload 注:不重啓但能讀到配置文件;不建議重啓
6.搭建Linux日誌服務器
編輯配置文件 [root@localhost etc]# vim /etc/sysconfig/rsyslog
修改配置文件中SYSLOGD_OPTIONS="-c 5" 添加「 -r選項」便可
目的可讓服務器可以接受客戶端傳來的數據
配置文件以下
[root@localhost etc]# vim /etc/sysconfig/rsyslog # Options for rsyslogd # Syslogd options are deprecated since rsyslog v3. # If you want to use them, switch to compatibility mode 2 by "-c 2" # See rsyslogd(8) for more details SYSLOGD_OPTIONS="-r -c 5" ~
重啓syslog服務
[root@localhost etc]# service rsyslog restart 關閉系統日誌記錄器: [肯定] 啓動系統日誌記錄器:-r option only supported in compatibility modes 0 to 2 - ignored [肯定] [root@localhost etc]#
7.搭建syslog客戶端
在syslog配置文件中修改/etc/rsyslog.conf
[root@localhost etc]# vim /etc/rsyslog.conf # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* @192.168.1.66 # Log cron stuff cron.* /var/log/cron . . . 省略
重啓syslog客戶端
[root@localhost etc]# service rsyslog restart 關閉系統日誌記錄器: [肯定] 啓動系統日誌記錄器:-r option only supported in compatibility modes 0 to 2 - ignored [肯定] [root@localhost etc]#
注:若是以上內容發現錯誤,請告知留言便可,以方便糾正保證內容的準確性!!!