阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

167次阅读
没有评论

共计 9618 个字符,预计需要花费 25 分钟才能阅读完成。

大概思路如下:
使用 Linux 自带的 rsyslog 服务来做底层,然后再使用 MySQL 与 rsyslog 的模板来存储文件,并且以 web 来进行显示出来。< 模板的存储以日期的树形结构来存储,并且以服务器客户端 IP 为文件名进行划分。
 
最终的效果如下图:

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

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

大概步骤如下:
1. 配置好 rsyslog server 的服务
2. 配置好 lamp 架构
3. 安装好 Loganalyzer 日志 web
4. 建好 web 权限控制
 
一、配置好 rsyslog server 的服务
以下为 /etc/rsyslog.conf 的配置文件,自行修改为以下的配置。

[root@localhost ~]# grep -v ‘^#’ /etc/rsyslog.conf|grep -v ‘^$’
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,123456
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ModLoad immark # provides –MARK– message capability
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template DynamicFile,”/var/log/ttlogs/%$YEAR%/%$MONTH%/%$DAY%/%fromhost-ip%-test.log”
*.* ?DynamicFile
$IncludeConfig /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
[root@localhost ~]#
# /etc/init.d/rsyslog restart #重启下 rsyslog 的服务
#chkconfig rsyslog on #设置开机启动
# netstat -tpnl #检查 rsyslogd 服务是否正常启动,514 端口
#logger ‘test_samcao’ #发送测试日志测试
#tail -f /var/log/messages #查看是否有测试信息,上面的有添加 mysql 的接口,会有错误提示但不影响

注:需要注意下 rsyslog 的版本,有些版本的配置不太一样。会有问题,在此需要根据 /var/log/message 中的日志信息进行排查,在此第一步配置 rsyslog server 就配置完了
 
二、准备配置 LAMP 环境
下面的这步可以直接简单的搭建好 LAMP 的环境

#yum -y install httpd mysql mysql-server php php-mysql postgresql postgresql-server php-postgresql php-pgsql php-devel gd gd-devel php-gd
#/etc/init.d/httpd start
#/etc/rc.d/init.d/mysqld start
#/usr/bin/mysqladmin -u root password ‘new-password’

三、安装好 Loganalyzer 日志 web

#wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz
#tar zxvf loganalyzer-3.6.5.tar.gz
#cd loganalyzer-3.6.5
# mkdir -p /var/www/html/loganalyzer
# rsync -a src/* /var/www/html/loganalyzer/
# touch /var/www/html/loganalyzer/config.php
# chmod 666 /var/www/html/loganalyzer/config.php

然后就是访问 http://192.168.1.213/loganalyzer 页面进行 web 安装的操作了。这个我忽略了。图太多。而且我已经安装完了。再截图太麻烦。可以看这个链接:http://www.linuxidc.com/Linux/2014-06/103836.htm

注:上面安装的时候注意下,数据库如果没有需要自己手动建一下,还有数据表的名称的大小写。还有 gd 库的支持打开 /etc/php.ini 将 gd.jpeg_ignore_warning = 0 这行的注释取消掉
四、建好 web 权限控制
默认可以直接打开 web 页面查看日志,可能有时候需要进行相关的权限设置,没有再深入研究 loganalyzer,在此直接使用 apache 的密码来处理了下这个问题
1. 将 http.conf 中的 AllowOverride all

[root@logserver ~]# cat /var/www/html/.htaccess
AuthName “Login”
AuthType basic
AuthUserFile “/var/webuser”
require valid-user
[root@logserver ~]#

4. 使用后面会提示需要输入密码. 直接输入密码即可. 但是需要添加多个用户的时候不可使用上面的命令. 其中 - c 表示需要创建一个加密文件, 可使用 htpasswd -mdps /var/webuser cs 来进行添加账号.
这样就完事了. 最后在访问 web 的时候,会提示需要输入密码。输入然后就可以正常的访问了。
 
其中有些配置信息上面没有说清楚,如果有需要的同学可以看下下面的一些链接:
在 Linux 上配置一个 syslog 服务器 http://www.linuxidc.com/Linux/2015-03/114802.htm

