美文网首页日志处理
Linux之Rsyslog服务

Linux之Rsyslog服务

作者: 魏镇坪 | 来源:发表于2016-03-07 13:44 被阅读1299次

    Rsyslog服务简介

    Rsyslog是syslog的升级版本, 其在RHEL5的版本中, 名称为syslog.在RHEL6/7其升级为Rsyslog. Rsyslog是一个日志管理系统,记录过去某个时间发生的事件,及事件级别进行定义并记录到指定位置. 其支持C/S架构,可通过UDP/TCP协议提供日志记录服务.Rsyslog日志格式较为简单.

    Rsyslog的服务进程

    • syslogd : 系统日志(用户空间的各应用程序相关的日志)
    • Klogd : 内核日志(kernel相关的日志),在RHEL6中, Klogd由syslog代为管理.

    Rsyslog的特性:

    • 多线程的服务,并发性能好
    • 可以使用udp,tcp,ssl,tls,relp等协议完成信息收集
    • 将日志可存储在mysql,pgsql,oracle等数据库管理系统中
    • 强大的自定义过滤器,实现过滤日志信息中任何部分内容
    • 自定义输出格式

    Rsyslog的相关文件

    • /etc/rsyslog.conf : 主配置文件
    • /etc/rsyslog.d/*.conf : 辅助配置文件
    • /lib64/rsyslog/*.so : rsyslog的功能扩展模块位置,I开始的文件表示,从那收集, O开始的文件表示,将日志记录到那

    Rsyslog的重要术语

    • facility(产生日志的设施,从功能和程序上对日志收集进行分类)
      • auth : 身份认证
      • aupriv : 授权
      • cron : 计划任务
      • daemon
      • kern : 内核
      • lpr : 打印
      • mail : 邮件
      • mark : 防火墙
      • news : 新闻
      • security : 安全
      • user : 用户
      • uucp
      • syslog : 系统日志
      • local0-local7 : 用户自定义级别
    • priority (日志级别)
      • debug : 调度信息

      • info : 基本信息

      • notice : 提醒

      • warn : warning, 警告

      • err : critical, 危险的

      • alert : 橙色警告

      • emerg : 红色警告

      • 指定级别:

        • * : 所有级别
        • none : 没有级别,不记录
        • PRIORITY : 此级别以及高于此级别的所有级别
        • =PRIORITY : 仅此级别

    /etc/rsyslog.conf的组成部分

    • 加载的模块

      • $ModLoad ommysql
    • 全局配置指令

    • 日志记录规则

      • facility.priority target
      ####记录系统所有的info及以上的日志,但不包含mail,authpriv,cron的日志
      *.info;mail.none;authpriv.none;cron.none /var/log/message 
      
      ####记录任务计划的所有日志
      cron.* /var/log/cron
      
      ####记录所有的emerg级别日志,通过模块输出给所有用户一则消息
      *.emerg :omusrmsg:* 
      
      ####将指定的日志发送给指定的日志服务器
      cron.*      @172.16.36.70
      
      • target
        • 文件: 记录日志事件于指定的文件中,通常应用位于/var/log目录下,文件路径之前的"-"表示异步写入
        • 用户: 将日志事件通知给指定的用户, 是通过将信息发送给登陆到系统上的用户的终端上
        • 日志服务器: 使用@host,把日志送往指定的服务器主机
          • Host : 即日志服务器地址,监听在tcp/udp的514端口
        • 管道: |COMMAND
    注意: 在日志文件中, 填写的指令必须在相应的段出来,例如:不能将加载的模块配置信息填写到rules(日志记录规则)处
    

    /etc/rsyslog.conf的日志的配置格式

    事件产生的时间及日期  主机      进程[PID]:事件信息本身
    
    

    利用rsyslog服务输出到数据库中,并且由loganalyzer展示

    • 安装rsyslog连接数据库的驱动

      • yum install rsyslog-mysql : 生成ommysql.so模块,和createdb.sql数据脚本(用于创建所需的数据库)
    • 连接数据库,并且为此创建用户及建立所需数据库

      • mysql < /usr/share/doc/rsyslog-mysql-7.4.7/createdb.sql
      • source /usr/share/doc/rsyslog-mysql-7.4.7/createdb.sql (两个方法使用其中一个即可)
    • 配置rsyslog.conf文件

      • 模块位置定义
        • $ModLoad ommysql
      • rules定义位置
        • cron.* :ommysql:172.16.36.70,DATABASE,USER,PASSWORD
    • 重启rsyslog服务

    • 安装loganalyzer

      • 准备lamp环境

        • yum install httpd php php-mysql php-gd
      • 下载loganalyzer软件包

        • tar xf loganalyer-3.6.5.tar.gz
        • cp -r loganalyer-3.6.5.tar.gz/src/var/www/html/loganalyzer
        • cp -r loganalyzer-3.6.5/contrib/*sh /var/www/html/loganalyzer
        • cd /var/www/html/loganalyzer/
        • chmod +x *.sh
        • ./configure.sh
        • ./secure.sh
        • chmod 666 config.php
      • 通过URL访问并配置

    last命令

    查看当前系统成功登录系统的日志,日志位置/var/log/wtmp

    lastb命令

    当前系统尝试登录失败的日志,日志位置/var/log/btmp

    dmesg

    内核完成自身初始化过程中, 探测的各种硬件的日志信息,日志位置/var/logdmesg.

    lastlog

    显示当前系统上所有用户的最近一次登陆时间

    Linux强大的日志收集及展示平台

    • elk stack : elasticsearch ,强大的分布式日志收集引擎
    • logstash : 从各主机收集日志, 导入elk stack的工具
    • kibana : 极为美观的展示日志结果的界面工具

    相关文章

      网友评论

        本文标题:Linux之Rsyslog服务

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