日誌:
日誌是歷史時間
按時間序列將發生的事件予以記錄的文件
日誌記錄:事件發生的時間,事件內容
日誌級別:事件的關鍵性程度,log level
Linux:哪些進程需要記錄日誌?
syslog: 日誌系統
syslogd: 系統進程的相關日誌
klogd: 內核事件相關的日誌
我們這裏使用rsyslog來記錄日誌。
rsyslog特點: 支持多線程 支持:TCP,SSL,TLS,RELP 支持:MySQL, PGSQL, Oracle等多種關係型數據中 有強大的過濾器,可實現過濾系統信息中的任意部分 支持自定義輸出格式 適用於企業級別日誌記錄需求 模塊化程序 rsyslog主配置文件:/etc/rsyslog.conf rsyslog的選項:facility(設施),priority(級別),Target(路徑) facility: 設施,從功能或程序上對日誌進行分類,並由專門的工具負責記錄其日誌 auth:跟認證相關的 authpriv:跟認證授權相關的 cron:跟週期性任務相關的 daemon:幫守護進程相關的 kern:幫內核記錄日誌的 lpr:幫打印組記錄日誌 mail:幫郵件服務記錄日誌 mark:防火牆標記記錄日誌的 news: 新聞組 security:跟安全相關的 syslog:syslong自己的日誌 user:跟用戶相關的 uucp:unix日誌 local0 through local7: 8 customed facility(8個自定義的facility) 指定設施時可以使用通配符:指定日誌選項 * :所有 ,:列表,f1,f2,f3,f4... ! : 取反 ; :記錄多個日誌信息 - :啓用異步功能 priority: 級別,如果不用=號會記錄比自己更高的級別 debug info notice warn, warning err, error crit alert emerg,panic 通配符: * :所有級別 none :沒有任何級別,不記錄日誌信息 ; :記錄多個日誌信息 - :啓用異步功能 Target: 文件路徑:例如/var/log/messages 用戶:*,所有用戶 日誌服務器:@SERVER_IP 管道:|COMMAND rsyslog的格式: facility.priority Target 例如1:mail.info /var/log/maillog 比指定級別更高的所有級別,包括指定的級別本身 例如2:mail.=info /var/log/maillog :只記錄info級別的日誌 明確指定級別 例如3:mail.!info /var/log/maillog 除了指定級別 例如4:*.info /var/log/log 所有facility的info級別 例如5: mail.* /var/log/maillog mail的所有級別 例如6:mail,news.info /var/log/maillog mail與news的info級別 例如7:mail.notice, new.info /var/log/log mial的notice級別和new的info級別 例如8:mail.info * mail的日誌發送給當前系統上已登錄的所有用戶info級別及以上的日誌 例如9:mail.=info @192.168.1.1 將mail的info日誌發送給192.168.1.1這個日誌服務器 例如10:mail.!info | COMMAND 將mail除info之外的其他級別日誌發送給一個命令,如gerp 例如11:*.info;mail.none 記錄所有設施的info及其他更高級別日誌,但是mail不記錄 例如12:mail.* -/var/log/maillog 記錄mail的所有級別日誌,但是日誌是異步同步的 查看日誌信息: tail /etc/log/messages 日誌信息格式: 時間 主機 進程(PID):時間
啓用接受其他服務器發送來的日誌文件功能:啓用日誌服務器功能
vim /etc/rsyslog.conf 修改配置之後重啓纔會生效 MODULES: 模塊 #沒跟空格的都是可啓用功能 ModLoad imudp :裝載一個udp模塊 UDPServerRun 514 監聽在UDP的514端口接收其他服務器發來的日誌信息 -------------------------------------------------- ModLoad imtcp :裝載一個tcp模塊 InputTCPserverRun : 監聽在TCP的514端口接收其他服務器發來的日誌信息 -------------------------------------------------- GLOBAL DIRECTIVES: 全局指令 -------------------------------------------------- RULES: 規則
rsyslog支持將日誌存儲於MySQL服務器中:
vim /etc/rsyslong.conf yum install rsyslog-mysql : 安裝rsyslog-mysql模塊 rpm -ql rsyslog-mysql /lib/rsyslog/ommysql.so : om代表輸出模塊im代表輸入模塊 /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql :日誌輸出模版 begin forwarding rule MODULES #Log event to MySQL $ModLoad ommysql : 裝載mysql模塊 RULES mail.* :ommysql:127.0.0.1,Syslog,sysloguser,syslogpass facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWD 將日誌模版重定向輸入到mysql數據庫 mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql mysql : 進入mysql數據庫 SHOW DATABASES; : 查看是否已經將模版導入 use Syslog; : 將Syslog設爲默認數據庫 SHOW TABLES; : 查看默認數據庫的表 GRANT ALL ON Syslog.* TO [email protected] IDENTIFIED BY 'syslogpass'; 設置sys的用戶名與密碼並切擁有syslog的所有權限 FLUSH PRIVILEGES; : 刷新權限 service rsyslog restart :重啓服務 做一個服務訪問讓其生成日誌 SELECT * FROM SystemEvents; :查看日誌信息