CentOS 6.5 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2014-06/103836.htm
 
其它的还有一些官方的链接,在此就不帖了,这个只是我自己的一个记录。

[root@localhost ~]# grep -v ‘^#’ /etc/rsyslog.conf |grep -v  ‘^$’
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog  # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
module(load=”imfile” PollingInterval=”10″)
input(type=”imfile”
    File=”/usr/local/u-mail/service/nginx/logs/access.log”
    StateFile=”/var/spool/rsyslog/statefile1″
    Tag=”tag1″
    Severity=”access”
    Facility=”local7″)
local7.*    @192.168.1.213:514
*.*    @192.168.1.213
[root@localhost ~]#

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

CentOS 6.3 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器  http://www.linuxidc.com/Linux/2013-07/86956.htm

CentOS 6.5+Rsyslog+LogAnalyzer 搭建中央日志服务器  http://www.linuxidc.com/Linux/2014-06/102867.htm

RHEL5.4 部署中央日志服务器之 rsyslog+Log Analyzer http://www.linuxidc.com/Linux/2012-01/51853.htm

CentOS 6.3 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2013-07/86956.htm

RHEL5.4 部署中央日志服务器之 rsyslog+loganalyzer http://www.linuxidc.com/Linux/2010-12/30801.htm

使用 rsyslog mysql 和 logAnalyzer 的日志服务器 http://www.linuxidc.com/Linux/2012-09/70717.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-09/134849.htm

更新:

使用这个搭建了一个日志服务器,但是在 MySQL 中,日志增加太快,过了些天,已经有几千万的数据了,而且 loganalyzer 生成的表并不够好 < 个人感觉 >,没有相关的索引,最终在查询的时候败下阵来,在此期间,有尝试将该日志的表添加索引 < 小弟对 mysql 也不熟悉,不熟悉 mysql 的优化索引,胡乱根据网上的教程,添加了一些索引 > 如下图.

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

 

这还是比较勤快的删除了数据,具体的如下数量,并且这数据量才刚刚进行上线:

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

 

这实在是一个头痛的问题,思索再写,决定自己利用 Python+<xshell 的 grep> 直接查询日志文件,利用 django+apache 实现前端显示,自己来实现一个算了。大概思路如下。

先看下 rsyslog 日志的目录结构及 rsyslog 模板的配置:

$template DynamicFile,"/var/log/ttlogs/%$YEAR%/%$MONTH%/%$DAY%/%fromhost-ip%-test.log"
*.* ?DynamicFile

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

 

然后相关的思路图如下:

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

 

在此仅表述个人的观点,如果不好,请大家指出。跪听。

大概思路如下:
使用 Linux 自带的 rsyslog 服务来做底层,然后再使用 MySQL 与 rsyslog 的模板来存储文件,并且以 web 来进行显示出来。< 模板的存储以日期的树形结构来存储,并且以服务器客户端 IP 为文件名进行划分。
 
最终的效果如下图:

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

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

大概步骤如下:
1. 配置好 rsyslog server 的服务
2. 配置好 lamp 架构
3. 安装好 Loganalyzer 日志 web
4. 建好 web 权限控制
 
一、配置好 rsyslog server 的服务
以下为 /etc/rsyslog.conf 的配置文件,自行修改为以下的配置。

[root@localhost ~]# grep -v ‘^#’ /etc/rsyslog.conf|grep -v ‘^$’
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,123456
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ModLoad immark # provides –MARK– message capability
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template DynamicFile,”/var/log/ttlogs/%$YEAR%/%$MONTH%/%$DAY%/%fromhost-ip%-test.log”
*.* ?DynamicFile
$IncludeConfig /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
[root@localhost ~]#
# /etc/init.d/rsyslog restart #重启下 rsyslog 的服务
#chkconfig rsyslog on #设置开机启动
# netstat -tpnl #检查 rsyslogd 服务是否正常启动,514 端口
#logger ‘test_samcao’ #发送测试日志测试
#tail -f /var/log/messages #查看是否有测试信息,上面的有添加 mysql 的接口,会有错误提示但不影响

