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時會報錯
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL5cTN4gzNmF2YlBDZzkTY3ITY5cjY3UzYwgTNjNWYzkTY0cjM1IGNl9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
##安裝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
###安裝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部分如下:
注意:
1.input檔案支援通配,通配的後狀态檔案state files(跟蹤檔案的哪個部分已經被處理了)會出現重名不能被建立的問題,是以注釋掉了此參數
2.通配符是被支援的在檔案名字級别
配置好後啟動時報錯“無法加載imfile子產品”
解決的方法--重新安裝此子產品:
cd /root/rsyslog-8.22.0/plugins/imfile
這樣就可以了,/opt/所有的.log結尾的日志檔案就都可以上傳到output端。
因為我的日志是上傳到袋鼠雲雲日志服務端,是以需要配置模闆,但是模闆中的檔案名是不支援通配的,是以所有/opt/*.log的日志檔案,上傳到雲日志平台都顯示模闆中同一檔案名。