zoukankan      html  css  js  c++  java
  • Mysql 利用multiline 实现多行匹配

    <pre name="code" class="html">input {
            file {
                    type => "zj_mysql"
                    path => ["/data01/applog_backup/zjzc_log/zj-mysql01-slowlog.*"]
            }
        
           file { 
                    type => "wj_mysql" 
                    path => ["/data01/applog_backup/winfae_log/wj-mysql01-slowlog.*"] 
            } 
    
    
        }
    
    
    filter {
    
    
       multiline {
                   pattern =>"^s+#s+Time:"
                   negate=>true
                   what=>"previous"
             }
     }
    
    
    output {
         if [type] == "zj_mysql" { 
            redis {
                    host => "192.168.32.67"
                    data_type => "list"
                    key => "zj_mysql:redis"
                    port=>"6379"
                    password => "1234567"
            }
    }
          else if [type] == "wj_mysql"{
           redis { 
                    host => "192.168.32.67" 
                    data_type => "list" 
                    key => "wj_mysql:redis" 
                    port=>"6379" 
                    password => "1234567" 
            } 
    }
    }
      
    multiline 多行匹配:
    
    这个插件很简单,就是把当前行的数据添加到前面一行后面,直到新进的当前行匹配^# Time:正则为止。
    
    看下slow log日志;
    
    LIMIT 0, 50;
     # Time: 160826 14:56:36
     # User@Host: zjzc_dba[zjzc_dba]
     # Query_time: 8.897828  Lock_time: 0.000263 Rows_sent: 1  Rows_examined: 25721574
     SET timestamp=1472194596;
     SELECT (SUM(repay.`yieldBalance`)-SUM(TRUNCATE(holding.`investBalance`*stock.productYield*pr.duration/pr.daysOfYear,pr.`precision`))) AS totalAddBenefit
     			FROM GambleStockIndex stock 
     			INNER JOIN `Product` po ON po.sn = stock.productSn
     			INNER JOIN ProductRepay pr on po.sn = pr.productSn
     			INNER JOIN `ClientInvestOrder` co ON co.`orderNo` = stock.`orderNo`
     			INNER JOIN `ClientProductHolding` holding ON holding.`investSn` = co.`sn`
     			INNER JOIN `ProductRepayment` repay ON repay.`holdingSn` = holding.`sn`
     		WHERE stock.`status`=2 and po.status =5
     LIMIT 0, 50;
     # Time: 160826 15:17:06
     # User@Host: zjzc_dba[zjzc_dba] @  [115.236.160.83]  Id: 5534343
     # Query_time: 8.842579  Lock_time: 0.000178 Rows_sent: 1  Rows_examined: 25721574
     SET timestamp=1472195826;
     SELECT (SUM(repay.`yieldBalance`)-SUM(TRUNCATE(holding.`investBalance`*stock.productYield*pr.duration/pr.daysOfYear,pr.`precision`))) AS totalAddBenefit
     			FROM GambleStockIndex stock 
     			INNER JOIN `Product` po ON po.sn = stock.productSn
     			INNER JOIN ProductRepay pr on po.sn = pr.productSn
     			INNER JOIN `ClientInvestOrder` co ON co.`orderNo` = stock.`orderNo`
     			INNER JOIN `ClientProductHolding` holding ON holding.`investSn` = co.`sn`
     			INNER JOIN `ProductRepayment` repay ON repay.`holdingSn` = holding.`sn`
     		WHERE stock.`status`=2 and po.status =5
     LIMIT 0, 50;
    


    
                                        
    
  • 相关阅读:
    各类Http请求状态(status)及其含义 速查列表 xmlhttp status
    Microsoft Visual Studio 2010 正式版下载[含旗舰版序列号](中、英文版)
    【分享】开源或免费的ASP.NET web应用列表
    线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析
    Asp.Net中多语言的实现
    Oracle 数字与空值的排序问题
    新版微软一站式示例代码库 6月2日更新下载。
    .NET反射机制简介
    Decimal与double类型误差
    用动态菜单增强.NET应用程序
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350348.html
Copyright © 2011-2022 走看看