elk笔记5.2--logstash使用

1 介绍

logstash 资源充足的情况下,每个logstash示例采集|消费指定的日志,然后写入到特定索引中即可。
logstash 不充足的情况下,可能需要在一个logstash 中处理多个日志,并写入到多个索引中。本文介绍两种处理方式,方式一为通过type字段处理多种日志,方法二为使用多个pipeline处理日志。

2 使用案例

2.1 通过type隔离多个索引

正常情况下logstash 读取了多个配置后,如果不加type进行分类隔离,那么其写入可能会比较混乱,因此实际中每个配置最好把索引前缀作为其type。

  1. 在 /home/xg/soft/bigdata/elk6.8.8/pipeline/configs 目录新建 dmsg.conf elastic.conf syslog.conf 等3个配置文件,具体内容如下:

    vim dmsg.con
       input{
    	file{
    		path => "/var/log/dmesg"
    		type => "dmesg"
    		start_position => "beginning"
    	}
    }
    
    filter{
    }
    
    output{
    	if [type] == "dmesg" {
    		elasticsearch {
    			hosts => ["127.0.0.01:9200"]
    			index => "dmesg-%{+YYYY.MM.dd}"
    		}
    	}
    }
    
    vim elastic.conf
    input{
    	file{
    		path => "/home/xg/soft/bigdata/log/testlog/elastic.log"
    		type => "elastic_log"
    		start_position => "beginning"
    	}
    }
    
    filter{
    	if [type] == "elastic_log" {
    		grok { 
    			match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }
    		}
    	}
    }
    
    output{
    	if [type] == "elastic_log" {
    		#stdout{}
    		elasticsearch {
    			hosts => ["127.0.0.01:9200"]
    			index => "elastic_log-%{+YYYY.MM.dd}"
    		}
    	}
    }
    
    vim syslog.conf
    input{
    	file{
    		path => "/var/log/syslog"
    		type => "syslog" 
    		start_position => "beginning"
    	}
    }
    filter{
    }
    
    output{
    	if [type] == "syslog" {
    		elasticsearch {
    			hosts => ["127.0.0.01:9200"]
    			index => "syslog-%{+YYYY.MM.dd}"
    		}
    	}
    }
    
  2. 通过-f configs 目录来加载logstash配置文件

    $ bin/logstash -f /home/xg/soft/bigdata/elk6.8.8/pipeline/configs
    

    logstash 正常启动后会加载上述3个配置文件,采集日志并上传到es中。
    如下图所示,日志正常采集到3个索引中: 在这里插入图片描述

2.2 通过pipeline隔离多个索引

to add

3 注意事项

  1. 使用-f configs 的方式加载多个配置时,需要设置type,否则解析的日志和写入的索引可能会变得混乱,即dmsg 日志可能写到syslog索引中,反之亦然。
  2. logstash 执行后stdout输出很多解析信息
    默认情况下logstash 容器中有个 logstash.conf ,其会输出 stdout信息,因此需要删除该文件,或者覆盖掉该文件。
    vim Dockerfile
    FROM docker.elastic.co/logstash/logstash:7.10.2
    RUN rm /usr/share/logstash/pipeline/logstash.conf
    COPY ./dtp_quarantine_k8s_log.conf /usr/share/logstash/pipeline/dtp_quarantine_k8s_log.conf
    
  3. 多pipeline 注意事项
    to add

4 说明

测试elk版本: elk 6.8.8
1. logstash配置文件详解
2. guide/en/logstash/current/index.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昕光xg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值