rsyslog安裝使用和basic配置(2)

安裝

sudo yum install rsyslogmysql

不幸的是,發行版一般提供至關舊的rsyslog版本。能夠經過官網下載rpm或deb包來安裝新版,或使用docker容器安裝。sql

通常來講,這句也不用執行,系統已經默認安裝過了!docker

安裝新版本

這是rsyslog下載連接 例如:安全

cd /etc/yum.repos.d/
wget http://rpms.adiscon.com/v8-stable/rsyslog.repo
yum install rsyslog
複製代碼

查看版本

rsyslogd -verbash

別說版本仍是很新的,v8: app

包結構

  • 核心軟件包(一般簡稱爲「 rsyslog」)-它包含全部其餘軟件包都須要的核心技術。它還包含諸如文件編寫器或syslog轉發器之類的模塊,這些模塊很是經常使用而且幾乎沒有依賴性。
  • 例如對於MySQL組件來講是「 rsyslog-mysql」,對於ElasticSearch支持來講是「 rsyslog-elasticsearch」。若有疑問,建議使用發行版的軟件包管理器並搜索「 rsyslog *」。

使用Docker容器

docker run -ti rsyslog/syslog_appliance_alpineelasticsearch

配置

一般在/etc/rsyslog.conftcp

配置語法有三種,見名知義的:模塊化

  • basic 最適合表示基本內容的格式,例如語句適合單行的格式。它起源於最初的syslog.conf格式,如今已經使用了幾十年。
  • advanced 之前稱爲RainerScript格式,此格式最先在rsyslog v6中可用,最好在v7以後用。專門針對更高級的用例,例如轉發到可能部分處於脫機狀態的遠程主機。
  • obsolete legacy 其名稱所隱含的含義:它已過期,在編寫新配置時不該使用。
  • 本質上,全部須要在以美圓符號開頭的一行上編寫的內容都是舊格式。鼓勵這種格式的用戶遷移到basic或advanced格式。

配置示例

basic模式仍被建議使用

對於大多數由簡單語句組成的配置仍然建議使用該格式ui

# 把mail的info級別的日誌寫入到mail.log
mail.info /var/log/mail.log
# 把mail的error級別的日誌使用tcp協議轉發到遠端server上
mail.err @@server.example.net
複製代碼

高級功能使用advanced格式

優點:

  • 經過高級參數精細控制rsyslog操做
  • 塊結構容易理解
  • 容易寫
  • 可安全地與包含文件一塊兒使用

對於上面的例子,好比你想在遠端server目標掉線時不丟數據,使用以下如法:

mail.err action(type="omfwd" protocol="tcp" queue.type="linkedList" target="server")

高端大氣上檔次

加載模塊

module(load="module-name")

模塊全局配置

module(load="imtcp" maxSessions="500")

語法對比

行動鏈

使用 & 連接出一個行動鏈條

*.error /var/log/errorlog
&       @remote
複製代碼

完整寫法:

*.error {
        action(type="omfile" file="/var/log/errorlog")
        action(type="omfwd" target="remote" protocol="udp")
}
複製代碼

這樣易於拓展,模塊化不易出錯。 stop阻止進一步的處理,符號爲~

:msg, contains, "error" @remote
& ~
複製代碼

高級寫法爲:

:msg, contains, "error" {
        action(type="omfwd" target="remote" protocol="udp")
        stop
}
複製代碼

或:

if $msg contains "error" then {
        action(type="omfwd" target="remote" protocol="udp")
        stop
}
複製代碼

sysklogd 格式

語法爲:選擇器字段 (空格或TAB) 行動字段

選擇器

選擇器由facilitypriority組成,用.鏈接起來。這兩者遵循syslog(3)描述。 可直接經過系統文件/usr/include/sys/syslog.h查看相應值。

facility: auth, authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, security (same as auth), syslog, user, uucp and local0 through local7.

priority: debug, info, notice, warning, err, crit, alert, emerg.

warn, error and panic 已被棄用!

「*」表明所有,none表明沒有,「,」分隔多個設施,「;」分隔多規則

行動

行動抽象了一個「日誌文件」。

  • 常規文件 真實的文件,通常使用絕對路徑
  • 命名管道(fifos)
  • 終端和控制檯 tty 或 /dev/console
  • 遠端機器 統一收集處理
  • 用戶列表等

示例

# Store critical stuff in critical
#
*.=crit;kern.none   /var/adm/critical
#########
# Kernel messages are stored in the kernel file,
# critical messages and higher ones also go
# to another host and to the console
#
kern.*      /var/adm/kernel
kern.crit     @finlandia
kern.crit     /dev/console
kern.info;kern.!err   /var/adm/kernel-info
#########
# The tcp wrapper logs with mail.info, we display
# all the connections on tty12
#
mail.=info     /dev/tty12
############
# Write all mail related logs to a file except for the info priority.
#
mail.*;mail.!=info   /var/adm/mail
########
# Log all mail.info and news.info messages to info
#
mail,news.=info    /var/adm/info
# Log info and notice messages to messages file
#
*.=info;*.=notice;\
mail.none /var/log/messages
複製代碼
相關文章
相關標籤/搜索