logstash配置不同类型日志写到不同索引

1 篇文章 0 订阅

前言

日志统一规范化方便开发人员查看日志和排查问题,在进行容器化部署时,例如k8s内的日志查询,通常是用于运维层面进行查看日志的,而开发人员需要一套属于自己的日志工具。

方案一:普罗米修斯那套,包括洛基(日志收集),Grafana可视化。比较轻量级而且与k8s兼容友好,在此不介绍,自行百度

方案二:有钱上收费,类似阿里的sls等

方案三:elk,这里介绍elk

一、项目开发日志规范

首先保证以下几点:

1、日志格式json,方便格式化

2、运维层面日志清洗阶段

3、logstash基于jvm,比较消耗资源,可以选择go开发的filebeat,我们将日志统一映射到某个磁盘,因此不再进行pod内filebeat,直接使用logstash

二、logstash配置:

下载es对应的logstash版本,非docker,docker部署需要挂载容器内部文件

tar -zxvf xxx.tar.gz //解压
mv xxx logstash  //重命名

 进入config目录修改jvm.options,xms等配置合适参数

随便什么位置新建一个启动配置文件logstash.conf,重要参数都在这里

input {
    file {
        path => "/usr/local/my.log"  
        start_position => "beginning" 
        type => "infolog"
        sincedb_path => "/dev/null"
    }
    file {
        path => "/usr/local/my1.log"  
        start_position => "beginning" 
        type => "errlog"
        sincedb_path => "/dev/null"
    }

}
filter {
      json {
         source => "message"
      }
      date {
        match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"] #匹配timestamp字段
        target => "@timestamp"  #将匹配到的数据写到@timestamp字段中
      }
}
 
output {
       if [type] == "infolog" {
         elasticsearch {
            hosts => ["test:9200"]
            index => "infolog-%{+YYYY.MM.dd}"
        }
       } else if [type] == "errlog" {
         elasticsearch {
            hosts => ["test:9200"]
            index => "errlog-%{+YYYY.MM.dd}"
        }
       }
 
}

 ./bin/logstash -f /usr/local/mydata/logstash/logstash.conf 启动后到kibana配置索引

创建索引模式,输入对应索引名称 ->下一步->选择时间戳->finish

然后到仪表盘查看即可

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

皮特猫.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值