Rsyslog是CentOS6.X自带的一款系统日志工具:
1.支持多线程
2.支持TCP,SSL,TLS,RELP等协议
3.支持将日志写入MySQL,PGSQL,Oracle等多种关系型数据中
4.拥有强大的过滤器,可实现过滤系统信息中的任意部分
5.可以自定义日志输出格式
配置文件相关:
[root@monitorelasticsearch-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#一个古老的协议
local0~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@monitorelasticsearch-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", "MMMd 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接收:这里只是演示,到后期再演示全部:
一下是生成数据:
本文转自:http://www.roncoo.com/article/detail/127291