學習rsyslog總結

問題:

syslog與rsyslogd有什麼關係?rsyslogd是syslog的升級版
如何增長自定義服務?經過local0 ~ local7能夠自定義一些服務信息
如何與數據庫相關聯?
如何肯定使用的什麼協議傳輸?根據配置
業務場景有哪些?記錄系統日誌、開發業務日誌
如何升級?html

#數據庫

syslog缺點:

  • 記錄丟失,默認使用UDP 514端口傳輸 UDP沒有檢測,重發等功能
  • 記錄緩慢 磁盤IO利用率較高進而致使CPU阻塞影響系統性能

#服務器

rsyslog優勢:

  • 支持數據庫
  • 日誌內容篩選
  • 自定義日誌格式模板
  • 支持UDP、TCP、RELP傳輸協議

重啓服務:

systemctl restart rsyslog
/etc/init.d/rsyslog restart網絡

syslog日誌消息既能夠記錄在本地文件中,也能夠經過網絡發送到接收syslog的服務器。ssh

完整的syslog日誌中包含產生日誌的程序模塊(Facility)、嚴重性(Severity或 Level)、時間、主機名或IP、進程名、進程ID和正文。tcp

配置文件的格式
facility.level actionide

facility: 服務
level: 等級
action: 動做函數

日誌服務:
sysloggd:主要登陸系統與網絡等服務
klodg:主要登陸內核產生的各項信息
logrotate:主要進行日誌文件的輪替功能工具

日誌記錄的主要數據性能

  • 事件發生的日期與時間
  • 發生此事的主機名
  • 啓動此事件的服務名或函數名稱
  • 該信息的實際數據內容

服務名稱(facility)

服務類型 說明
auth(authpriv) 受權信息 主要是認證有關的機制,例如login ssh eu等須要帳號、密碼
cron 例行性工做調度信息
daemon 守護進程、後臺進程
kern 內核信息
lpr 打印相關
mail 郵件
news 與新聞服務器相關
syslog 系統信息
user 用戶進程
uucp 由uucp產生的消息
local0~local7 自定義程序使用

消息級別(level)一下表中爲由高到低

等級名稱 說明
* 全部級別,除了none
none 沒有重要級,一般用於排錯(不記錄任何日誌消息)
debug 不包含函數條件或問題的其餘信息(調試級-信息量最多)
info 僅是一些基本的消息(通知類)
notice 具備重要性的普通消息(普通單重要的消息)
warning(warn) 阻止某些工具或子系統功能實現的錯誤條件(重要消息)
error(err) 阻止工具或某些子系統部分功能實現的錯誤條件(出錯消息
crit 比error還要嚴重
alert 須要當即被修改的條件(緊急消息)
panic 該系統不可用(最緊急消息)

服務與等級之間的鏈接符「.=!」
. 表明比當前等級要高(包含本身)的都要記錄下來
.= 僅記錄後面標記的等級
.! 記錄處後面的全部等級

信息記錄的文件名、設備、主機(action 動做域)

  • 文件的絕對路徑:一般記錄到 /var/log/
  • 打印機或其餘:/dev/lp0
  • 用戶名稱:顯示給某用戶
  • 遠程主機:例如@www.vbird.tsai
    • :表明在線的全部人

封裝好的調用函數
bool openlog ( string $ident , int $option , int $facility )
bool syslog ( int $priority , string $message )
bool closelog ( void )

rsyslog服務配置案例:

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
$ModLoad imudp        #應用UDP協議模塊
$UDPServerRun 514      #設置UDP使用的端口
$ModLoad imtcp        #應用tcp協議模塊
$InputTCPServerRun 514     #設置TCP使用的端口
$AllowedSender tcp, 192.168.18.248          #設置容許的iP
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
:fromhost-ip, !isequal, "127.0.0.1" ?Remote #過濾本機的日誌
$IncludeConfig /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 *
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log

配置文件

加載模塊
Module (load="imuxsock")
$ModLoad imuxsock
#

日誌記錄格式
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #默認格式

$template name , "路徑" #定義一種模板
$template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
#

參考:

[RSYSLOG服務實時傳輸日誌配置請添加連接描述](https://www.cnblogs.com/blueswu/p/3564763.html)
[syslog簡介——系統日誌寫入API請添加連接描述](https://www.cnblogs.com/bonelee/p/6234647.html)
[Rsyslog的遠程傳輸日誌(系統日誌篇)請添加連接描述](http://blog.csdn.net/love910809/article/details/70761526)    
[官方參考手冊請添加連接描述](http://www.rsyslog.com/guides-for-rsyslog/)
相關文章
相關標籤/搜索