rsyslog日志系统

一、前言

 什么是日志?

   日志就是历史事件,按时间序列将发生的事件予以记录;日志记录信息记录的是事件的发生时间以及事件内容

 Linux下记录日志的系统:

   syslog:是CentOS 5.0系统上使用的日志系统,有两类日志,分别是syslogd、klogd;

      syslogd:记录系统进程相关的日志

      klogd:记录内核相关的日志

  

   rsyslog:是CentOS 6.0系统使用的日志系统,与syslog日志系统相比,具有以下优点:

      ①支持多线程

      ②支持TCP、SSL、TLS、RELP等协议

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

      ④支持自定义输出格式

      ⑤适用于企业级别日志记录需求

      ⑥模块化

二、rsyslog日志系统配置

1、配置文件,以及配置文件的定义格式

/etc/rsyslog.conf  \\配置文件
日志定义格式: facility.priority    Target
    facility: 设施,从功能或程序上对日志进行分类,并由专门的工具负责记录日志;
      常用的facility:
              lpr: 打印相关的日志
              auth:认证相关的日志
              user:用户相关的日志
              cron:计划任务相关的日志
              kern:内核相关的日志
              mail:邮件相关的日志
              mark:标记相关的日志
              news:新闻相关的日志
              uucp:文件copy相关的日志
           daemon:系统服务相关的日志
           authpri: 授权相关的日志
           security:安全相关的日志
           local0-local7:自定义相关的日志信息(自定义时可以使用通配符)
                通配符:
                   *:所有
                   f1,f2,f3......:列表
                   !:取反
               
      priority:日志级别
        常用的日志级别:
          debug:   调试
          info:   消息
          notice: 注意
        warn,warning: 警告
          err,error: 错误
          crit: 严重级别
          alert: 需要立即修改该的信息
          emerg,panic: 内核崩溃,内核恐慌等严重的信息
          
          通配符:
             *:所有日志级别
             none:没有任何级别,也就是不记录日志信息
            
     
       Target:文件路径
            可以使用的有:
                ①/var/log/messages
                ②用户:*当前登录系统的所有用户
                ③日志服务器:@SERAVER_IP
                ④管道:| COMMAND
         
举例:
mail.info  /var/log/maillog:  比指定级别更高的日志级别,包括指定级别自身,保存到/var/log/maillog中
mail.=info  /var/log/maillog: 明确指定日志级别为info,保存至/var/log/maillog
mail.!info  /var/log/maillog: 除了指定的日志级别(info)所有日志级别信息,保存至/var/log/maillog
*.info      /var/log/maillog: 所有facility的info级别,保存至/var/log/maillog
mail.*     /var/log/maillog:  mail的所有日志级别信息,都保存至/var/log/maillog
mail.notice;news.info  /var/log/maillog: mail的notice以上记得日志级别和news的info以上的级别保存至/var/log/maillog
mail,news.crit  -/var/log/maillog:  mail和news的crit以上的日志级别保存/var/log/maillog中;“-”代表异步模式

 

 日志信息格式: 时间    主机   进程(pid)   事件

1.png

    

2、启用日志服务器功能,接收其他服务的日志

  ①编辑/etc/rsyslog.conf,修改以下信息

   2.png

 ②重启rsyslog服务,查看监听端口  3.png

③在另一台测试机中编辑/etc/rsyslog.conf,将日志信息发送到此服务器,重启rsyslog服务

  4.png

 

④在测试机中安装vsftpd,安装完成后再rsyslog服务器中查看日志

   5.png

 ⑤至此rsyslog日志服务器已经可以正常工作了

3、配置将日志信息存储到数据库

  ①安装数据库,启动数据库

# yum -y install mysql-server
#  service  mysqld  start

  ②安装rsyslog-mysql驱动

# yum -y install rsyslog-mysql

 ③查看rsyslog-msyql生成的文件

# rpm -ql rsyslog-mysql
/lib64/rsyslog/ommysql.so \\rsyslog连接mysql的驱动模块
/usr/share/doc/rsyslog-mysql-5.8.10 \\ rsyslog的文档
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql  \\rsyslog的数据库以及表的各项定义,直接导入数据即可使用

 ④将生成的createDB.sql导入mysql数据库

# mysql -uroot -p </usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
Syslog  \\生成的数据库名称
 SystemEvents  \\存放日志文件的数据库表
 SystemEventsProperties \\ 生成的日志数据库表

 ⑤授权rsyslog用户对到导入的数据库有所有权限

mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'syslogpass'; \\用户授权
mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'syslogpass';\\用户授权
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;   \\进行权限刷新
Query OK, 0 rows affected (0.00 sec)

 ⑥编辑/etc/rsyslog.conf配置文件,加载ommysql模块,定义将日志信息存储到mysql数据库

#### MODULES ####
$ModLoad ommysql

#### RULES ####
*.info;mail.none;authpriv.none;cron.none   :ommysql:127.0.0.1,Syslog,rsyslog,syslogpass
                       :模块驱动:数据库地址,数据库名称,数据用户,用户密码

 ⑦重启rsyslog服务

# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

 ⑧在本机上安装vsftpd,在mysql中查看日志信息

