首页 > 代码库 > rsyslog+Loganalyzer日志服务器--初探

rsyslog+Loganalyzer日志服务器--初探

    Rsyslog 是一个 syslogd 的多线程增强版,在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL, PostgreSQL、Oracle等)、日志内容筛选、定义日志格式模板等。除了默认的udp协议外,rsyslog还支持tcp协议来接收日志。
    本文只做简单配置与说明。更多与日志相关的服务的详细解释与配置,请参考http://w.gdu.me/wiki/Linux/rsyslog_logrotate.html
rsyslogd服务器及负载均衡;rsyslog和logrotate服务

 

环境准备:
操作系统:CentOS-6.5-x86_64
内核:# uname -r        2.6.32-431.el6.x86_64
关闭Selinux:1. 永久有效修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然后重启。
            2. 即时生效setenforce 0
关闭防火墙:1、永久有效 chkconfig iptables off     2临时关闭 # /etc/rc.d/init.d/iptables stop
服务器_IP:172.16.19.12(node2)
客户端_IP:172.16.19.2(stu19)
LAMP环境直接使用yum安装。
时间同步:如果涉及部署多名服务器时,最好使用NTP服务器同步时间。

本地光盘作为yum源(CentOS-6.5-x86_64-bin-DVD1)

 

服务器端配置

rsyslog支持将日志存储于MySQL服务器中:

   1)安装LAMP环境,配置好mysql数据库服务,创建Syslog库并授权远程用户syspass登陆,密码为syspass;

1 # yum -y install httpd mysql-server mysql php php-mysql php-gd gd 2 # service mysqld start 3 # /usr/bin/mysqladmin -u root password ‘root‘ 4 # mysql -uroot -proot 5 ###由于本处使用了明文密码,出于安全,生产环境中建议此后修改用户的密码。 6 mysql> grant all on Syslog.* to ‘sysuser‘@‘localhost‘ identified by ‘syspass‘; 7 mysql> grant all on Syslog.* to ‘sysuser‘@127.0.0.1‘ identified by ‘syspass‘; 8 mysql> flush privileges;

  2)安装rsyslog(本机默认已安装)与rsyslog-mysql包,rsyslog-mysql会生成ommysql.so库和CreateDB.sql初始库;rsyslog-mysql为rsyslog将日志传送到mysql数据库的一个模块,这里必须安装。

1 # yum -y install rsyslog-mysql rsyslog 2 # rpm -ql rsyslog-mysql 3 /lib64/rsyslog/ommysql.so 4 /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

  3)使用createDB.sql语句创建rsyslog依赖的数据库:
      # mysql -uroot -proot < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
      生成库:Syslog      
      生成表:SystemEvents    SystemEventsProperties

  4)修改配置文件,配置rsyslog启用模块,服务监听端口为514,且修改RULES段的相关日志段使其存储于mysql数据库中

1 #### Modules #####启用模块: 2 # Provides UDP syslog reception 3 $ModLoad imudp 4 $UDPServerRun 514 ### 允许514端口接收使用UDP协议转发过来的日志 5 6 # Provides TCP syslog reception 7 $ModLoad imtcp 8 $InputTCPServerRun 514 #### 允许514端口接收使用TCP协议转发过来的日志 9 10 $ModLoad ommysql #手动添加 11 12 #### RULES ####段中定义记录日志信息于数据库中,根据所需定义,可以把全部的日志信息都存储在库中,本处只测试部分。 13 *.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,sysuser,syspass 14 ###ommysql:数据库地址,数据库名,数据库用户名,数据库密码

5)    重启rsyslog服务,并查看514端口是否监听
    # service rsyslog restart
    # ss -anltp |grep 514
    LISTEN     0      25      :::514       :::*      users:(("rsyslogd",19513,6))
    LISTEN     0      25       *:514        *:*      users:(("rsyslogd",19513,2)) 

 

本机测试:

   首先使用yum安装vsftpd包,然后在使用命令tail -f /var/log/messages 查看日志文件已经没有显示相关的日志信息了。
   在mysql数据库中查询到相关日志信息
    # mysql -uroot -proot
    mysql> use Syslog
    mysql> select * from  SystemEvents;
      在表中可以看到node2安装vsftpd包的日志信息。


客户端相关:
配置:
客户端主机名为:stu19
1、安装rsyslog包,默认安装,# yum install rsyslog -y
    # rpm -q rsyslog
    rsyslog-7.4.7-6.el7.x86_64
2、修改配置文件rsyslog.conf,添加如下内容
    # vim /etc/rsyslog.conf

*.* @@172.16.19.12:514          # 允许日志都送到rsyslog的服务端, @@表示通过tcp协议发送;@表示通过udp进行转发
3、重启rsyslog服务。
    # /etc/rc.d/init.d/rsyslog restart

测试:
    1、在客户端使用命令安装lrzsz ;
    2、tail -f /var/log/messages已经查不到日志信息了
    3 、在服务器的数据库表中


通过webGUI展示日志信息    安装 loganalyzer

首先下载好loganalyzer-3.6.5.tar.gz 以及中文语言包

1 # tar xf loganalyzer-3.6.5.tar.gz -C /var/www/html/ 2 # cd /var/www/html/ 3 # mv loganalyzer-3.6.5 loganalyzer 4 目录中有个INSTALL文件,根据里面的提示进行安装。 5 # mv loganalyzer/src/* ./loganalyzer 6 # cp loganalyzer/contrib/* ./loganalyzer/ 7 # cd /var/www/html/loganalyzer/ 8 # chmod +x configure.sh secure.sh 9 # ./configure.sh 10 # ./secure.sh 11 # chmod 666 config.php 12 下载个汉化文件 13 # mkdir /var/www/html/loganalyzer/lang/zh 14 # 下载汉化文件 admin.php info.txt main.php ,把三个文件入在上面新建的zh目录中 15 # chown -R apache.apache ./* 16 # service httpd restart

在浏览器中输入http://172.16.19.12/loganalyzer,出现如下图,单击here处进行安装
 image

如果没有报错信息,就直接点击“next”直到Step3

image
 image

 

按需进行基本的配置,此处的自动解析IP地址设置为No

image


从Step3直接跳转到Step7,根据此前的数据库信息填写几处关键信息(红色方框内),其他的默认

image

 

image
直至此处,点击Finish,安装配置已经完成;

 

loganalyze的页面

image

 

网页的右上角处修改语言为Chinese
 image

 

测试:
在服务器端使用yum 安装lrzsz,在页面中的第一条就显示相关日志了。
 image