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
tar xvf libestr-0.1.9.tar.gz
./configure && make && make install
cp libestr.pc /usr/lib64/pkgconfig
yum install -y autoconf automake libtool
git clone https://github.com/rsyslog/libfastjson.git
cp libfastjson.pc /usr/lib64/pkgconfig
tar xvf json-c-0.10.tar.gz
./configure && make && make install
cp ../json-c-0.10/json_object_iterator.h /usr/local/include/json/
yum install liblogging-stdlog-1.0.4-4.fc22.i686.rpm -y
git clone https:
//github.com/rsyslog/liblogging.git ./configure --disable-man-pages
编译rsyslog加参数 --disable-liblogging_stdlog
tar zxvf rsyslog-8.22.0.tar.gz
./configure --prefix=/usr/local/ --disable-liblogging_stdlog
因为我尝试安装 liblogging-stdlog后,编译时仍报错“No package 'liblogging-stdlog' found ”,因此在编译时选择加参数--disable-liblogging_stdlog
1.
input文件支持通配,通配的后状态文件 State Files(跟踪文件的哪个部分已经被处理了)会出现重名不能被创建的问题,因此注释掉了此参数 cd /root/rsyslog-8.22.0/plugins/imfile
这样就可以了,/opt/所有的.log结尾的日志文件就都可以上传到output端。
因为我的日志是上传到袋鼠云云日志服务端,因此需要配置模板,但是模板中的文件名是不支持通配的,因此所有/opt/*.log的日志文件,上传到云日志平台都显示模板中同一文件名。