首页 > 系统服务 > 详细

【linux基础】24、rsyslog 日志系统

时间:2017-01-03 22:48:51      阅读:269      评论:0      收藏:0      [点我收藏+]

一、日志概述

1、rsyslog简介

   syslog是日志收集存储系统,负责记录遵守此服务的内核、程序的日志信息。可以理解为编年体的日志记录信息,一般记录为:“日期时间,主机,进程:事件”。syslog不仅可以记录本地的系统日志,也可以通过tcp, udp协议记录远程主机的程序日志信息。


syslog:系统日志,是一种服务,有两个进程

   syslogd:记录应用程序相关的日志

   klogd:记录相关的日志


rsyslog:是syslog的升级版,使用多线程并发记录本地或远程日志,支持存储日志信息在MySQL,PGSQL, Oracle等RDBMS中。同时拥有强大的过滤器功能,可以对日志中任意内容进行过滤。

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

     支持多线程

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

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

     支持自定义输出格式

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

     模块化

日志的记录格式:

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


2、rsyslog的一些概念 

   系统上的应用程序指定某一信道记录日志,信道默认已经设定了日志的记录级别,一旦应用程序产生了日志信息,通过该信道就会把日志文件记录在指定的本地文件、数据库或远程rsyslog服务器中。

当然应用程序输出的日志一般也会按照级别划分,比如sshd_conf中就定义了信道为authpriv,级别为info的日志输出: 
# Logging — SyslogFacility AUTHPRIV — #LogLevel INFO


3、rsyslog支持的facility与priority

facility:设施、信道

   从功能或程序上对日志进行分类,并由专门的工具负责记录其日志

常用的facility:
      lpr: 打印相关的日志
     auth: 认证相关的日志
     user: 用户相关的日志
     cron: 计划任务相关的日志
     kern: 内核相关的日志
     mail: 邮件相关的日志
     mark: 标记相关的日志
     news: 新闻相关的日志
     uucp: 文件copy相关的日志
   daemon: 系统服务相关的日志
  authpri: 授权相关的日志
 security: 安全相关的日志
   syslog: 由syslogd服务产生的日志信息,虽然服务名称改为rsyslogd,但是很多配置都还是沿用了syslogd的,这里并没有修改服务名
 local0-local7:自定义相关的日志信息(自定义时可以使用通配符)

priority:级别

debug:调式模式,只要输出信息都打印出来
info:正常的信息,不包括调试信息
notice:注意
warn(warning):警告 
err(error):错误,不处理还能继续运行
crit(critical):严重,不处理可能就挂了
alert:需要立即处理该问题,不处理可能引起严重后果
emerg(panic):内核崩溃,内核恐慌等严重的信息


二、rsyslog配置

1、程序环境

程序包:rsyslog

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

主程序:/usr/sbin/rsyslogd

模块路径:/lib64/rsyslog/

Unit File:/usr/lib/systemd/system/rsyslog.service


2、配置文件/etc/rsyslog.conf

由三部分组成,必须严格按照配置段位置添加配置

[12:58 root@centos6.8~]# grep "####" /etc/rsyslog.conf
#### MODULES ####
#### GLOBAL DIRECTIVES ####
#### RULES ####

MODULES:定义装载的模块,如接下来的使用mysql模块记录日志则需要在这里配置

GLOBAL DIRECTIVES:定义了全局的环境

RULES:定义了记录日志的设施以及等级等信息

  定义规则的格式为:

     facility.priority  Target


facility可以使用的通配符:

   *:所有
   ,:列表,如f1,f2,f3...
   !:取反         
        
priority可以使用的通配符:
   *:所有日志级别
 none:没有任何级别,也就是不记录日志信息
          
     
Target:目标,指日志保存的位置
    可以使用的有:
        文件,如/var/log/messages
      用户:* 表示当前登录系统的所有用户
      日志服务器:@SERAVER_IP
      管道:| COMMAND

例如:

mail.info /var/log/maillog 

       表示将mail产生的info日志级别以上的信息都记录在/var/log/maillog文件中

mail.=info  表示仅记录info级别日志

mail.!info  表示记录info以下级别的日志 

*.info     表示所有设施的info级别

mail,news.info  表示mail和news都使用info级别


3、日志收集、分析工具

分析单机产生的日志

  rsyslog产生的日志

     把日志记入(RMDB)mysql数据库

     使用loganalyzer分析

  httpd产生的日志

     使用webanalyzer或awstats


三、利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

1、loganalyzer简介

  LogAnalyzer是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案。

     LogAnalyzer 获取客户端日志会有两种保存模式:一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中,推荐使用后者。

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

官网:http://loganalyzer.adiscon.com/


2、安装lamp  

[root@Node4 ~]# yum install httpd mysql-server mysql php php-mysql -y
#启动并测试


3、解压loganalyzer

[root@Node4 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  loganalyzer-4.1.5.tar.gz
[root@Node4 ~]# tar xf loganalyzer-4.1.5.tar.gz 
[root@Node4 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  loganalyzer-4.1.5  loganalyzer-4.1.5.tar.gz
[root@Node4 ~]# cd loganalyzer-4.1.5
[root@Node4 loganalyzer-4.1.5]# ls
ChangeLog  contrib  COPYING  doc  INSTALL  src 
#src目录下存放的网页页面文件,contrib下存放的脚本文件,在数据库中生成相应的表

[root@Node4 loganalyzer-4.1.5]# ls contrib/
configure.sh  secure.sh
[root@Node4 loganalyzer-4.1.5]# cd src
[root@Node4 src]# ls
admin               convert.php  export.php   install.php          reports.php     userchange.php
asktheoracle.php    cron         favicon.ico  js                   search.php
BitstreamVeraFonts  css          images       lang                 statistics.php
chartgenerator.php  details.php  include      login.php            templates
classes             doc          index.php    reportgenerator.php  themes
[root@Node4 src]# mkdir -v /var/www/html/loganalyzer
mkdir: created directory `/var/www/html/loganalyzer‘
[root@Node4 src]# cp -a * /var/www/html/loganalyzer   
[root@Node4 src]# cp ../contrib/* /var/www/html/loganalyzer/
[root@Node4 src]# ls /var/www/html/loganalyzer/
admin               configure.sh  doc          index.php    reportgenerator.php  templates
asktheoracle.php    convert.php   export.php   install.php  reports.php          themes
BitstreamVeraFonts  cron          favicon.ico  js           search.php           userchange.php
chartgenerator.php  css           images       lang         secure.sh
classes             details.php   include      login.php    statistics.php

[root@Node4 src]# cd
[root@Node4 ~]# cd /var/www/html/       
[root@Node4 html]# ls -l
total 8
-rw-r--r--  1 root root  111 Jan  3 17:23 index.php
drwxr-xr-x 14 root root 4096 Jan  3 17:30 loganalyzer
[root@Node4 html]# chown -R apache. .
[root@Node4 html]# ls -l
total 8
-rw-r--r--  1 apache apache  111 Jan  3 17:23 index.php
drwxr-xr-x 14 apache apache 4096 Jan  3 17:30 loganalyzer
[root@Node4 html]# chmod u+x loganalyzer/*.sh




【linux基础】24、rsyslog 日志系统

原文:http://xiexiaojun.blog.51cto.com/2305291/1888667

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!