4. Logstash 系统服务设备日志格式 API 对接

input {

    file {

        path => ["/root/nerv-app/nerv-rds/log/*.log"]

    }

}

 

filter {

    grok{                                                             // 自定义grok,如果日志中有时间,将匹配结果存入log_timestamp,其余字段,存入[log_content][*]下

        match => { "message" => "time=\"%{NOTSPACE:log_timestamp}\" level=%{NOTSPACE:[log_content][level]} msg=\"%{GREEDYDATA:[log_content][msg]}\" file=\"%{NOTSPACE:[log_content][file]}\""}

    }

    mutate {

        remove_field => ["host", "path", "tags", "@version"]          // 删除无用字段,由于需要删除tags,grok必须放在该mutate上面,因为如果没有匹配成功,会生成_grokparsefailure的tag,其他会生成tag的,也一同放在该mutate上面

        rename => { "message" => "[log_content][message]" }           // 如果不需要保留原始采集日志,请删除此行

        add_field => {"region" => "cn_hb_01"}                         // 地域

        add_field => {"zone" => "cn_hb_01_xy"}                        // 可用区

        add_field => {"service_type" => "nerv-rds"}                   // 服务类型

        add_field => {"service" => "nerv-rds"}                        // 服务名称

        add_field => {"cluster" => "rds-manager"}                     // 集群名称,对应到模版中${nerv_node_name}

        add_field => {"ip" => "100.73.45.4"}                          // 采集源主机地址

        add_field => {"hostname" => "nerv"}                           // 采集源主机名称

        add_field => {"project_id" => 10}                             // 采集服务所属的项目ID

        add_field => {"tenant" => "gongxtao"}                         // 采集服务所属的租户名称

    }

    date {

      match => [ "log_timestamp" , "ISO8601"]                         // 格式化日期字段,如果日志中的日期,没有时区信息,需要设置timezone

      target => "log_timestamp"

    }

    if ![log_timestamp] {                                             // 如果没有日期字段,使用采样时间,作为日志时间

        mutate {

            copy => { "@timestamp" => "log_timestamp" }

        }

    }

    ruby {                                                            // 用于生成索引的日期后缀

        code => "event.set('index_day', event.get('log_timestamp').time.localtime.strftime('%Y-%m-%d'))"

    }

}

 

output {

    elasticsearch {

        hosts => ["100.73.18.12:9200", "100.73.18.15:9200"]                          // 集群ES节点host

        index => "%{tenant}-%{project_id}-%{service}-%{cluster}-%{index_day}"        // 分隔符可自定义

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值