你的位置:首页 > 操作系统

[操作系统]rsyslog+mysql+loganalyzer搭建日志服务器个人笔记


大概思路如下:
使用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/messagesauthpriv.* /var/log/securemail.* -/var/log/maillogcron.* /var/log/cron*.emerg *uucp,news.crit /var/log/spoolerlocal7.* /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.cnblogs.com/mchina/p/linux-centos-rsyslog-loganalyzer-mysql-log-server.html
注:上面安装的时候注意下,数据库如果没有需要自己手动建一下,还有数据表的名称的大小写。还有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 basicAuthUserFile "/var/webuser"require valid-user[root@logserver ~]#

 

4.使用后面会提示需要输入密码.直接输入密码即可.但是需要添加多个用户的时候不可使用上面的命令.其中-c表示需要创建一个加密文件,可使用 htpasswd -mdps /var/webuser cs来进行添加账号.
这样就完事了.最后在访问web的时候,会提示需要输入密码。输入然后就可以正常的访问了。
 
其中有些配置信息上面没有说清楚,如果有需要的同学可以看下下面的一些链接 :
https://linux.cn/article-5023-1.html 在 Linux 上配置一个 syslog 服务器
http://www.cnblogs.com/mchina/p/linux-centos-rsyslog-loganalyzer-mysql-log-server.html 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/messagesauthpriv.*                       /var/log/securemail.*                         -/var/log/maillogcron.*                         /var/log/cron*.emerg                         :omusrmsg:*uucp,news.crit                     /var/log/spoolerlocal7.*                        /var/log/boot.logmodule(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 ~]#