您现在的位置是:首页 > 文章详情

Rsyslog日志采集

日期:2018-11-29点击:689

文章整理自《日志分析之 ELK stack 实战》课程学习笔记

Rsyslog是CentOS6.X自带的一款系统日志工具:

1.支持多线程

2.支持TCP,SSL,TLS,RELP等协议

3.支持将日志写入MySQL, PGSQL, Oracle等多种关系型数据中

4.拥有强大的过滤器,可实现过滤系统信息中的任意部分

5.可以自定义日志输出格式

 

配置文件相关:

[root@monitor elasticsearch-head]# cat /etc/rsyslog.conf

*.info;mail.none;authpriv.none;cron.none /var/log/messages #定义各类型日志存放位置

cron.*                     /var/log/cron  ##具体日志存放的位置

几种文件说明:

auth                   #认证日志

authpriv             #认证授权认证

cron                   #任务计划相关日志

kern                    #内核相关日志

lpr                     #打印

mail                    #邮件日志

mark(syslog)        #rsyslog服务内部的信息,时间标识

news                    #新闻组

user                    #用户程序产生的相关信息

uucp                    #一个古老的协议

local 0~7            #用户自定义

 

##日志可以生成文件形式,或者直接打入到网络端比如:

.*                   8421     ##把日志打入到远端的8421端口。

 

日志级别:

rsyslog共有7种日志级别,数字代号从 0~7。具体的意义如下所示:

0 debug        –有调式信息的,日志信息最多

1 info         一般信息的日志,最常用

2 notice      最具有重要性的普通条件的信息

3 warning     警告级别

4 err         错误级别,阻止某个功能或者模块不能正常工作的信息

5 crit        严重级别,阻止整个系统或者整个软件不能正常工作的信息

6 alert       需要立刻修改的信息

7 emerg    内核崩溃等严重信息



日志配置文件 “/etc/rsyslog.conf”中,可指定warning级别(log level 为 4级)的存储文件为“/var/log/warning_Log”,具体的设置为:

*.warning    /var/log/warning_Log

然后,重启rsyslog:

service rsyslog restart

 

 

1、 修改配置文件,把生成的日志导入远端端口:

[root@monitor elasticsearch-head]# vim /etc/rsyslog.conf

*.* @@localhost:8421

##重启rsyslog

2、 编写logstash配置文件:

[root@monitor etc]# cat rsyslog.conf

input {

    tcp {

    port => "8421"

    type => "rsyslog"

   }

}

filter {

  if [type] == "rsyslog" {

    grok {

      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }

      add_field => [ "received_at", "%{@timestamp}" ]

      add_field => [ "received_from", "%{host}" ]

    }

    date {

      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]

    }

  }

}

output{

    if [type] == "rsyslog"{

       stdout{codec=>rubydebug}

       elasticsearch {

       action => "index"

       hosts  => "192.168.10.100:9200"

       index  => "logstash-%{type}-%{+yyyy.MM.dd}"

   }

 }

}

3、 检测logstash 配置文件:

[root@monitor logstash-5.1.1]# bin/logstash -f etc/rsyslog.conf -t

Sending Logstash's logs to /var/logstash-5.1.1/logs which is now configured via log4j2.properties

Configuration OK

 

4、 启动es,启动logstash ,然后就能在es里面采集到数据。当然一般可以先把数据打入到redis,然后再从redis用logstash 接收:这里只是演示,到后期再演示全部:

 

一下是生成数据:

face/DsNGp8F83wxcCY4FMJHeaPXAnx6bSBRF.png

原文链接:https://blog.roncoo.com/article/127291
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章