利用Redis分布式收集日志
安装Redis
这个不用介绍了,本博客也有安装教程
Logstash中的redis
配置选项(部分)
data_type
可选项为:["list", "channel", "pattern_channel"]
list即为BLPOP模式,移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
channel为Subscribe订阅模式,用于订阅给定的一个或多个频道的信息。
pattern_channel为Psubscribe订阅模式,Redis Psubscribe 命令订阅一个或多个符合给定模式的频道。
每个模式以 * 作为匹配符,比如 it* 匹配所有以 it 开头的频道( it.news 、 it.blog 、 it.tweets 等等)。 news.* 匹配所有以 news. 开头的频道( news.it 、 news.global.today 等等).
key
Redis队列或订阅频道名字。
codec
默认为JSON
host
Redis服务IP,默认为127.0.0.1
port
Redis端口,默认为6379
Logstash中的elasticsearch
hosts
可以是一组elasticsearch服务,这里会自动负载。 ["127.0.0.1:9200","127.0.0.2:9200"] ["https://127.0.0.1:9200"]
index
elasticsearch索引。默认是按天索引,"logstash-%{+YYYY.MM.dd}"。
action
index, delete, create, update四种类型。默认为index.
idle_flush_timeedit
强制刷新时间,默认为1秒。不受flush_size数量限制。
flush_size
刷新阈值,默认是500。达到500条记录就刷新。
配置客户端收集器
#创建客户端配置
input {
file {
path => ["/opt/deploy/engine-distribute-test-split2/apache-tomcat-7.0.55/logs/engine.log"]
codec => json {
charset => "UTF-8"
}
}
}
output {
redis {
host => "172.16.3.145"
data_type => "list"
key => "logstash:redis"
}
}
nohup /opt/logstash/logstash/logstash-2.3.2/bin/logstash -f /opt/logstash/logstash/logstash-2.3.2/etc/client.conf &
配置服务端收集器
#ElasticSearch在本机
input {
redis {
host => "172.16.3.145"
data_type => "list"
key => "logstash:redis"
type => "redis-input"
}
}
output {
stdout {}
elasticsearch {
hosts => ["localhost:9200"]
}
}
#启动Index Server
nohup /opt/logstash/logstash/logstash-2.3.2/bin/logstash -f /opt/logstash/logstash/logstash-2.3.2/etc/indexServer.conf &
原文链接:使用ELK搭建实时日志分析系统(2),转载请注明来源!