ELKStack-使用消息队列扩展(十)
ELKStack-使用消息队列扩展
官方文档:https://www.elastic.co/guide/en/logstash/5.x/deploying-and-scaling.html
流程图

流程:数据源 --> 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



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

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

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

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之消息队列
redis消息队列 安装redis yum -y install redis 修改配置文件 修改ip 后台运行 启动 systemctl start redis 查看 lsof -i:6379 连接 ...
- RabbitMQ消息队列(十)RPC应用2
基于RabbitMQ RPC实现的主机异步管理 地址原文:http://blog.51cto.com/baiying/2065436,作者大大,我把原文贴出来了啊.不要告我 root@ansible: ...
- RabbitMQ消息队列(十二)-性能测试
硬件配置 宿主机用的联想3850X6的服务器四颗E7-4850v3的处理器,DDR4内存,两块1.25TB的pcie固态.在宿主机上使用的事esxi5.5的虚拟化平台,在子系统中安装RabbitMQ和 ...
- RabbitMQ消息队列(十)-高可用集群部署实战
前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ. RabbitMQ集群基本概念 Rabbit模式大概分为以下三种 ...
- RabbitMQ消息队列(十四)-启用SSL安全通讯
如果RabbitMQ服务在内网中,只有内网的应用连接,我们认为这些连接都是安全的,但是个别情况我们需要让RabbitMQ对外提供服务.这种情况有两种解决方案: 在RabbitMQ外层在封装一层应用,应 ...
- Asp.net 面向接口可扩展框架之消息队列组件
消息队列对大多数人应该比较陌生.但是要提到MQ听说过的人会多很多.MQ就是英文单词"Message queue"的缩写,翻译成中文就是消息队列(我英语差,翻译错了请告知). PS: ...
- 编译PHP扩展amqp & php消息队列 rabbitmq
首先介绍下AMQP: AMQP——高级消息队列协议,目前比较有名气的实现大概就是大名鼎鼎的RabbitMQ了. RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统.他遵循Mozilla ...
- Java并发编程原理与实战三十六:阻塞队列&消息队列
一.阻塞队列 1.阻塞队列BlockingQueue ---->可以理解成生产者消费者的模式---->消费者要等待到生产者生产出来产品.---->而非阻塞队列ConcurrentLi ...
- RabbitMQ (十六) 消息队列的应用场景 (转)
原贴 : http://blog.csdn.net/cws1214/article/details/52922267 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题 ...
随机推荐
- 基于React,Redux以及wilddog的聊天室简单实现
本文主要是使用ReactJs和Redux来实现一个聊天功能的页面,页面极其简单.使用React时间不长,还是个noob,有不对之处欢迎大家吐槽指正. 还要指出这里没有使用到websocket等技术来实 ...
- JS实现文字截取(雾)
今天在跳板群那里看到一个神奇的样式,效果: 感觉十分神奇,因为一开始以为他是只有一个P元素包着文字然后最后一个自动截取文字,而且最后一行还可以提前截取???这怎么做到的,然后想了一下css怎么做,好像 ...
- (八)数据呈现——一图胜千言<完结>
数据分析师就像厨师一样.厨师的工作有5步:下单.备料.切配.烹饪.打荷.数据分析师的工作也有5步.呈现数据就好像打荷.厨师在把菜肴端给客人之前要做盘饰美化,让菜肴精致美观,这个工作就是打荷.同样,数据 ...
- java在类定义时对hashset的便捷初始化方法
有时候我们在类成员定义时,当这个类成员类型为 HashSet时,我们可以不方便调用 add函数进行初始化,所以可以采用下面的便捷方式来进行初始化 public class MyTest{ final ...
- 萌新笔记——Cardinality Estimation算法学习(一)(了解基数计算的基本概念及回顾求字符串中不重复元素的个数的问题)
最近在菜鸟教程上自学redis.看到Redis HyperLogLog的时候,对"基数"以及其它一些没接触过(或者是忘了)的东西产生了好奇. 于是就去搜了"HyperLo ...
- 1-web应用之LAMP源码环境搭建
目录 一.LAMP环境的介绍 1.LAMP环境的重要性 2.LAMP组件介绍 二.Apache源码安装 1.下载Apache以及相关依赖包 2.安装Apache以及相关 ...
- android 获取网络类型名称2G 3G 4G wifi
首先工程Manifest文件要引用: <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" ...
- 初识SpringMvc
初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...
- BZOJ 1565: [NOI2009]植物大战僵尸
1565: [NOI2009]植物大战僵尸 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2317 Solved: 1071[Submit][Stat ...
- Nginx模块之http.md
ngx_http_access_module ngx_http_access_module模块允许限制对某些客户端地址的访问. 访问也可以通过密码,子请求的结果或JWT来限制. 通过地址和密码的同时访 ...