天天看點

rsyslog更新--input支援通配符測試

centos5系列系統自帶為syslog1.4.1

centos6系列自帶rsyslog版本為5.8.10

centos7系列自帶rsyslog版本為7.4.7

目前最新版rsyslog為8.22.0

rsyslog從8.5.0後對imfile子產品進行重構,檔案名中可以支援通配符。

是以,對rsyslog更新,體驗一下通配功能。

安裝很簡單,安裝之前有一些依賴問題要解決

##系統依賴

yum install -y zlib zlib-devel gcc uuid libuuid-devel libgcrypt-devel

##安裝libestr

tar xvf libestr-0.1.9.tar.gz

cd libestr-0.1.9

./configure && make && make install

cp libestr.pc /usr/lib64/pkgconfig

不裝這個子產品,編譯rsyslog時會報錯

rsyslog更新--input支援通配符測試

##安裝libfastjson

yum install -y autoconf automake libtool

git clone https://github.com/rsyslog/libfastjson.git

cd libfastjson

sh autogen.sh

./configure

make

make install

cp libfastjson.pc /usr/lib64/pkgconfig

rsyslog更新--input支援通配符測試

###安裝json

tar xvf json-c-0.10.tar.gz

cd json-c-0.10

cp ../json-c-0.10/json_object_iterator.h /usr/local/include/json/

##安裝liblogging-stdlog

方法一:

yum install liblogging-stdlog-1.0.4-4.fc22.i686.rpm -y

方法二:

git clone https://github.com/rsyslog/liblogging.git

cd liblogging

autoreconf -fvi

./configure --disable-man-pages

方法三:

編譯rsyslog加參數 --disable-liblogging_stdlog

##安裝rsyslog

tar zxvf rsyslog-8.22.0.tar.gz

cd rsyslog-8.22.0

./configure --prefix=/usr/local/ --disable-liblogging_stdlog

make && make install

因為我嘗試安裝liblogging-stdlog後,編譯時仍報錯“no package 'liblogging-stdlog' found”,是以在編譯時選擇加參數--disable-liblogging_stdlog

安裝好以後就可以配置了,input部分如下:

rsyslog更新--input支援通配符測試

注意:

1.input檔案支援通配,通配的後狀态檔案state files(跟蹤檔案的哪個部分已經被處理了)會出現重名不能被建立的問題,是以注釋掉了此參數

2.通配符是被支援的在檔案名字級别 

配置好後啟動時報錯“無法加載imfile子產品”

rsyslog更新--input支援通配符測試

解決的方法--重新安裝此子產品:

cd /root/rsyslog-8.22.0/plugins/imfile

這樣就可以了,/opt/所有的.log結尾的日志檔案就都可以上傳到output端。

因為我的日志是上傳到袋鼠雲雲日志服務端,是以需要配置模闆,但是模闆中的檔案名是不支援通配的,是以所有/opt/*.log的日志檔案,上傳到雲日志平台都顯示模闆中同一檔案名。

rsyslog更新--input支援通配符測試