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 #一个古老的协议
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@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", "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 接收:这里只是演示,到后期再演示全部:
一下是生成数据: