2012-08-21 14:51:28 来源:51cto
本教程逐步介绍了如何将RSYSLOG服务器安装到Debian 6(Squeeze)操作系统上,还逐步介绍了如何从多个客户端服务器将syslog数据发送到该服务器系统上。我们还将演示如何安装一台Apache Web服务器和MySQL数据库服务器以便收集syslog数据,并且演示如何安装LogAnalyzer(日志分析器),以便使用互联网浏览器,轻松地浏览收集而来的数据。
为此,我使用了一个预先准备好的OpenVZ虚拟化模板,但是该模板应该也适用于大多数基于Debian的操作系统上。
我并不保准这个模板同样适用于你的环境!
安装RSYSLOG服务器
这第一个部分描述的是如何搭建从客户端收集syslog数据的RSYSLOG服务器。在该例子中,我们的服务器名为RSYSLOG.domain.com,其固定IP地址为192.168.0.15.
首先,我们安装一些依赖项。
apt-get update
apt-get upgrade
apt-get install RSYSLOG RSYSLOG-mysql unzip zip binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libdb4.6-dev libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
安装过程中要求你输入MySQL服务器的密码时,创建一个密码!
我的OpenVZ模板已准备好了一切,所以下面这个命令对你来说可能没有必要……
apt-get install linux-kernel-headers
确保相应服务已创建并运行起来……
/etc/init.d/RSYSLOG restart
/etc/init.d/mysql restart
/etc/init.d/apache2 restart
确保服务器在侦听合适的TCP IP端口(端口80和端口3306)。这时,RSYSLOG还没有侦听任何端口。
RSYSLOG:~# netstat -tapn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 415/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 581/apache2
然后,我们可以构建RSYSLOG数据库:
mysqladmin -u root -p create RSYSLOG
接下来,我们启动MySQL命令外壳程序,创建RSYSLOG用户:
mysql -u root -p
GRANT SELECT, INSERT, UPDATE, DELETE ON RSYSLOG.* TO 'RSYSLOG'@'localhost' IDENTIFIED BY 'ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE';
FLUSH PRIVILEGES;
quit
接下来,我们配置RSYSLOG服务器,以便侦听TCP端口514:
vi /etc/RSYSLOG.conf
添加这几行……(要记得将密码更改成你在创建MySQL服务器的RSYSLOG用户时输入的那个密码。)
$ModLoad MySQL
*.* >127.0.0.1,RSYSLOG,RSYSLOG,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE
……并去掉处理TCP syslog接收的几行代码前面的注释。
# RSYSLOG v3的/etc/RSYSLOG.conf配置文件
#
# 想了解更多信息,请参阅/usr/share/doc/RSYSLOG-doc/html/RSYSLOG_conf.html
$ModLoad MySQL
*.* >127.0.0.1,RSYSLOG,RSYSLOG,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE
#################
#### 模块 ####
#################
$ModLoad imuxsock # 提供对本地系统日志的支持
$ModLoad imklog # 提供内核日志支持(以前由rklogd来提供)
#$ModLoad immark # 提供--MARK--息功能
# 提供UDP syslog接收
#$ModLoad imudp
#$UDPServerRun 514
# 提供TCP syslog接收
$ModLoad imtcp
$InputTCPServerRun 514
###########################
#### 全局指令 ####
###########################
并重启RSYSLOG服务。
/etc/init.d/RSYSLOG restart
确保服务器在侦听合适的TCP IP端口。(端口80、端口514和端口3306.)
RSYSLOG:~# netstat -tapn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 618/RSYSLOGd
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 415/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 581/apache2
接着我们下载LogAnalyzer,并配置Apache web服务器,以便显示日志。
cd /tmp
wget http://download.adiscon.com/loganalyzer/loganalyzer-3.4.1.tar.gz
tar xvzf loganalyzer-3.4.1.tar.gz
mv loganalyzer-3.4.1/ /var/www/
cd /var/www
接着我们为Apache web服务器配置www文件夹用户权限。
chown www-data:www-data * . -Rf
然后,我们对LogAnalyzer文件夹作了一些“改进”工作。
mv loganalyzer-3.4.1/ loganalyzer
cd contrib/
cp * .//src/
cd .//src/
sh ./configure.sh
我们已准备使用我们的互联网服务器来输入LogAnalyzer的最后设置项。往你的互联网浏览器里面输入RSYSLOG服务器的固定IP地址,本文中是http://192.168.0.15/loganalyzer/src/install.php.
运行简单的设置脚本(很简单,只要点击next -> next.)
现在,你应该有了正常运行的RSYSLOG服务器,而且LogAnalyzer已创建并运行起来。
接下来,我们配置RSYSLOG客户端,以便将其syslog数据发送到RSYSLOG服务器:
配置RSYSLOG客户端
我们要做的通常仅仅是配置RSYSLOG.conf文件,然后重启服务。(几乎所有Debian操作系统都预先安装了RSYSLOG.)
vi /etc/RSYSLOG.conf
添加万一网络连接中断要用到的work spool目录这几行,并将你的RSYSLOG服务器IP地址更改成192.168.0.15.(你可能还想要用mkdir命令来创建/RSYSLOG/work spool目录。)
# 提供TCP syslog接收
#$ModLoad imtcp
#$InputTCPServerRun 514
$WorkDirectory /RSYSLOG/work # work(spool)文件的默认位置
$ActionQueueType LinkedList # 使用异步处理
$ActionQueueFileName srvrfwd # 设置文件名称,还启用磁盘模式
$ActionResumeRetryCount -1 # 插入失败后,无限次重试
$ActionQueueSaveOnShutdown on # 如果RSYSLOG关闭,保存内存中数据
*.* @@YOUR-RSYSLOG-SERVER-ADDRESS-HERE
###########################
#### 全局指令####
###########################
并重启RSYSLOG服务。
/etc/init.d/RSYSLOG restart
服务器已通过合适的TCP IP端口(端口514)连接。
root@ic1:~# netstat -tapn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.0.100:49188 192.168.0.15:514 ESTABLISHED 13289/RSYSLOGd
这就是成功搭建的系统的样子。
附注:RSYSLOG是一种在UNIX和Unix类的计算机系统上使用的开源软件实用工具,用于转发IP网络中的日志消息。它实施了基本的syslog(系统日志)协议,并且为syslog协议扩增了基于内容的过渡、丰富的过滤功能和灵活的配置选项,还增添了一些重要功能,比如使用TCP进行传输。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。