日志介绍

    记录系统的历史事件:时间  地点   人物   事件

    记录日志要确保时间是准确的

 

系统日志服务

    事件记录格式:  日期时间   主机   进程[pid]: 事件内容 

    C/S架构:通过TCP或UDP协议的服务完成日志记录传送,将分布在不同主 机的日志实现集中管理 

    rsyslog特性:

      CentOS6和7

      多线程

      UDP, TCP, SSL, TLS, RELP

      MySQL, PGSQL, Oracle实现日志存储

     强大的过滤器,可实现过滤记录日志信息中任意部分

     自定义输出格式

   ELK: elasticsearch, logstash, kibana

      非关系型分布式数据库

      基于apache软件基金会jakarta项目组的项目lucene

      Elasticsearch是个开源分布式搜索引擎

      Logstash对日志进行收集、分析,并将其存储供以后使用

      kibana 可以提供的日志分析友好的 Web 界面 

 

  rsyslog介绍 

   facility:  设施,从功能或程序上对日志进行归类     

                auth, authpriv, cron, daemon,ftp,kern, lpr, mail, news, security(auth), user, uucp, local0-local7, syslog   

                local0-local7    是用来自定制日志保存的

   Priority : 优先级别  从低到高排序  

               debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)

   配置文件:由三部分组成 

           MODULES:                        相关模块配置 

           GLOBAL DIRECTIVES:    全局配置 

           RULES:                             日志记录相关的规则配置     

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

    authpriv.*                                                             /var/log/secure

 RULES配置格式: facility.priority;   facility.priority…     target 

   facility: 

           *: 所有的facility   

           facility1,facility2,facility3,...:指定的facility列表 

  priority: 

       *: 所有级别 

       none:没有级别,即不记录 

       PRIORITY:指定级别(含)以上的所有级别 

      =PRIORITY:仅记录指定级别的日志信息  

  target: 

        文件路径:通常在/var/log/,文件路径前的-表示异步写入             同步写入表示把日志立即写入磁盘       异步写入表示先把数据写入缓冲区然后再写入磁盘

        用户:将日志事件通知给指定的用户,* 表示登录的所有用户 

        日志服务器: @host,把日志送往至指定的远程服务器记录 

        管道: |  COMMAND,转发给其它命令处理 

   

启用网络日志服务

#### MODULES ####

   # Provides UDP syslog reception

   $ModLoad imudp

   $UDPServerRun 514

   local2.*      @192.168.30.1       @表示使用UDP协议   

   # Provides TCP syslog reception

   $ModLoad imtcp

   $InputTCPServerRun 514

 

   local2.*    @@192.168.30.1       @@表示使用TCP协议

 

其它日志

     /var/log/messages : 系统中大部分的信息

     /var/log/anaconda :     anaconda的日志

    日志管理   journalctl     journalctl一个命令,查看所有日志

 

rsyslog将日志记录于MySQL中 

[root@node7 ~]# yum install rsyslog-mysql
 [root@node7 ~]# rpm -ql rsyslog-mysql
  /usr/lib64/rsyslog/ommysql.so
  /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
 [root@node7 ~]# mysql
  mysql > /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

 MariaDB [Syslog]> grant all on Syslog.* to syslog@'192.168.231.%' identified by 'root';
MariaDB [Syslog]> flush privileges;

vi /etc/rsyslog.conf
$ModLoad ommysql
*.info;mail.none;authpriv.none;cron.none          :ommysql:192.168.231.7,Syslog,syslog,root
systemctl restart rsyslog

View Code