Rsyslog+MariaDB+Loganalyzer实现日志服务器搭建

Linux的日志记录了用户在系统上一切操作,包括系统自身运作产生的日志,这些日志是应使用者了解服务器的情况最好的资料。Rsyslog 是系统的一部分,能够实时的写日志,并且还可以将日志选择性的发送到远程日志服务器。

rsyslog的特性:

日志统一,集中式管理

多线程

强大的过滤功能,能实现过滤日志信息中的任何部分内容

自定义输出格式

LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中,本次试验采用将日志保存到数据库的方式,在企业规模不大,机器数量不多的情况下,LogAnalyzer 是一个不错的选择。

LogAnalyzer 采用php开发,所以日志服务器需要php的运行环境,本文采用LAMP。

二、配置文件

rsyslog程序环境:

配置文件格式由三部分组成:

MODULES:模块配置

GLOBAL DIRECTIVES:全局配置

RULES:日志记录相关的配置

RULES部分配置介绍如下:

配置格式:facility.priority target facility *:所有的facility; f1,f2,f3,...:指定的facility列表; priority: *:所有级别; none:没有级别; PRIORITY:指定级别(含)以上的所有级别; =PRIORITY:仅记录指定级别的日志信息; target: 文件:将日志信息记录到指定的文件中;文件路径前的-表示异步写入; 用户:将日志事件通知给指定的用户; 日志服务器:@host,把日志通过网络送往指定的服务器记录,而非由本地记录; 管道:| COMMAND

如果要配置rsyslog成为日志服务器,需要在MODULES部分加载TCP或UDP模块:

#### MODULES #### # Provides UDP syslog reception $Modload imudp $UDPServerRun 514 # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514

其他日志文件:

/var/log/secure:系统安装日志,应该周期性分析; /var/log/btmp:当前系统上,用户的失败尝试登陆相关的日志信息,lastb命令进行查看; /var/log/wtmp:当前系统上,用户正常登陆系统的相关日志信息,last命令可以查看; lastlog命令:用于查看当前系统上每一个用户最近一次的登陆信息; /var/log/messages:系统日志信息; /var/log/dmesg:系统引导过程中的日志信息; 可以使用文本查看工具查看; 也可以使用专用命令dmesg查看;

下面开始我们的安装

三、安装和配置

配置rsyslog将日志记录于MySQL中:
(1)准备MySQL Server:yum install mariadb
(2)在在mysql server上授权rsyslog能连接至当前服务器;
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'loguser'@'127.0.0.1' IDENTIFIED BY 'admin@123';
注意:我的实验环境是rsyslog和mysql在同一台机器上面,所以使用的地址是127.0.0.1
(3)安装rsyslog 连接MySQL数据库的模块;
yum install rsyslog-mysql
(4)为rsyslog创建数据库及表
mysql -uloguser -hlocalhost -pmagedu</usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
查看生成的表:

MariaDB [(none)]> use Syslog; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [Syslog]> show tables; +------------------------+ | Tables_in_Syslog | +------------------------+ | SystemEvents | | SystemEventsProperties | +------------------------+ 2 rows in set (0.00 sec) MariaDB [Syslog]>

(5)配置rsyslog将日志保存到mysql中;

#### MODULES #### $ModLoad ommysql #### RULES #### *.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,loguser,admin@123

(6)重启rsyslog服务;
[root@node1 ~]# systemctl restart rsyslog.service
这样,日志文件就不再记录于/var/log/messages下了,而是记录在数据库中。
通过loganalyzer展示数据库中的日志:
(1)准备amp或nmp组合:这里我使用的是lamp;
yum install httpd php php-mysql php-gd
(2)安装LogAnalyzer:

tar xf loganalyzer-3.6.5.tar.gz cp -a loganalyzer-3.6.5/src /var/www/html/mylog cd /var/www/html/mylog touch config.php chmod 666 config.php

(3)配置loganalyzer:
systemctl start httpd.service

CentOS 6.7搭建Rsyslog日志服务器

Rsyslog+MySQL+Loganalyzer搭建日志服务器 

Rsyslog+MySQL+Loganalyzer搭建日志服务器 

CentOS 6.5+Rsyslog+LogAnalyzer搭建中央日志服务器 

Rsyslog日志服务器搭建以及Loganalyzer安装使用 

CentOS 6.5 rsyslog+MySQL+loganalyzer日志集中分析管理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/20a0a718ee3e77bc4c9697a5467a03d0.html