redis(logstash).conf内容 #服务端配置,logstash抓取redis数据,配置名自取
例一 #从redis读数据
input {
redis {
host => "127.0.0.1"
port => 6379
type => "redis-input"
data_type => "list"
key => "logstash:redis"
}
}
output { #输出到ela
stdout {}
elasticsearch {
cluster => "elasticsearch"
codec => "json"
protocol => "http"
}
}
例二 #从redis读数据
input {
redis {
host => '192.168.233.130'
data_type => 'list'
port => "6379"
key => 'logstash:redis'
type => 'redis-input'
}
}
output { #输出到ela
elasticsearch {
embedded => true
}
}
logstash-kibama 9292
logstash-redis 6379
logstash-elasticsearch 9200
kibana 5601
# vim redis(logstash).conf #日志收集端配置,logstash集被监听日志文件数据,配置名自取
input { #收集监控端日志文件
file {
type => "producer"
path => "/soft/apache.log"
}
file {
type => "php-log"
path => "/soft/php.log"
}
}
filter { # 日志内容里面只要有匹配 mysql或GET或error的内容就 会被过滤出来,发送到 logstash index
grep {
match => [ "@message", "mysql|GET|error" ]
}
}
output { #将收集的日志文件发送到redis
redis {
host => '192.168.233.130'
data_type => 'list'
key => 'logstash:redis'
}
}
测试程序发送数据 -> Redis消息队列 -> Logstash -> Elasticsearch集群
通过管线化的思路增加索引速度
为了解决Redis队列的瓶颈问题,使用多管线机制,来增加整个系统的吞吐量,为此,我们同时部署了多个Redis实例,和对应数量的Logstash实例:
测试程序发送数据 -> Redis消息队列1 ->Logstash1 -> Elasticsearch集群
测试程序发送数据 -> Redis消息队列2 ->Logstash2 -> Elasticsearch集群
测试程序发送数据 -> Redis消息队列3 ->Logstash3 -> Elasticsearch集群
...
采用管线机制的好处是,扩展性是显而易见的