rsyslog的学习

rsyslog:
日志:历史日志
历史事件
时间,事件
日志级别:事件的关键性程度,loglevel

系统日志服务:
syslog:
syslogd:system
klogd:kernel,记录内核日志

 rsyslog:
   是一种日志服务
    多线程:
    支持udp,tcp,ssl,tls加密远程日志传输
    支持在MYSQL,PGSQL,Oralce中实现日志存储
    强大的过滤器,可实现过滤日志信息中任何部分
    自定义输出格式

    elasticsearch,logstash,kibana=elk

日志收集方:
  facility:设施,从功能或程序上对日志进行分类,共14个(不算*).
        auth :     认证相关的
        authpri :   权限,授权相关
        cron :      任务计划相关
        daemon:   守护进程相关
        kern :      内核相关的
        lpr :       打印相关的
        mail :      邮件相关的
        mark :     标记相关的
        news :     新闻相关的
        security :   安全相关的,和auth类似
        syslog :     日志自己的
        user :      用户相关的
        uucp :     Unix to unix cp相关的  
        local0到local7 :  用户自己定义的
        * :        所有的facility

  priority:loglevel,共十个级别
        Debug :      程序或信息的调试信息.
        Info :        一般信息.
        Notice :      不影响正常功能,需要注意的消息.
        Warning/warn :     可能会影响系统功能,需要提醒用户注意的重要事件.  
        Err/error :     错误信息.
        Crit(critical) :         比较严重的.
        Alert :        必须马上处理的.
        Emerg/panic :  会导致系统不可用.
        * :           显示所有的系统信息.
        None :        与*相反,表示什么都没有.

  指定级别:
        *:所有级别
        none:禁止记录
        priority:记录包含此级别及更高级别的日志级别
        =priority:记录此级别
    文件:
      /etc/rsyslog.conf
      /etc/rsyslog.d/*.conf
      /etc/logrotate.d/syslog
      /lib64/rsyslog/*.so
        其中i开头的是输入,o开头的是输出

  facility.priority /var/log/messages

程序环境:
主程序:rsyslogd
配置文件:/etc/rsyslog.conf
服务脚本:/etc/rc.d/init.d/rsyslog
配置文件:
由MODULES,GLOBAL DIRECTIVES,RULES组成
MODULES部分:加载模块
$ModLoad imuxsock :为本地系统日志记录提供支持
$ModLoad imklog :提供内核日志支持(以前由rklogd完成)
以前由rsyslogd和klogd提供的功能现在由两个模块提供
$ModLoad imtcp :提供tcp为别的主机提供日志记录
$InputTCPServerRun 514:监听514端口
$ModLoad imudp:udp方式
$UDPServerRun 514
RULES(规则)部分:
facility.priority target
例:
.info;mail.none;authpriv.none;cron.none /var/log/messages:除了mail,authpriv,cron之外都记录到messages中
authpriv.
/var/log/secure:authpriv的所有信息都记录到secure中
mail. -/var/log/maillog:-代表异步写入
target:
文件路径:记录于指定的日志文件中,通常应该在/var/log目录下,"-"代表异步写入
用户:将日志通知给指定用户
:所有用户br/>日志服务器:@host
host:必须监听在tcp或udp协议的514端口上提供服务
管道: |COMMAND
文件记录的日志格式:
日志产生的日期时间 主机 进程(pid): 事件内容
有些日志记录二进制格式:/var/log/wtmp,/var/log/btmp
/var/log/wtmp:当前系统上成功登录的日志
last命令查看
/var/log/btmp:当前系统上失败的登录尝试
lastb命令查看
lastlog命令:
查看当前系统上每一个用户最后的登录时间

搭建rsyslog日志服务器:
redhat6作为日志服务器
centos7作为日志发送机

  1. 在redhat6上修改配置文件,将下列选项注释去掉
    $ModLoad imtcp :提供tcp为别的主机提供日志记录
    $InputTCPServerRun 514:监听514端口
    $ModLoad imudp:udp方式
    $UDPServerRun 514
  2. 在centos7上修改配置文件
    *.info;mail.none;authpriv.none;cron.none @192.168.137.143

将日志信息存储到mysql中
redhat6作为服务器
centos7作为mysql服务器
1.安装rsyslog-mysql
yum install rsyslog-mysql
安装生成下列文件
/lib64/rsyslog/ommysql.so:输出到mysql的模块
/usr/share/doc/rsyslog-mysql-5.8.10
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql:mysql执行脚本文件
2.在centos7上安装mariadb(默认已安装)
创建一个数据库(可以使用/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql)
创建一个用户并授权
grant all on Syslog.* to 'syslog'@'192.168.137.143' identified by 'syspass';
然后打开/etc/my.cnf
加入:skip_name_resolve = no:关闭名称反解
innodb_file_per_table = no:支持innodb表共享数据空间
重启服务器

  1. 将redhat6上的/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql导入centos7的mariadb
    mysql -usyslog -h192.168.137.139 -psyspass </usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
  2. 修改redhat6上的rsyslog.conf
    加入$ModLoad ommysql
    加入*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.137.139,Syslog,syslog,syspass
    格式: --> :模块名:mysql主机,表名,用户名,密码
  3. 安装 LogAnalyzer
    tar -xvf loganalyzer-3.6.5.tar.gz
    cd loganalyzer-3.6.5
    mv src/* /var/www/html:只使用到这个目录中的文件.
    mv contrib/configure.sh /var/www/html
    mv contrib/secure.sh /var/www/html
    cd /var/www/html
    ./configure.sh
    chmod 666 config.php
    ./secure.sh
  4. 用浏览器进入web界面进行配置

猜你喜欢

转载自blog.51cto.com/12814448/2122163