Rsyslog服務簡介
Rsyslog是syslog的升級版本, 其在RHEL5的版本中, 名稱為syslog.在RHEL6/7其升級為Rsyslog. Rsyslog是一個日志管理系統,記錄過去某個時間發生的事件,及事件級別進行定義并記錄到指定位置. 其支持C/S架構,可通過UDP/TCP協議提供日志記錄服務.Rsyslog日志格式較為簡單.
Rsyslog的服務進程
-
syslogd
: 系統日志(用戶空間的各應用程序相關的日志) -
Klogd
: 內核日志(kernel相關的日志),在RHEL6中, Klogd由syslog代為管理.
Rsyslog的特性:
- 多線程的服務,并發性能好
- 可以使用udp,tcp,ssl,tls,relp等協議完成信息收集
- 將日志可存儲在mysql,pgsql,oracle等數據庫管理系統中
- 強大的自定義過濾器,實現過濾日志信息中任何部分內容
- 自定義輸出格式
Rsyslog的相關文件
-
/etc/rsyslog.conf
: 主配置文件 -
/etc/rsyslog.d/*.conf
: 輔助配置文件 -
/lib64/rsyslog/*.so
: rsyslog的功能擴展模塊位置,I開始的文件表示,從那收集, O開始的文件表示,將日志記錄到那
Rsyslog的重要術語
-
facility
(產生日志的設施,從功能和程序上對日志收集進行分類)-
auth
: 身份認證 -
aupriv
: 授權 -
cron
: 計劃任務 daemon
-
kern
: 內核 -
lpr
: 打印 -
mail
: 郵件 -
mark
: 防火墻 -
news
: 新聞 -
security
: 安全 -
user
: 用戶 uucp
-
syslog
: 系統日志 -
local0-local7
: 用戶自定義級別
-
-
priority
(日志級別)debug
: 調度信息info
: 基本信息notice
: 提醒warn
: warning, 警告err
: critical, 危險的alert
: 橙色警告emerg
: 紅色警告-
指定級別:
-
*
: 所有級別 -
none
: 沒有級別,不記錄 -
PRIORITY
: 此級別以及高于此級別的所有級別 -
=PRIORITY
: 僅此級別
-
/etc/rsyslog.conf的組成部分
-
加載的模塊
- $ModLoad ommysql
全局配置指令
-
日志記錄規則
- facility.priority target
####記錄系統所有的info及以上的日志,但不包含mail,authpriv,cron的日志 *.info;mail.none;authpriv.none;cron.none /var/log/message ####記錄任務計劃的所有日志 cron.* /var/log/cron ####記錄所有的emerg級別日志,通過模塊輸出給所有用戶一則消息 *.emerg :omusrmsg:* ####將指定的日志發送給指定的日志服務器 cron.* @172.16.36.70
-
target
- 文件: 記錄日志事件于指定的文件中,通常應用位于/var/log目錄下,文件路徑之前的"-"表示異步寫入
- 用戶: 將日志事件通知給指定的用戶, 是通過將信息發送給登陸到系統上的用戶的終端上
- 日志服務器: 使用@host,把日志送往指定的服務器主機
- Host : 即日志服務器地址,監聽在tcp/udp的514端口
- 管道: |COMMAND
注意: 在日志文件中, 填寫的指令必須在相應的段出來,例如:不能將加載的模塊配置信息填寫到rules(日志記錄規則)處
/etc/rsyslog.conf的日志的配置格式
事件產生的時間及日期 主機 進程[PID]:事件信息本身
利用rsyslog服務輸出到數據庫中,并且由loganalyzer展示
-
安裝rsyslog連接數據庫的驅動
-
yum install rsyslog-mysql
: 生成ommysql.so模塊,和createdb.sql數據腳本(用于創建所需的數據庫)
-
-
連接數據庫,并且為此創建用戶及建立所需數據庫
mysql < /usr/share/doc/rsyslog-mysql-7.4.7/createdb.sql
-
source /usr/share/doc/rsyslog-mysql-7.4.7/createdb.sql
(兩個方法使用其中一個即可)
-
配置rsyslog.conf文件
- 模塊位置定義
- $ModLoad ommysql
- rules定義位置
- cron.* :ommysql:172.16.36.70,DATABASE,USER,PASSWORD
- 模塊位置定義
重啟rsyslog服務
-
安裝loganalyzer
-
準備lamp環境
yum install httpd php php-mysql php-gd
-
下載loganalyzer軟件包
- tar xf loganalyer-3.6.5.tar.gz
- cp -r loganalyer-3.6.5.tar.gz/src/var/www/html/loganalyzer
- cp -r loganalyzer-3.6.5/contrib/*sh /var/www/html/loganalyzer
- cd /var/www/html/loganalyzer/
- chmod +x *.sh
- ./configure.sh
- ./secure.sh
- chmod 666 config.php
-
通過URL訪問并配置
-
last命令
查看當前系統成功登錄系統的日志,日志位置/var/log/wtmp
lastb命令
當前系統嘗試登錄失敗的日志,日志位置/var/log/btmp
dmesg
內核完成自身初始化過程中, 探測的各種硬件的日志信息,日志位置/var/logdmesg.
lastlog
顯示當前系統上所有用戶的最近一次登陸時間
Linux強大的日志收集及展示平臺
- elk stack : elasticsearch ,強大的分布式日志收集引擎
- logstash : 從各主機收集日志, 導入elk stack的工具
- kibana : 極為美觀的展示日志結果的界面工具