zoukankan      html  css  js  c++  java
  • 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/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安装的操作了。这个我忽略了。图太多。而且我已经安装完了。再截图太麻烦。可以看这个链接:
    注:上面安装的时候注意下,数据库如果没有需要自己手动建一下,还有数据表的名称的大小写。还有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的时候,会提示需要输入密码。输入然后就可以正常的访问了。
     
    其中有些配置信息上面没有说清楚,如果有需要的同学可以看下下面的一些链接 :
    https://linux.cn/article-5023-1.html 在 Linux 上配置一个 syslog 服务器
     
    其它的还有一些官方的链接,在此就不帖了,有问题自行百度去吧。这个只是我自己的一个记录。
    [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 ~]# 
     
     
     
  • 相关阅读:
    MySQL存储引擎InnoDB与Myisam的六大区别
    PHP+mysql防止SQL注入
    HTTPS 的实现原理
    如何保障 API 接口的安全性?
    使用Merge存储引擎实现MySQL分表
    彻底搞懂Reactor模型和Proactor模型
    REDIS集群脑裂以及解决方案
    linux shell文件合并 去重 分割
    python fnmatch & glob
    sed初理多行合并+sed之G、H、g、h使用+sed n/N使用说明
  • 原文地址:https://www.cnblogs.com/drgcaosheng/p/5832697.html
Copyright © 2011-2022 走看看