美文网首页OpsDev
rsyslog结合mysql搭建loganalyzer日志管理

rsyslog结合mysql搭建loganalyzer日志管理

作者: 任总 | 来源:发表于2018-07-04 15:34 被阅读24次

    一、rsyslog

    rsyslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地,

    • 历史事件: 时间,事件
    • 事件级别(日志级别):事件的关键性程度;
    • 事件:系统引导启动、应用程序启动、应用程序尤其是服务类应用程序运行过程中的一些事件;
      系统日志服务:
      syslog:
      syslogd: system
      klogd:kernel
    • 事件格式较为简单时,可统一由syslog进行记录:
    • 事件产生的日期时间 主机 进程[pid] :事件内容
    • 支持C/S架构:可通过UDP或TCP协议提供日志记录服务;
    image.png

    二、 rsyslogd特性:

    1、多线程;
    2、支持协议: UDP,TCP,SSL,TLS,RELP;
    3、存储日志信息于MySQL、PGSQL、Oracle等数据管理系统;
    4、强大的过滤器,实现过滤日志信息中任何部分的内容;
    5、自定义输出格式;

    三、rsyslog日志收集器重要术语:

    1.facility:设施,从功能或程序上对日志收集进行分类;

    auth---认证,
    authpriv---认证授权,
    cron---周期性计划,
    daemon---守护进程,
    kern---内核,
    lpr---打印系统,
    mail---邮件服务组件,
    mark---防火墙标记,
    news---新闻组,
    security---安全相关,
    user---用户产生的日志,
    uucp---Unix拷贝,
    local0-local7---自定义,
    syslog---日志

    2.priority:优先级,日志级别

    debug----最低级别-调试,
    info----消息,
    notice----注意提醒,
    warn(warning)----警告,
    err(error)----错误,
    crit(critical)----蓝色警报,
    alert----橙色警报,
    emerg(panic) ----红色警报

    3.指定级别:

    *:所有级别;
    none:没有级别;
    priority:此级别以高于此级别的所有级别;
    =priorty:仅此级别;

    ……

    4. 程序环境:

    主程序:rsyslogd

    主配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf

    服务脚本(centos6):/etc/rc.d/init.d/rsyslog

    Unit File(CentOS 7):/usr/lib/systemd/system/rsyslog.service

    配置文件格式rsyslog.conf
    主要由三部分组成:
    MODULES模式
    GLOBAL DRICTIVES全局工作日志

    RULES那个级别记录在那个文件里
    RULES:
    facilty.priority target
    target:
    文件:记录日志事件于指定的文件中;通常应该位于/var/log目录下;文件路径之前的"-"表示异步写入;

    image.png
    用户:将日志事件通知给指定的用户;是通过将信息发送给登录到系统上的用户的终端进行的;
    日志服务器:@host,把日志送往指定的服务器主机;
    image.png
    host:即日志服务器地址,监听在tcp或udp协议的514端口以提供服务;
    管道: | COMMAND
            其它日志文件:
                /var/log/wtmp:当前系统成功登录系统的日志;
                    需要使用last命令查看
                /var/log/btmp:当前系统尝试登录系统失败相关的日志;
                    需要使用lastb命令查看
                    
                    lastlog:显示当前系统上的所有用户最近一次登录系统的时间;
                
                /var/log/dmesg:系统引导过程中的日志信息;
                    也可以使用dmesg命令进行查看;
    

    四:mysql和rsyslog搭建loganalyzer

    1、在数据库服务器上:

    首先关闭selinux和防火墙。

    [root@mariadb-107 ~]# yum -y install mariadb       #安装数据库
    [root@mariadb-107 ~]# vim /etc/my.cnf.d/server.cnf #配置数据库
    [mysqld]
    skip_name_resolve=ON               #添加
    innodb_file_per_table=ON
    
    [root@mariadb-107 ~]# systemctl start mariadb #启动数据库
    [root@mariadb-107 ~]# mysql
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 3
    Server version: 5.5.56-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    MariaDB [(none)]> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | Syslog             |       #生成日志数据库
    | mysql              |
    | performance_schema |
    | test               |
    | vsftpd             |
    +--------------------+
    6 rows in set (0.01 sec)
    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]> GRANT ALL ON Syslog.* TO 'rsyslog'@'172.16.15.%' IDENTIFIED BY 'rsyspass'; #授权syslog数据库用户
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [Syslog]> FLUSH PRIVILEGES; #刷新
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [Syslog]> EXIT#退出
    Bye
    
    2、在客户端上安装rsyslog数据库模块:

    首先关闭selinux和防火墙。

    [root@client-90 ~]# yum -y install  rsylog rsyslog-mysql  #安装rsyslog数据库模块
    [root@client-90 ~]# rpm -ql rsyslog-mysql     #查询
    /usr/lib64/rsyslog/ommysql.so                              #已安装模块
    /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql #控制脚本
    [root@client-90 ~]#  mysql -h172.16.15.107 -ursyslog -prsyspass < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql #登录数据库倒入执行脚本生成日志数据库
    [root@client-90 ~]# vim /etc/rsyslog.conf
    #### MODULES ####
    # Provides UDP syslog reception
    $ModLoad imudp                    #开启udp    
    $UDPServerRun 514
    
    # Provides TCP syslog reception
    $ModLoad imtcp                   #开启tcp
    $InputTCPServerRun 514
    $ModLoad  ommysql                      #添加
    #### RULES ####
    *.info:ommysql:172.16.15.107,Syslog,rsyslog,rsyspass         #设置远端syslog数据库用户名和密码
    [root@client-90 ~]# systemctl restart rsyslog
    [root@client-90 ~]# yum install wget #安装一个wget程序测试用
    
    
    
    3、回到数据服务器查看日志记录:
    MariaDB [Syslog]> SELECT * FROM SystemEvents \G;
    *************************** 400. row ***************************
                    ID: 400
            CustomerID: NULL
            ReceivedAt: 2018-07-04 02:28:08
    DeviceReportedTime: 2018-07-04 02:28:08
              Facility: 1
              Priority: 6
              FromHost: client-90
               Message: Installed: wget-1.14-15.el7_4.1.x86_64     #客户端安装wget时候产生的日志
            NTSeverity: NULL
            Importance: NULL
           EventSource: NULL
             EventUser: NULL
         EventCategory: NULL
               EventID: NULL
       EventBinaryData: NULL
          MaxAvailable: NULL
             CurrUsage: NULL
              MinUsage: NULL
              MaxUsage: NULL
            InfoUnitID: 1
             SysLogTag: yum[17658]:
          EventLogType: NULL
       GenericFileName: NULL
              SystemID: NULL
    400 rows in set (0.00 sec)
    
    4、安装loganalyzer
    [root@client-90 ~]# wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gz#下载loganalyzer
    [root@client-90 ~]# tar xf loganalyzer-4.1.6.tar.gz #解压缩到当前目录
    [root@client-90 ~]# yum install -y httpd php php-mysql php-gd #安装http、php、php-mysql、php-gd服务
    [root@client-90 ~]# mkdir /var/www/html/syslog   #创建syslog目录
    [root@client-90 ~]# cp -r loganalyzer-4.1.6/src/* /var/www/html/syslog #拷贝loganalzer到syslog目录
    [root@client-90 ~]# cp -r loganalyzer-4.1.6/contrib/*.sh /var/www/html/syslog/ #拷贝loganalzer到syslog目录
    [root@client-90 ~]# cd /var/www/html/syslog/#切换到syslog目录
    [root@client-90 syslog]# chmod +x *.sh  #设置脚本的执行权限
    [root@client-90 syslog]# ./configure.sh #执行
    [root@client-90 syslog]# chmod 666 config.php#修改config.php文件权限
    [root@client-90 syslog]#  systemctl start httpd #启动http
    
    • 浏览器打开:
    点here开始设置.png
    开始安装.png
    验证文件权限.png
    基本设置.png
    设置数据库.png
    设置完成.png

    相关文章

      网友评论

        本文标题:rsyslog结合mysql搭建loganalyzer日志管理

        本文链接:https://www.haomeiwen.com/subject/wseeuftx.html