# yum -y install vsftpd   \\安装vsftpd服务
# mysql -uroot -p  \\进入数据库
Enter password:    \\数据密码,默认root用户的密码为空

mysql> SELECT * FROM Syslog.SystemEvents\G;  查看日志命令,输出信息如下:

 *************************** 4. row ***************************
                ID: 4
        CustomerID: NULL
        ReceivedAt: 2014-12-16 11:51:42
DeviceReportedTime: 2014-12-16 11:51:42
          Facility: 1
          Priority: 6
          FromHost: localhost
           Message:  Installed: vsftpd-2.2.2-13.el6_6.1.x86_64
        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[2605]:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
4 rows in set (0.00 sec)

 ⑨到此为止,日志信息已经成功的存储于数据库中,可以便捷的查询相关的日志信息啦

  

4、配置loganalyzer日志分析工具,便于日常维护

 ①安装LAMP平台

 # yum -y install httpd php php-mysql   \\数据库已安装,现在只安装httpd,php即可

 ②启动相关的服务,测试LAMP是否可以正常提供服务

# service httpd start  \\启动httpd服务

 ③测试web服务正常访问6.png

  ④配置loganalyzer

 # tar xf loganalyzer-3.6.5.tar.gz   \\解压loganalyzer到当前目录
 # mkdir /var/www/html/log\\在httpd的DocumentRoot目录中创建log目录,用于存储loganalyzer相关页面
 # cp -r  loganalyzer-3.6.5/src/* /var/www/html/log \\复制loganalyzer目录中的src目录中的所有文件到刚刚创建的/var/www/html/log目录中
 # cp loganalyzer-3.6.5/contrib/* /var/www/html/log \\复制loganalyzer目录中的contrib目录中的脚本文件到刚刚创建的/var/html/www/log目中中
 # cd /var/www/html/log   \\cd 到/var/www/html/log目录中
 # chmod +x configure.sh secure.sh   \\给刚刚复制过来的脚本添加执行权限
 # ./configure.sh   \\执行脚本
 # ./secure.sh      \\执行脚本
 # chown -R apache.apache . \\更改当前目录的属主属组为apache,使用rpm安装的httpd,默认用户是apache
 # chmod 666 config.php  \\ 设置config.php配置文件具有写权限

上述配置完成后,访问http://192.168.10.120/log便可以进行相关的配置

  7.png  8.png

9.png

10.png

11.png

12.png

13.png

可能会遇到的问题 

 1、如果安装完成后提示连接不到数据库,则将第五步中的127.0.0.1改为localhost便可以解决问题

 2、使用中出现以下问题 14.png

# yum -y install php-gd  \\安装php-gd
# service httpd restart  \\重启httpd服务

 刷新页面,便可以恢复正常访问

15.png77

原创文章,作者:马行空,如若转载,请注明出处:http://www.178linux.com/5257

(2)
马行空马行空
上一篇 2015-06-15
下一篇 2015-06-15

相关推荐

  • proxy_pass转发路径

    一、引言 在nginx中配置proxy_pass时,proxy_pass后面的路径最后面加“/”和不加“/”会有所区别。加“/”时,nginx不会代理location部分,不加“/”时,nginx会同时代理location部分。下面通过实验来证明。 二、实验 实验环境简要说明:     node1为httpd服务器(1…

    Linux干货 2017-01-12
  • iptables/netfilter基于layer7实现应用层过滤

    前言 做为网络管理员,对P2P、QQ、酷狗等软件是又爱又恨,大多数公司为了提高工作效率,禁止公司员工登陆QQ、看视频等,在市场上买专门的上网行为管理设备,随便一种都是价格不菲,而使用linux来做网关一样可以禁止qq、酷狗等软件,为实现此功能就需要为iptables/netfilter添加layer7模块,而iptables/netfilter是基于内核的,…

    Linux干货 2015-04-27
  • 制作本地yum源与编译安装http

    1、制作本地yum源(centos7) [root@centos7 ~]# yum install -y lftp   #安装lftp程序 lftp 10.1.0.1:~> cd pub/Sources/sources/xen/ &n…

    Linux干货 2016-08-25
  • Kickstart+PXE自动部署

    Kickstart+PXE自动部署 无人值守安装简介 无人值守安装(Unattended Setup)指软件安装时无需任何用户干预,直接按默认或通过应答文件设置安装,这对于无特殊需求的用户或企业大批量部署安装操作系统及软件时非常方便。无人值守安装也称为静默安装,在安装过程中可以静默安装好预先设计集成的一些常用软件,安装结束以后软件就已经可以使用,很多软件都支…

    Linux干货 2016-09-17
  • Linux 文本处理,文本工具,查看,分析,统计文本文件,grep,正则表达式

    文本处理 各种文本工具,查看,分析,统计文本文件 grep 正则表达式 扩展正则表达式 sed cat -n f1 加行号(空格行都计算) cat -b f1 加行号(只计算有字符的行) cat -ns f1 加行号(压缩空行) cat -v f1 能看windows文件的M`符号 cat -T f1 能够显示里面的tab空位,显示为^I cat -A f1…

    Linux干货 2016-08-07