• linux的系统日志rsyslog


    一。 日志简介

        Linux保存了系统中所发生事件的详细记录,这些记录称作日志文件或消息文件。可以查阅日志文件来确定系统当前状态,观察入侵者踪迹,寻找某特定程序(或事件)相关的数据。centos6使用rsyslog替代syslog记录日志 

       rsyslog的日志文件位于  /etc/rsyslog.conf 文件中 #开头为注释  主要包括几大部分:

    #### MODULES #### 表示系统加载的模块

     $ModLoad imuxsock 表示加载imuxsock模块 模块文件位于  /lib64/rsyslog/目录下
    其中下面几行注释的部分 用于通过udp或者tcp接受远程消息 端口是514(默认注释也就是不开启)

    # 提供udp接受消息
    #$ModLoad imudp
    #$UDPServerRun 514
    # 提供TCP接受消息
    #$ModLoad imtcp
    #$InputTCPServerRun 514
    #### GLOBAL DIRECTIVES #### 全局规则设定
    $WorkDirectory /var/lib/rsyslog 工作目录
    $IncludeConfig /etc/rsyslog.d/*.conf 包含 /etc/rsyslog.d下所有conf结尾的配置文件

    #### RULES #### 用于配置哪种日志使用哪种级别 记录在哪些位置
    语法 :facility.priority         target
    facility表示产生日志的设备 有以下这些值

    关键字                 值            解释
    kern                   0          内核信息,首先通过klogd传递
    user                   1          由用户程序生成的信息
    mail                   2          与电子邮件有关的信息
    daemon                 3          与inetd守护进程有关的信息
    auth                   4          由pam_pwdb报告的认证活动
    syslog                 5          由syslog生成的信息
    lpr                    6          与打印服务有关的信息
    news                   7          来自新闻服务器的信息
    uucp                   8          由uucp生成的信息(uucp = unix to unix copy)
    cron                   9          与cron和at有关的信息
    authpriv              10         包括私有信息(如用户名)在内的认证活动
    ftp                   11          与FTP有关的信息
                          12-15      系统保留
    local0 ~ local7       16-23      由自定义程序使用,例如使用local5做为ssh功能
    mark                             rsyslog内部功能,用于生成时间戳
    *                                通配符代表除了mark以外的所有功能


    priority 表示优先级 设置优先级后 所有低于该优先级的日志都输出到target中 
    关键字              值         解释
    emerg                0        系统不可用
    alert                1        需要立即被修改的条件
    crit                 2        (临界)阻止某些工具或子系统功能实现的错误条件
    err                  3        阻止工具或某些子系统部分功能实现的错误条件
    warning              4        预警信息
    notice               5        具有重要性的普通条件
    info                 6        提供信息的消息
    debug                7        不包含函数条件或问题的其他信息
    none                          (屏蔽所有来自指定设备的消息)没有优先级,通常用于排错
    *                             除了none之外的所有级别
    facility部分可以是用逗号(,)分隔的多个设备,而多个seletor之间也可以通过分号(;)组合在一起。注意多个组合在一起的选择符,后面的会覆盖前面的,这样就允许从模式中排除一些优先级。默认将对指定级别以及更严重级别的消息进行操作,但是可以通过2个操作符进行修改。等于操作符(=)表示仅对这个级别的消息进行操作,不等操作符(!)表示忽略这个级别以及更严重级别的消息。这两个操作符可以同时使用,不过"!"必须出现在"="的前面
    比如  就表示uucp和news的crit消息 都记录在/var/log/spooler中

    uucp,news.crit                                          /var/log/spooler
    比如(所有设备的info消息 除了mail和authpric和cron外 都记录在/var/log/messages)

    *.info;mail.none;authpriv.none;cron.none                /var/log/messages

    target:将日志记录于指定的目标地点有以下几种选择:
        普通文件:使用文件的绝对路径来指明日志文件所在的位置,例如:/var/log/cron。
        终端设备:终端可以是/dev/tty0~/dev/tty6,也可以为/dev/console。
        用户列表:例如动作为“root hackbutter”,将消息写入到用户root与hackbutter的计算机屏幕上。
        远程主机:将信息发往网络中的其他主机的rsyslog守护进程,格式为“@hostname”。

    在target前使用“-”表示异步写入。比如

    mail.*                                                  -/var/log/maillog
    查看其中 一个target文件内容

    [root@node1 ~]# more /var/log/messages
    Nov 19 17:45:01 localhost rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="787" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
    Nov 19 17:50:31 node1 dhclient[1182]: DHCPREQUEST on eno16777736 to 192.168.58.254 port 67 (xid=0x117d9a59)
    Nov 19 17:50:31 node1 dhclient[1182]: DHCPACK from 192.168.58.254 (xid=0x117d9a59)
    Nov 19 17:50:31 node1 NetworkManager[856]: <info>    address 192.168.58.147
    其中记录日志文件的内容为(记录: 时间,地点,人物,事件):

    时间 主机名 进程名[进程id]:日志的内容 

    二。rsyslog安装

      rsyslog的官网是: http://www.rsyslog.com  

    默认centos6以上都已经安装了rsyslog  确认是否安装

    [root@node1 ~]# rpm -qa | grep rsyslog
    rsyslog-7.4.7-12.el7.x86_64
    如果没有安装 

    yum -y install rsyslog
    查看 rsyslog安装的所有文件

    [root@node1 ~]# rpm -ql  rsyslog 
    /etc/logrotate.d/syslog
    /etc/pki/rsyslog
    /etc/rsyslog.conf
    /etc/rsyslog.d
    /etc/sysconfig/rsyslog
    /usr/bin/rsyslog-recover-qi.pl
    /usr/lib/systemd/system/rsyslog.service
    /usr/lib64/rsyslog
    /usr/lib64/rsyslog/imdiag.so
    /usr/lib64/rsyslog/imfile.so
    /usr/lib64/rsyslog/imjournal.so
    /usr/lib64/rsyslog/imklog.so
    /usr/lib64/rsyslog/immark.so
    /usr/lib64/rsyslog/impstats.so
    /usr/lib64/rsyslog/imptcp.so
    /usr/lib64/rsyslog/imtcp.so
    /usr/lib64/rsyslog/imudp.so
    /usr/lib64/rsyslog/imuxsock.so
    /usr/lib64/rsyslog/lmnet.so
    /usr/lib64/rsyslog/lmnetstrms.so
    /usr/lib64/rsyslog/lmnsd_ptcp.so
    /usr/lib64/rsyslog/lmregexp.so
    /usr/lib64/rsyslog/lmstrmsrv.so
    /usr/lib64/rsyslog/lmtcpclt.so
    /usr/lib64/rsyslog/lmtcpsrv.so
    /usr/lib64/rsyslog/lmzlibw.so
    /usr/lib64/rsyslog/mmanon.so
    /usr/lib64/rsyslog/mmcount.so
    /usr/lib64/rsyslog/omjournal.so
    /usr/lib64/rsyslog/ommail.so
    /usr/lib64/rsyslog/omprog.so
    /usr/lib64/rsyslog/omruleset.so
    /usr/lib64/rsyslog/omstdout.so
    /usr/lib64/rsyslog/omtesting.so
    /usr/lib64/rsyslog/omuxsock.so
    /usr/lib64/rsyslog/pmaixforwardedfrom.so
    /usr/lib64/rsyslog/pmcisconames.so
    /usr/lib64/rsyslog/pmlastmsg.so
    /usr/lib64/rsyslog/pmrfc3164sd.so
    /usr/lib64/rsyslog/pmsnare.so
    /usr/sbin/rsyslogd
    /usr/share/doc/rsyslog-7.4.7
    /usr/share/doc/rsyslog-7.4.7/AUTHORS
    /usr/share/doc/rsyslog-7.4.7/COPYING
    /usr/share/doc/rsyslog-7.4.7/COPYING.ASL20
    /usr/share/doc/rsyslog-7.4.7/COPYING.LESSER
    /usr/share/doc/rsyslog-7.4.7/ChangeLog
    /usr/share/man/man5/rsyslog.conf.5.gz
    /usr/share/man/man8/rsyslogd.8.gz
    /var/lib/rsyslog

    三。rsyslog作为日志服务器

    模拟环境

    node1(192.168.58.147)    日志接受服务器
    node2(192.168.58.149)    日志产生服务器 模拟将登陆149日志推送到node1日志服务器
    1》node1配置:

    编辑/etc/rsyslog.conf:(将下面两行的注释#去掉)

    # Provides UDP syslog reception
    $ModLoad imudp
    $UDPServerRun 514
    重启 rsyslog服务(检查514端口是否开始)
    [root@node1 rsyslog.d]# ^C
    [root@node1 rsyslog.d]# systemctl restart rsyslog
    [root@node1 rsyslog.d]# netstat -nlp | grep rsyslog
    udp        0      0 0.0.0.0:514             0.0.0.0:*                           2693/rsyslogd       
    udp6       0      0 :::514                  :::*                                2693/rsyslogd       
    关闭防火墙

    [root@node1 rsyslog.d]# chkconfig firewalld off;
    Note: Forwarding request to 'systemctl disable firewalld.service'.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
    [root@node1 rsyslog.d]# service firewalld stop
    Redirecting to /bin/systemctl stop  firewalld.service
    [root@node1 rsyslog.d]# iptables --flush
    关闭selinux(将配置文件 SELINUX=disabled 禁用)
    [root@node1 rsyslog.d]# find / -name selinux
    /etc/sysconfig/selinux
    /etc/selinux
    /usr/lib64/python2.7/site-packages/selinux
    /usr/share/selinux
    /usr/src/kernels/3.10.0-514.26.2.el7.x86_64/include/config/security/selinux
    /usr/src/kernels/3.10.0-514.26.2.el7.x86_64/scripts/selinux
    /usr/src/kernels/3.10.0-514.26.2.el7.x86_64/security/selinux
    [root@node1 rsyslog.d]# more /etc/sysconfig/selinux
    
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of three two values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected. 
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted 
    2》node2配置:
     关闭防火墙和selinux 同上

    修改 /etc/rsyslog.conf(原有基础上添加一行 输出到 @日志接受服务器 可以是ip也可以是主机名):

    # The authpriv file has restricted access.
    authpriv.*                                              /var/log/secure
    authpriv.*                                              @192.168.58.147
    重启日志服务
    systemctl restart rsyslog
    测试 在 147上 监控 /var/log/secure文件

    [root@node1 rsyslog.d]# tail -f /var/log/secure
    尝试在 149上 

    su - root
    
    147(node1)输出两条日志(明显node2就是149)

    Nov 21 19:09:23 node2 polkitd[954]: Unregistered Authentication Agent for unix-process:2683:339485 (system bus name :1.21, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
    Nov 21 19:10:14 node2 su: pam_unix(su-l:session): session opened for user root by root(uid=0)

    四。日志rotate

           系统的日志文件会随着使用天数和发生事件的增加在自动增长,对于服务器来说,如果没有一种机制限制这种增长,那么会有大部分的硬盘被消耗掉,linux系统设计了一种方式来解决这个问题:日志轮替。
     日志轮替就是使用一个程序名为/usr/sbin/logrotate程序根据配置文件的设定,使用同名的空的日志文件替换现有的日志文件,被替换掉的日志文件,被改名后放置或删除掉。
      logrotate本身于rsyslog无关 只是一种文件检测工具 通过cron定期检查文件的大小和创建时间 通过设置一些策略来清除或者备份日志 
    查看程序和相关文件

    [root@node1 ~]# rpm -qa | grep logr
    logrotate-3.8.6-6.el7.x86_64
    [root@node1 ~]# rpm -ql logrotate
    /etc/cron.daily/logrotate
    /etc/logrotate.conf
    /etc/logrotate.d
    /usr/sbin/logrotate
    /usr/share/doc/logrotate-3.8.6
    /usr/share/doc/logrotate-3.8.6/CHANGES
    /usr/share/doc/logrotate-3.8.6/COPYING
    /usr/share/man/man5/logrotate.conf.5.gz
    /usr/share/man/man8/logrotate.8.gz
    /var/lib/logrotate.status
    主配置文件/etc/logrotate.conf打开该配置文件解释:
    [root@node1 ~]# more /etc/logrotate.conf
    # 可以使用 man logrotate 查看该日志文件信息
    # 设置每周轮替一次日志  daily表示每天 hourly 每小时
    weekly
    
    # 备份的日志 保持4个轮替周期  比如上面设置的weekly 表示备份的日志保留4周 4周将删除  配置hourly 四个小时后删除
    rotate 4
    
    # 当旧的日志文件达到轮替的要求是 创建一个新的空的日志文件
    # create语法 create mode owner group 也就是 create 权限 文件拥有者 文件拥有组
    create
    
    # 使用日志作为轮替备份文件后缀
    dateext
    
    # 轮替后的日志文件是否被压缩 默认压缩格式gzip 
    # compresscmd指定压缩命令默认gzip  
    # uncompresscmd 表示解压缩的命令 默认是 gunzip
    #compress
    
    # 除了当前配置文件 还会加载该目录下的所有配置文件 该目录下有配置文件  该目录下的配置覆盖当前文件
    include /etc/logrotate.d
    
    # 指定/var/log/wtmp 这个日志文件的轮替规则
    /var/log/wtmp {
        monthly    #每月自动轮替
        create 0664 root utmp 
        minsize 1M #表示在轮替时间到达时 如果达到了最小size才发生轮替 比如 轮替时间时hourly 1个小时后 达到了1M就轮替 没达到就不轮替
        maxsize 10M #表示不管是否到达轮替时间 只要大小超过10M 就发生轮替
        rotate 1
    }
    
    /var/log/btmp {
        missingok  #如果日志文件不存在或者丢失 不报错  nomissingok是默认值 表示日志丢失 报错
        monthly
        create 0600 root utmp
        rotate 1
    }
    
    # 系统相关日志应该被配置在这里 应用相关日志应该被配置在/etc/logrotate.d下
    查看 /etc/logrotate.d 默认有一些轮替日志 比如httpd或者yum的
    [root@node1 ~]# cd /etc/logrotate.d
    [root@node1 logrotate.d]# ll
    total 32
    -rw-r--r--. 1 root root 178 Nov 23  2015 chrony
    -rw-r--r--  1 root root 194 Apr 12  2017 httpd
    -rw-r--r--  1 root root 893 Aug  4 11:28 mariadb
    -rw-r--r--. 1 root root 136 Jun  9  2014 ppp
    -rw-r--r--. 1 root root 224 Sep  7  2015 syslog
    -rw-r--r--. 1 root root 188 Mar 31  2016 vsftpd
    -rw-r--r--. 1 root root 100 Jun 15  2015 wpa_supplicant
    -rw-r--r--. 1 root root 100 Dec  3  2015 yum
    查看httpd的配置

    [root@node1 logrotate.d]# more httpd
    /var/log/httpd/*log {
        missingok
        notifempty  #如果到达轮替时间 日志文件是空 不轮替
        sharedscripts #prerotate 在日志文件被轮替之前执行的指定脚本  and postrotate 在日志文件被轮替之后指定执行的脚本 
                      配置了这两个参数只要 /var/log/httpd/*log log结尾的日志发生轮替 指定脚本都会运行 配置 sharedscripts
                      #只会在该日志组中某个文件第一次发生轮替时执行 而且仅仅只执行一次
        delaycompress #延迟压缩到下一个日志周期 可能在轮替时 程序还在继续写入到这个文件 可以稍微延迟
        postrotate  #发生轮替之后执行的脚本
            /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
        endscript   #所有定义脚本 比如postrotate之后都应该有一个endscipt表示结尾
    }


    自定义一个日志轮替配置文件 假设有个日志文件在 /var/log/mytest.log  配置文件 mytest 位于/etc/logrotate.d

    [root@node1 logrotate.d]# cd /etc/logrotate.d && cat << EOF > mytest
    > /var/log/mytest.log {
    >     hourly
    >     missingok
    >     compress
    >     minsize 1K
    >     maxsize 5K
    >     notifempty 
    >     rotate 5  
    > }
    > EOF
    [1] 4045
    [1]+  Done                    cd /etc/logrotate.d
    查看文件内容

    [root@node1 logrotate.d]# more mytest
    /var/log/mytest.log {
        hourly
        missingok
        compress
        minsize 1K
        maxsize 5K
        notifempty 
        rotate 5  
    }

    添加测试日志文件 添加一个随机大文件
    产生随机字符串的大文件 bs单次写入字节数 count写入次数  写入10M
    dd if=/dev/urandom of=/var/log/mytest.log count=1 bs=10485760
    如果想产生空的 
    dd if=/dev/zero of=my_new_file count=102400 bs=1024 
    重新加载配置文件
    logrotate  /etc/logrotate.conf
    如果你想强制轮替 可以使用
    logrotate -vf /etc/logrotate.conf

    等待一个一个小时之后  或者直接强制 logrotate -vf /etc/logrotate.conf 查看日志文件发现多了一个备份

    五。日志存储到数据库

    1》安装rsyslog-mysql记录日志到数据库

     有时日志文件需要存储在关系型数据 并且通过第三方软件进行日志 分析 可以使用 rsyslog的mysql模块

    查看所有模块中是否存在mysql 默认是没有

    [root@node1 logrotate.d]# rpm -ql rsyslog
    /etc/logrotate.d/syslog
    /etc/pki/rsyslog
    /etc/rsyslog.conf
    /etc/rsyslog.d
    /etc/sysconfig/rsyslog
    /usr/bin/rsyslog-recover-qi.pl
    /usr/lib/systemd/system/rsyslog.service
    /usr/lib64/rsyslog
    /usr/lib64/rsyslog/imdiag.so
    /usr/lib64/rsyslog/imfile.so
    /usr/lib64/rsyslog/imjournal.so
    /usr/lib64/rsyslog/imklog.so
    /usr/lib64/rsyslog/immark.so
    /usr/lib64/rsyslog/impstats.so
    /usr/lib64/rsyslog/imptcp.so
    /usr/lib64/rsyslog/imtcp.so
    /usr/lib64/rsyslog/imudp.so
    /usr/lib64/rsyslog/imuxsock.so
    /usr/lib64/rsyslog/lmnet.so
    /usr/lib64/rsyslog/lmnetstrms.so
    /usr/lib64/rsyslog/lmnsd_ptcp.so
    /usr/lib64/rsyslog/lmregexp.so
    /usr/lib64/rsyslog/lmstrmsrv.so
    /usr/lib64/rsyslog/lmtcpclt.so
    /usr/lib64/rsyslog/lmtcpsrv.so
    /usr/lib64/rsyslog/lmzlibw.so
    /usr/lib64/rsyslog/mmanon.so
    /usr/lib64/rsyslog/mmcount.so
    /usr/lib64/rsyslog/omjournal.so
    /usr/lib64/rsyslog/ommail.so
    /usr/lib64/rsyslog/omprog.so
    /usr/lib64/rsyslog/omruleset.so
    /usr/lib64/rsyslog/omstdout.so
    /usr/lib64/rsyslog/omtesting.so
    /usr/lib64/rsyslog/omuxsock.so
    /usr/lib64/rsyslog/pmaixforwardedfrom.so
    /usr/lib64/rsyslog/pmcisconames.so
    /usr/lib64/rsyslog/pmlastmsg.so
    /usr/lib64/rsyslog/pmrfc3164sd.so
    /usr/lib64/rsyslog/pmsnare.so
    安装rsyslog-mysql
    yum install rsyslog-mysql –y
    安装完成后查看
    [root@node1 logrotate.d]# rpm -ql rsyslog-mysql
    /usr/lib64/rsyslog/ommysql.so
    /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
    本机安装mariadb 
    yum -y install mariadb && service mariadb start
    前面安装rsyslog-mysql时 看到安装了一个 mysql-createDb.sql脚本 登录mysql执行该脚本
    查看该脚本
    [root@node1 logrotate.d]# more /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
    CREATE DATABASE Syslog;
    USE Syslog;
    CREATE TABLE SystemEvents
    (
            ID int unsigned not null auto_increment primary key,
            CustomerID bigint,
            ReceivedAt datetime NULL,
            DeviceReportedTime datetime NULL,
            Facility smallint NULL,
            Priority smallint NULL,
            FromHost varchar(60) NULL,
            Message text,
            NTSeverity int NULL,
            Importance int NULL,
            EventSource varchar(60),
            EventUser varchar(60) NULL,
            EventCategory int NULL,
            EventID int NULL,
            EventBinaryData text NULL,
            MaxAvailable int NULL,
            CurrUsage int NULL,
            MinUsage int NULL,
            MaxUsage int NULL,
            InfoUnitID int NULL ,
            SysLogTag varchar(60),
            EventLogType varchar(60),
            GenericFileName VarChar(60),
            SystemID int NULL
    );
    
    CREATE TABLE SystemEventsProperties
    (
            ID int unsigned not null auto_increment primary key,
            SystemEventID int NULL ,
            ParamName varchar(255) NULL ,
            ParamValue text NULL
    );
    导入该sql 

    [root@node1 logrotate.d]# mysql -uroot -proot
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 16
    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)]> source /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
    Query OK, 1 row affected (0.00 sec)
    
    Database changed
    Query OK, 0 rows affected (0.20 sec)
    
    Query OK, 0 rows affected (0.33 sec)
    
    MariaDB [Syslog]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | Syslog             |
    | db1                |
    | db2                |
    | db4                |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    8 rows in set (0.00 sec)
    
    MariaDB [Syslog]> use Syslog;
    Database changed
    MariaDB [Syslog]> show tables;
    +------------------------+
    | Tables_in_Syslog       |
    +------------------------+
    | SystemEvents           |
    | SystemEventsProperties |
    +------------------------+
    2 rows in set (0.00 sec)
    修改  /etc/rsyslog.conf

    MODULES部分修改

    $ModLoad ommysql 
    
    udp远程接受也开启
    $ModLoad imudp
    $UDPServerRun 514
    RULES部分添加
    #所有设备的所有日志级别 使用ommysql 接下来四个参数数 ip 数据库名 用户名和密码
    *.* :ommysql:localhost,Syslog,root,root
    重启 rsyslog
    service rsyslog restart
    尝试在 node1和node2上 
    su  - root切换登录  查看mysql数据库表
    MariaDB [Syslog]> select * from Syslog.SystemEvents;
    +----+------------+---------------------+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+---------------+--------------+-----------------+----------+
    | ID | CustomerID | ReceivedAt          | DeviceReportedTime  | Facility | Priority | FromHost | Message                                                                                                                                                                                           | NTSeverity | Importance | EventSource | EventUser | EventCategory | EventID | EventBinaryData | MaxAvailable | CurrUsage | MinUsage | MaxUsage | InfoUnitID | SysLogTag     | EventLogType | GenericFileName | SystemID |
    +----+------------+---------------------+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+---------------+--------------+-----------------+----------+
    |  1 |       NULL | 2017-11-22 04:52:30 | 2017-11-22 04:52:30 |        5 |        6 | node1    |  [origin software="rsyslogd" swVersion="8.24.0" x-pid="12601" x-info="http://www.rsyslog.com"] exiting on signal 15.                                                                              |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | rsyslogd:     | NULL         | NULL            |     NULL |
    |  3 |       NULL | 2017-11-22 04:52:30 | 2017-11-22 04:52:30 |        3 |        6 | node1    | Stopping System Logging Service...                                                                                                                                                                |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | systemd:      | NULL         | NULL            |     NULL |
    |  5 |       NULL | 2017-11-22 04:52:30 | 2017-11-22 04:52:30 |        3 |        6 | node1    | Starting System Logging Service...                                                                                                                                                                |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | systemd:      | NULL         | NULL            |     NULL |
    |  7 |       NULL | 2017-11-22 04:52:30 | 2017-11-22 04:52:30 |        5 |        6 | node1    |  [origin software="rsyslogd" swVersion="8.24.0" x-pid="13158" x-info="http://www.rsyslog.com"] start                                                                                              |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | rsyslogd:     | NULL         | NULL            |     NULL |
    |  9 |       NULL | 2017-11-22 04:52:30 | 2017-11-22 04:52:30 |       10 |        5 | node1    | Unregistered Authentication Agent for unix-process:13142:3838239 (system bus name :1.96, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus) |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | polkitd[992]: | NULL         | NULL            |     NULL |
    | 11 |       NULL | 2017-11-22 04:52:30 | 2017-11-22 04:52:30 |        3 |        6 | node1    | Started System Logging Service.                                                                                                                                                                   |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | systemd:      | NULL         | NULL            |     NULL |
    | 13 |       NULL | 2017-11-22 04:52:47 | 2017-11-22 04:52:57 |       10 |        6 | node2    |  reverse mapping checking getaddrinfo for bogon [192.168.58.1] failed - POSSIBLE BREAK-IN ATTEMPT!                                                                                                |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | sshd[3947]:   | NULL         | NULL            |     NULL |
    | 15 |       NULL | 2017-11-22 04:52:47 | 2017-11-22 04:52:57 |       10 |        6 | node2    |  Accepted password for root from 192.168.58.1 port 49910 ssh2                                                                                                                                     |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | sshd[3947]:   | NULL         | NULL            |     NULL |
    | 17 |       NULL | 2017-11-22 04:52:47 | 2017-11-22 04:52:57 |       10 |        6 | node2    |  pam_unix(sshd:session): session opened for user root by (uid=0)                                                                                                                                  |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | sshd[3947]:   | NULL         | NULL            |     NULL |
    +----+------------+---------------------+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+---------------+--------------+-----------------+----------+
    9 rows in set (0.00 sec)
    node1和node2都存在登录日志 写入


    2》使用loganalyzer进行web日志监控


     loganalyzer是 一款用于监控 rsyslog日志的web管理工具  官网 http://loganalyzer.adiscon.com/ 所有版本的下载地址是:http://loganalyzer.adiscon.com/downloads/  找到最新版本 这里我用 3.6.6-v3版本 下载应用包
    解压 进入解压目录/src

     tar zxvf loganalyzer-3.6.6.tar.gz  &&  cd loganalyzer-3.6.6/src && ll
    可以看到该程序 使用 php编写 需要搭建php环境

    安装httpd

    yum -y install httpd
    
    安装php
    yum -y install php php_mysql
    运行httpd
    service httpd start
    httpd的应用默认安装在 /var/www/html下 该目录下创建一个 log目录 将 loganalyzer/src下所有文件拷贝到这个目录
    cp -r ~/loganalyzer-3.6.6/src/* /var/www/html/log/
    访问 http://192.168.58.147/log/ 提示出错 没有安装 点击here去安装

    点击后进入第一步 点击next

    进入该页面会提示错误 缺少config.php  权限要 666

    缺少这个文件就创建这个文件(/root/loganalyzer-3.6.6/contrib/configure.sh脚本下就是这两句 直接执行即可)
    [root@node1 log]# pwd
    /var/www/html/log
    [root@node1 log]# touch config.php
    [root@node1 log]# chmod 666 config.php
    recheck后 验证通过进入下一步 配置数据库的信息(Table prefix可以填也可以不填 图上没有 我实际是默认logcon_ 不动它)

    点击下一步 表示连接成功 创建一些表  如果这一部分空白 说明第三步到第四部连接不上数据库  后来我检查httpd日志
    /var/log/httpd/error_log看到这样一行
    [Wed Nov 22 06:25:16.513148 2017] [:error] [pid 13699] [client 192.168.58.1:33194] PHP Fatal error:  Call to undefined function mysql_connect() in /var/www/html/log/install.php on line 374, referer: http://192.168.58.147/log/install.php?step=3
    没有定义mysql_connect函数 可能是php-mysql没有安装  
    yum -y install php-mysql
    即可


    第五步检查 并创建表

    第六步 创建 loganalyzer的内部管理账号 


    第七步 配置日志的来源 这里我们选择mysql 将之前 rsyslog-mysql产生的日志数据库和表配置上

    第八步 点击finish 完成安装 进入主页面


    常用操作   可以搜索 可以点击日志查看详情 点击菜单栏第三个 Statistics 统计报表 会出现错误

    提示错误是:

    JpGraph Error: 25001 This PHP installation is not configured with the GD library
    安装php-gd
    
     yum -y install php-gd
    重启 httpd
    service httpd restart
    
    此时可以正常查看

    
    

    
    其他操作 就不演示了


    
                
    
  • 相关阅读:
    js内置date类
    获取下拉列表的value
    表单的隐藏与显示
    JavaScript
    CSS的相关属性
    CSS
    基于akka-http搭建restfull框架
    Netsharp配置文件
    nginx配置备忘
    docker安装radis
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331164.html
Copyright © 2020-2023  润新知