教你如何实现集中式RSYSLOG服务器监控

日期: 2012-08-19 来源:TechTarget中国

  本教程逐步介绍了如何将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

  附注:Rsyslog是一种在UNIX和Unix类的计算机系统上使用的开源软件实用工具,用于转发IP网络中的日志消息。它实施了基本的syslog(系统日志)协议,并且为syslog协议扩增了基于内容的过渡、丰富的过滤功能和灵活的配置选项,还增添了一些重要功能,比如使用TCP进行传输。详见http://www.rsyslog.com/

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐

  • 在Ubuntu上搭建安全的Apache Web服务器

    Apache2是许多安装的Linux发行版使用的默认Web服务器。它不是对所有环境来说唯一可用的Web服务器,也不是最佳的Web服务器,但是它适合许多使用场景。

  • 安装Apache模块改善Apache Web服务器

    Apache依然是世界上最受欢迎的Web服务器。本文介绍了一些实用的Apache模块,它们可以为你的Web服务器改善性能、内容分发和总体安全。