注:需要注意下 rsyslog 的版本,有些版本的配置不太一样。会有问题,在此需要根据 /var/log/message 中的日志信息进行排查,在此第一步配置 rsyslog server 就配置完了
 
二、准备配置 LAMP 环境
下面的这步可以直接简单的搭建好 LAMP 的环境

#yum -y install httpd mysql mysql-server php php-mysql postgresql postgresql-server php-postgresql php-pgsql php-devel gd gd-devel php-gd
#/etc/init.d/httpd start
#/etc/rc.d/init.d/mysqld start
#/usr/bin/mysqladmin -u root password ‘new-password’

三、安装好 Loganalyzer 日志 web

#wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz
#tar zxvf loganalyzer-3.6.5.tar.gz
#cd loganalyzer-3.6.5
# mkdir -p /var/www/html/loganalyzer
# rsync -a src/* /var/www/html/loganalyzer/
# touch /var/www/html/loganalyzer/config.php
# chmod 666 /var/www/html/loganalyzer/config.php

然后就是访问 http://192.168.1.213/loganalyzer 页面进行 web 安装的操作了。这个我忽略了。图太多。而且我已经安装完了。再截图太麻烦。可以看这个链接:http://www.linuxidc.com/Linux/2014-06/103836.htm

注:上面安装的时候注意下,数据库如果没有需要自己手动建一下,还有数据表的名称的大小写。还有 gd 库的支持打开 /etc/php.ini 将 gd.jpeg_ignore_warning = 0 这行的注释取消掉
四、建好 web 权限控制
默认可以直接打开 web 页面查看日志,可能有时候需要进行相关的权限设置,没有再深入研究 loganalyzer,在此直接使用 apache 的密码来处理了下这个问题
1. 将 http.conf 中的 AllowOverride all

[root@logserver ~]# cat /var/www/html/.htaccess
AuthName “Login”
AuthType basic
AuthUserFile “/var/webuser”
require valid-user
[root@logserver ~]#

4. 使用后面会提示需要输入密码. 直接输入密码即可. 但是需要添加多个用户的时候不可使用上面的命令. 其中 - c 表示需要创建一个加密文件, 可使用 htpasswd -mdps /var/webuser cs 来进行添加账号.
这样就完事了. 最后在访问 web 的时候,会提示需要输入密码。输入然后就可以正常的访问了。
 
其中有些配置信息上面没有说清楚,如果有需要的同学可以看下下面的一些链接:
在 Linux 上配置一个 syslog 服务器 http://www.linuxidc.com/Linux/2015-03/114802.htm

CentOS 6.5 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2014-06/103836.htm
 
其它的还有一些官方的链接,在此就不帖了,这个只是我自己的一个记录。

[root@localhost ~]# grep -v ‘^#’ /etc/rsyslog.conf |grep -v  ‘^$’
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog  # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
module(load=”imfile” PollingInterval=”10″)
input(type=”imfile”
    File=”/usr/local/u-mail/service/nginx/logs/access.log”
    StateFile=”/var/spool/rsyslog/statefile1″
    Tag=”tag1″
    Severity=”access”
    Facility=”local7″)
local7.*    @192.168.1.213:514
*.*    @192.168.1.213
[root@localhost ~]#

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

CentOS 6.3 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器  http://www.linuxidc.com/Linux/2013-07/86956.htm

CentOS 6.5+Rsyslog+LogAnalyzer 搭建中央日志服务器  http://www.linuxidc.com/Linux/2014-06/102867.htm

RHEL5.4 部署中央日志服务器之 rsyslog+Log Analyzer http://www.linuxidc.com/Linux/2012-01/51853.htm

CentOS 6.3 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2013-07/86956.htm

RHEL5.4 部署中央日志服务器之 rsyslog+loganalyzer http://www.linuxidc.com/Linux/2010-12/30801.htm

使用 rsyslog mysql 和 logAnalyzer 的日志服务器 http://www.linuxidc.com/Linux/2012-09/70717.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-09/134849.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计9618字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中