大概思路如下:
使用Linux自带的rsyslog服务来做底层,然后再使用MySQL与rsyslog的模板来存储文件,并且以web来进行显示出来。<模板的存储以日期的树形结构来存储,并且以服务器客户端IP为文件名进行划分。
最终的效果如下图:
大概步骤如下:
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
#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
然后就是访问 页面进行web安装的操作了。这个我忽略了。图太多。而且我已经安装完了。再截图太麻烦。可以看这个链接:
注:上面安装的时候注意下,数据库如果没有需要自己手动建一下,还有数据表的名称的大小写。还有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 服务器
CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
其它的还有一些官方的链接,在此就不帖了,这个只是我自己的一个记录。
[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 ~]#