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时会报错
![e4b5274a93acc580c57b79a27a93d0ecaf788579](https://yqfile.alicdn.com/e4b5274a93acc580c57b79a27a93d0ecaf788579.png?x-oss-process=image/resize,w_1400/format,webp)
##安装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
![80707bc5de0ac4d32ca5a63544fe5f6cd46469ca](https://yqfile.alicdn.com/80707bc5de0ac4d32ca5a63544fe5f6cd46469ca.png?x-oss-process=image/resize,w_1400/format,webp)
###安装json
tar xvf json-c-0.10.tar.gz
cd json-c-0.10
./configure && make && make install
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
make
make install
方法三:
编译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部分如下:
![f4371df8b5566965f9aa0b7625d1e09a1a88be6b](https://yqfile.alicdn.com/f4371df8b5566965f9aa0b7625d1e09a1a88be6b.png?x-oss-process=image/resize,w_1400/format,webp)
注意:
1.
input文件支持通配,通配的后状态文件
State Files(跟踪文件的哪个部分已经被处理了)会出现重名不能被创建的问题,因此注释掉了此参数
2.
通配符是被支持的在文件名字级别
配置好后启动时报错“无法加载imfile模块
”
![0318d58e757f7bb6dfc1fe3ecb97109fe706c07a](https://yqfile.alicdn.com/0318d58e757f7bb6dfc1fe3ecb97109fe706c07a.png?x-oss-process=image/resize,w_1400/format,webp)
解决的方法--重新安装此模块:
cd /root/rsyslog-8.22.0/plugins/imfile
make && make install
这样就可以了,/opt/所有的.log结尾的日志文件就都可以上传到output端。
因为我的日志是上传到袋鼠云云日志服务端,因此需要配置模板,但是模板中的文件名是不支持通配的,因此所有/opt/*.log的日志文件,上传到云日志平台都显示模板中同一文件名。
![3e8c4f5e21d89e20d7061aac54eeb71ae76ce261](https://yqfile.alicdn.com/3e8c4f5e21d89e20d7061aac54eeb71ae76ce261.png?x-oss-process=image/resize,w_1400/format,webp)