ELK详解(十五)——ELK+Redis配置实战

今天继续给大家介绍Linux运维相关知识,本文主要内容是ELK搭配Redis做消息队列。

一、架构概述

在ELK详解(一)——ELK基本原理一文中,我们曾经介绍过ELK的如下架构:
ELK详解(十五)——ELK+Redis配置实战_第1张图片
在之前的配置中,我们的Logstash与Elasticsearch设备之间相连,数据直接传送。但是,如果Elasticsearch设备链接的Logstash终端数量过多,则给Elasticsearch造成的压力就会很大,基于这种现状,我们使用一台设备,安装Redis,作为ELK架构的消息队列。收集各Logstash终端的日志信息,然后将日志信息传输给Elasticsearch,以减轻ELasticsearch设备的压力。
在本次实战中,我们的设备及安装服务说明如下:
设备一:192.168.136.101 Elasticsearch(包含Head插件)+Redis+Logstash
设备二:192.168.136.13 Elasticsearch+Redis
下面,我们就来实现ELK+Redis的配置实战。在设备二上收集日志信息,然后将其传送到设备一的Redis中,然后再由设备一实现将Redis中的数据取出,然后将其输出到Elasticsearch集群中。
注意,在此实战中,理论上应该有三台设备,Redis应该作为单独的设备,但是由于个人电脑硬件配置有限,因此暂时只能上述架构代替,但是其基本原理是一致的。

二、将日志信息写入Redis

首先,我们来实现将日志信息写入Redis。
在设备二上,写Logstash配置文件内容如下所示:

input{
        file{
                path=>"/var/log/messages"
                type=>"to-redis"
                start_position=>"beginning"
                stat_interval=>"5"
        }
}
output{
        redis{
                data_type=>"list"
                host=>"192.168.136.101"
                port=>"6379"
                db=>"0"
                key=>"log-through-redis"
        }
}

在上述配置中,我们在输出中使用了Redis模块,
配置完成后,执行命令:

logstash -f /etc/elasticsearch/conf.d/to-redis.conf

上述命令执行结果如下:
ELK详解(十五)——ELK+Redis配置实战_第2张图片
这时,我们登录设备一的Redis,查看内容如下:
ELK详解(十五)——ELK+Redis配置实战_第3张图片
可以看出,Redis中已经写入了日志信息,我们成功的将日志信息写入了Redis中。

三、将Redis信息写入Elasticsearch

接下来,我们实现将Redis信息写入Elasticsearch。
在设备一上,写Logstash配置文件内容如下所示:

input{
        redis{
                data_type=>"list"
                host=>"192.168.136.101"
                port=>"6379"
                db=>"0"
                key=>"log-through-redis"
        }
}
output{
        elasticsearch{
                hosts=>["192.168.136.101:9200"]
                index=>"redis-log"
        }
}

上述配置与本文第二章的配置文件非常相似,只不过在第二章中的输出部分使用了redis模块,而在本章中输入部分使用了redis模块,其作用就不过多赘述了。
上述配置完成后,执行命令:

logstash -f /etc/elasticsearch/conf.d/redis-to.conf

上述命令执行结果如下:

接下来,我们来查看Elasticsearch集群,结果如下:
ELK详解(十五)——ELK+Redis配置实战_第4张图片
可以看出,Logstash已经将Redis中的数据输出到了Elasticsearch中。
此时,我们再查看Redis中的键值情况,结果如下:
ELK详解(十五)——ELK+Redis配置实战_第5张图片
可以看出,Logstash在取出Redis的日志信息后,会自动将该信息删除。
至此,我们的ELK+Reids配置实战成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

你可能感兴趣的:(自动化运维,Redis,MQ,ELK,Linux,运维)