昔我往矣

源码编译安装Rsyslog

2014年01月6日

Rsyslog是系统用来记录日志的程序,具有远程传递日志的功能,默认端口UDP 514。是很多发行版的默认日志记录工具,也是syslog的增强版。Rsyslog有两个不得不说的强大功能,其一、是其它服务器的syslog日志可以发往Rsyslog服务器;其二,Rsyslog能够很容易的将日志保存至数据库。Rsyslog加上LAMP服务器的Web环境,通过LogAnalyzer可以把日志已web的方式展现出来,作为集中的服务器syslog日志展示页面,过程比较简单,不细说了,此处主要讲述编译Rsyslog的过程。

既然Rsyslog已经是系统自带的软件,为什么还要编译它呢?且听我细细道来,开始我搭建了一台Rsyslog服务器,把服务器的日志都集中发往这一台Rsyslog中心日志服务器,工作的很好。后来,有一部分网络设备也需要把日志备份和展示出来,为了保持简单,所以还是发往这台现成的服务器吧。
但是,他们好心的提醒我日志量会很大,也是考虑到方便性,服务器和网络设备日志混到一块也不方便查看和过滤,我想就重新搭建一套日志系统吧,监听不同的端口,保存到不同的数据库和日志文件,在不同的web页面展示。所以,就需要在这台服务器上重新搭建一套Rsyslog,所以就引出了这个主题:源码编译安装Rsyslog。

但是Rsyslog的安装过程是我遇到的最恐怖的安装经历,其依赖之诡异和复杂,前所未见,别被吓到了,所以做一个记录,以后照着做就可以了。下面的步骤看起来都不难,但是我google了一个下午解决所有看起来莫名其妙的报错。

# yum -y install pkgconfig libuuid* libgcrypt-devel zlib-devel byacc mysql-devel 

# wget http://libestr.adiscon.com/files/download/libestr-0.1.9.tar.gz 
# tar xvf libestr-0.1.9.tar.gz 
# cd libestr
# ./configure && make && make install 

# wget https://github.com/downloads/json-c/json-c/json-c-0.10.tar.gz
# tar xvf json-c-0.10.tar.gz
# cd json-c
# ./configure && make && make install 
# cp ../json-c-0.10/json_object_iterator.h /usr/local/include/json/

# wget https://pypi.python.org/packages/source/d/docutils/docutils-0.11.tar.gz --no-check-certificate 
# python setup.py install 
# ln -s /usr/bin/rst2man.py /usr/bin/rst2man

# wget http://www.rsyslog.com/files/download/rsyslog/rsyslog-7.4.7.tar.gz
# tar xvf rsyslog-7.4.7.tar.gz
# cd rsyslog
# ./configure --prefix=/usr/local/rsyslog --enable-mysql PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
# make && make install

程序被安装到了/usr/local/rsyslog目录下,可执行文件也是在这个目录中,只需要稍作修改,就可以开放数据库存储,修改监听端口等等。
发现网络日志一天就几亿条,果然很大,数据库已经垮掉了,最后还是要写脚本做定时清理,保存最近24小时的就好。
Enjoy it

当前暂无评论 »

添加新评论 »