zoukankan      html  css  js  c++  java
  • 5,扩展方案

    之前的章节讲述的都是单个Logstash进程,及其对数据的读取,解析和输出处理。
    
    但是,在生产环境中,从每台应用服务器运行logstash 进程并将数据直接发送到Elasticsearch里,显然不是第一选择,
    
    
    原因有三:
    
    1. 过多的客户端连接对Elaticsearch 是一种额外的压力
    
    
    2. 网络抖动会影响到Logstash 进程,进而影响生产应用
    
    3.运维人员未必愿意在生产服务器上部署Java,或者让Logstash 跟业务代码争夺Java资源。
    
    所以,在实际运用中,Logstash 进程被氛围两个不同的角色。
    
    1.运行在应用服务器上的尽量减轻运行压力,只做读取和转发,这个角色叫Shipper
    
    
    2.运行在独立服务器上的完成数据解析处理,负责写入Elasticsearch的角色 叫做Indexer
    
    
    5.1 通过Redis 队列扩展:
    
    
    Redis 服务器是Logstash 官方推荐的Broker选项,Broker 角色也就意味着会同时存在输入和输出两个插件。
    
    
    5.1.1 读取Redis数据
    
    zjtest7-frontend:/usr/local/logstash-2.3.4/config# cat redis.comf 
    input {
        redis {
           data_type =>"pattern_channel"
           key =>"logstash-list"
           host=>"192.168.32.67"
           port=>6379
           password => "1234567"
              }
    }
    
    output {
     stdout {
      codec=>rubydebug{}
       }
    }
    
    
    
    zjtest7-frontend:/usr/local/logstash-2.3.4/config# ../bin/logstash -f redis.comf 
    Settings: Default pipeline workers: 1
    Pipeline main started
    {
           "message" => "hello zjzc",
              "tags" => [
            [0] "_jsonparsefailure"
        ],
          "@version" => "1",
        "@timestamp" => "2016-09-01T06:29:47.551Z"
    }
    

  • 相关阅读:
    linux线程
    linux线程
    c++之堆、栈、数据段、
    fork()、僵死进程和孤儿进程
    linux之管理mysql
    linux之管理apache
    Django 时间与时区设置问题
    Django rest framework:__str__ returned non-string (type NoneType) 真正原因
    Django获取当前页面的URL——小记
    Django中出现:TemplateDoesNotExist at
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350313.html
Copyright © 2011-2022 走看看