linux系统下基于rsyslog构建日志服务器

摘要:

  本文实现的主要3个功能:

    第一,将node1构建为1个基于mysql保存的日志服务器。(步骤1-6)

    第二,构建了一个基于web-gui的日志管理界面,使用的是loganalyzer工具(步骤7)

    第三,将同一网段内的node2的日志也存放在node1的日志服务器里面(步骤8)


系统环境:

   node1:10.61.0.63

   node2:10.61.0.64

   yum源:epel源、本地光盘源

   安装包:loganalyzer-3.6.5.tar.gz


实验步骤:

***********在node1上进行如下操作*********************

 1.安装配置好可用的mysql服务器

  #yum install mysql mysql-server -y

 2.安装rsyslog-mysql的程序包

  #yum install rsyslog-mysql -y

 3.创建rsyslog依赖的数据库

  #cd /usr/share/doc/rsyslog-mysql-5.8.10  (找到createDB.sql,并导入)
  #mysql < createDB.sql

 4.配置rsyslog启用ommysql模块,以及rsyslog服务监听的端口

               

  #vim /etc/rsyslog.conf
  #### MODULES ####  首先启动监听端口,启用udp的514端口,即启动下面2项
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

$ModLoad ommysql  

  #### RULES ####   找到下面一项,并修改如下:启用ommysql模块和server_ip,user,password     
*.info;mail.none;authpriv.none;cron.none            :ommysql:127.0.0.1,Syslog,rsyslog,rsyslog


  5.把日志记录至指定的数据库表中,重新授权Syslog数据库给rsyslog用户以及密码

#mysql             
mysql> GRANT all ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslog';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT all ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'rsyslog';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

              

 重启rsyslog服务

# service rsyslog restart


6.进行测试,现在我们安装一个zsh,然后在/var/log/message日志查看有没有记录这个安装

# yum install zsh -y
# tail /var/log/messages

发现/var/log/message没有zsh安装的日志


7、使用loganalyzer(基于web的图形界面)来展示日志信息,依赖于lamp组件

#yum install httpd mysq php-mysql php-gd -y


下载好loganalyzer包,并解压至/var/www/html目录下,并进行如下配置

#tar -xf loganalyzer-3.6.5.tar.gz -C /var/www/html
#cd /var/www/html
#mkdir log
#cp loganalyzer-3.6.5/src/ log
#cp loganalyzer-3.6.5/contrib/* log
# cd log
# ./sercure.sh
# .configure.sh
# chmod 666 config.php
#chown -R apache.apache ./*

然后再在浏览器中访问,并进行安装:

linux系统下基于rsyslog构建日志服务器_第1张图片     

安装完成后,进入如下页面

linux系统下基于rsyslog构建日志服务器_第2张图片






8.现在需求来了,我有另外1台主机node2,我要把node2主机的日志记录在node1日志服务器上。

    ************* 在node2****************

     #vim /etc/rsyslog.conf
     ##################RULES##############找到下面一句并改为
     *.info;mail.none;authpriv.none;cron.none                @10.61.0.63
     #service rsyslog restart
     
     ***************在node1***********************
     首先关闭防火墙
     #service iptables stop

     然后再在浏览器中访问,此时在切换到node2上面,安装或者卸载httpd、php,看日志是否记录在mysql中。下图是我记录的结果:

linux系统下基于rsyslog构建日志服务器_第3张图片

spacer.gif


配置过程遇到的问题:

1.当loganalyzer 基于web-gui界面安装完成后,发现图形界面显示不了node1主机所产生的日志。


解决方法:发现在/etc/rsyslog.conf配置文件中的RULES段中没添加模块ommsql。所以重新添加后,重启rsyslog服务刷新浏览器即可。

    在/etc/rsyslog.conf中添加的内容:

        $ModLoad ommysql

    

2.当对node2的日志定向至node1,即10.61.0.63以后,发现显示不了node2的日志

    

解决方法:关闭node1的防火墙,就可以了。在node1执行下面操作:

    #service iptables stop


你可能感兴趣的:(linux,mysql,数据库,服务器,share)