• rsyslog+mariadb+loganalyzer实现日志服务器搭建


    rsyslog+mariadb+loganalyzer实现日志服务器搭建

    一、概述

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

    rsyslog的特性:

    1. 日志统一,集中式管理
    2. 多线程
    3. 强大的过滤功能,能实现过滤日志信息中的任何部分内容
    4. 自定义输出格式

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

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

    二、配置文件

    rsyslog程序环境:

    • rsyslog的程序包为:rsyslog,为系统自带,无需安装
    • 其主要配置文件为:/etc/rsyslog.conf和/etc/rsyslog.d/*.conf
    • 主程序:/usr/sbin/rsyslogd
    • CentOS 6:service rsyslogs {start |stop |restart | status}
    • CentOS 7:/usr/lib/systemd/system/rsyslog.service

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

    • 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

    • 在浏览器中输入http://172.16.47.101/mylog/
    • 点击Click here to Install Adiscon LogAnalyzer!继续
    • 接着一路next
    • 到这里需要修改了
    • 改成如下
    • 点击完成
    • 报错了

      看提示,可能是表名写错了,于是去配置文件[root@node1 /var/www/html/mylog]# vim config.php看看,找到如下位置,果然是写错了,'SystemEvents '多了一个空格,囧~
    • 修改完后,重启httpd,我们要的页面出来了

      (4)最后为了安全,别忘记修改一下config.php权限
      #chmod 644 config.php
      至此,一台日志服务器搭建完成。
    个人站点:www.ilurker.cn
  • 相关阅读:
    深入理解Java内存模型(JMM)
    Java基础知识①
    Java自旋锁的几种实现
    ConcurrentHashMap的CAS操作
    Java集合对比总结
    python模块--os模块
    python模块--random
    Datafactory 学习笔记
    Datafactory 实际使用案例
    Oracle三种排名函数使用
  • 原文地址:https://www.cnblogs.com/ilurker/p/6480639.html
Copyright © 2020-2023  润新知