ELKStack-使用消息队列扩展(十)

ELKStack-使用消息队列扩展

官方文档:https://www.elastic.co/guide/en/logstash/5.x/deploying-and-scaling.html

流程图

ELKStack-使用消息队列扩展(十)

流程:数据源 --> logstash(input收集、output消息队列) -->  MQ  -->  logstash (input收集消息队列、filter过滤、output ES) --> ES

使用这个流程,主要是基于性能考虑,第一层logstash主要做原始数据收集,不对数据进行处理,提高对数据源的收集性能。同时部署第一层logstash需要放在生产环境的服务器上,做为agent端,这样使用也是基于尽量少消耗服务器性能的考量。

本章使用redis做消息队列

yum install -y redis

配置/etc/redis.conf

daemonize yes
bind 192.168.137.11

启动 systemctl start redis

logstash output redis使用

官方文档:https://www.elastic.co/guide/en/logstash/5.x/plugins-outputs-redis.html

1、标准输入、redis输出

input {
stdin {}
} filter {
} output{
redis {
host => ["192.168.137.11"]
port => 6379
db => 1
data_type => "list"
key => "demo"
timeout => 10
}
}

启动/opt/logstash/bin/logstash -f /etc/logstash/conf.d/redis.conf

ELKStack-使用消息队列扩展(十)

ELKStack-使用消息队列扩展(十)

ELKStack-使用消息队列扩展(十)

2、apache日志输入,redis输出

input {
file {
path => "/etc/httpd/logs/access_log"
start_position => "beginning"
}
} filter {
} output{
redis {
host => ["192.168.137.11"]
port => 6379
db => 1
data_type => "list"
key => "apache"
timeout => 10
}
}

启动/opt/logstash/bin/logstash -f /etc/logstash/conf.d/apache.conf

ELKStack-使用消息队列扩展(十)

logstash input redis使用

官方文档:https://www.elastic.co/guide/en/logstash/5.x/plugins-inputs-redis.html

1、redis输入、标准输出

input{
redis {
host => ["192.168.137.11"]
port => 6379
db => 1
data_type => "list"
key => "apache"
timeout => 10
}
} filter {
} output{
stdout{
codec => rubydebug
}
}

启动/opt/logstash/bin/logstash -f /etc/logstash/conf.d/indexer.conf

ELKStack-使用消息队列扩展(十)

2、redis输入、grok过滤、标准输出

input{
redis {
host => ["192.168.137.11"]
port => 6379
db => 1
data_type => "list"
key => "apache"
timeout => 10
}
} filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
} output{
stdout{
codec => rubydebug
}
}

启动/opt/logstash/bin/logstash -f /etc/logstash/conf.d/indexer.conf

ELKStack-使用消息队列扩展(十)

3、redis输入、grok过滤、ES输出

input{
redis {
host => ["192.168.137.11"]
port => 6379
db => 1
data_type => "list"
key => "apache"
timeout => 10
}
} filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
} output{
elasticsearch {
hosts => ["192.168.137.11:9200"]
index => "apache-accesslog-%{+YYYY.MM.dd}"
}
}

启动/opt/logstash/bin/logstash -f /etc/logstash/conf.d/indexer.conf

ELKStack-使用消息队列扩展(十)

流程总结图:

ELKStack-使用消息队列扩展(十)

上一篇:JSP学习——原理


下一篇:Redis 5.0.7 讲解,单机、集群模式搭建