zoukankan      html  css  js  c++  java
  • logstash之mongodb-log

    1、logstash6.5.3

    配置收集mongodb的日志:

    首先在mongodb服务器上部署filebeat收集日志并上传到logstash进行处理,然后上传到ES。

    filebeat-conf:

    - input_type: log
    
      # Paths that should be crawled and fetched. Glob based paths.
      paths:
        - /data/log/mongod.log
      tags: ['db']
    
    output.logstash:
        hosts: ["10.1.1.12:5044"]

    这里只给出主要的配置。

     

    logstash-conf:

    input {
            beats {
                    port => "5044"
            }
    }
    filter {
          if 'db' in [tags] {
                grok {
                    match => ["message","%{TIMESTAMP_ISO8601:timestamp}s+%{MONGO3_SEVERITY:severity}s+%{MONGO3_COMPONENT:component}%{SPACE}(?:[%{DATA:context}])?s+%{GREEDYDATA:body}"]
                    remove_field => [ "message" ]
                    remove_field => [ "beats_input_codec_plain_applied" ]
                  }
               if [body] =~ "ms$"  {
                    grok {
                      match => ["body","commands+%{DATA:collection}s+command:s+%{DATA:action}s+.*s+query:s+%{DATA:query}s+planSummary+.*s+%{NUMBER:spend_time:int}ms$"]
                     }
                 }
                if [body] =~ "aggregate" {
                    grok {
                       match => ["body","commands+%{DATA:collection}s+command:s+%{DATA:action}s+.*s+pipeline:s+%{DATA:pipeline}s+keyUpdates+.*s+%{NUMBER:spend_time:int}ms"]
                    }
              }
                if [body] =~ "find" {
                    grok {
                       match => ["body","commands+%{DATA:collection}s+command:s+%{DATA:action}s+.*s+filter:s+%{DATA:filter}s+planSummary+.*s+%{NUMBER:spend_time:int}ms"]
                    }
                 }
              date {
                match => [ "timestamp", "ISO8601" ]
                remove_field => [ "timestamp" ]
               }
             }
    }
    
    output {
          if 'db' in [tags] {
                     elasticsearch {
                            hosts => "192.4.7.16:9200"
                            index => "logstash-mongodb-slow-%{+YYYY-MM-dd}"
                     }
            }
      }

     

    grok需要先进行测试,kibana6.3以后提供了grok debugger:

      

     

    测试效果:

     

  • 相关阅读:
    当你输入一个网址的时候,实际会发生什么?
    HTTP响应报文与工作原理详解
    DNS系统的解析原理
    spark-streaming集成Kafka处理实时数据
    python分布式环境下的限流器
    使用spark与MySQL进行数据交互的方法
    Linux Redis集群搭建与集群客户端实现
    commons-pool与commons-pool2连接池(Hadoop连接池)
    Kazoo Python Zookeeper 选主
    SpringMVC拦截器Interceptor
  • 原文地址:https://www.cnblogs.com/cuishuai/p/10861932.html
Copyright © 2011-2022 走看看