logstash记录mongodb日志

环境:mongodb 3.2.17  logstash 6

mongodb日志实例格式文件路径为/root/mongodb.log:

2018-03-06T03:11:51.338+0800 I COMMAND  [conn1978967] command top_fba.$cmd command: createIndexes { createIndexes: "top_amazon_fba_inventory_data_2018-03-06", indexes: [ { key: { sellerId: 1,
 sku: 1, updateTime: 1 }, name: "sellerId_1_sku_1_updateTime_1" } ] } keyUpdates:0 writeConflicts:0 numYields:0 reslen:113 locks:{ Global: { acquireCount: { r: 3, w: 3 } }, Database: { acquir
eCount: { w: 2, W: 1 } }, Collection: { acquireCount: { w: 1 } }, Metadata: { acquireCount: { w: 2 } }, oplog: { acquireCount: { w: 2 } } } protocol:op_query 5751ms
2018-03-07T10:06:09.834+0800 I COMMAND  [conn2020085] command top.top_order_list command: aggregate { aggregate: "top_order_list", pipeline: [ { $match: { stock_id: { $ne: 75 }, date_day: { $
gte: "2018-01-01", $lt: "2018-02-01" } } }, { $group: { _id: 1, order_id: { $addToSet: "$order_id" } } }, { $project: { _id: 1, order_id: { $size: "$order_id" } } } ] } keyUpdates:0 writeConf
licts:0 numYields:13924 reslen:103 locks:{ Global: { acquireCount: { r: 27942 } }, Database: { acquireCount: { r: 13971 } }, Collection: { acquireCount: { r: 13971 } } } protocol:op_query 118
899ms
2018-03-07T10:09:03.590+0800 I COMMAND  [conn6175621] getmore top.top_product_flat query: { catagory_id: { $in: [ 176, 170, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3
458, 3459, 3460, 3461, 3462, 3463, 3464, 3783, 183, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 184, 3446, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 34
87, 3488, 3489, 8186, 8187, 283, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 284, 3505, 3506, 3507, 3509, 3510, 3511, 285, 3523, 3524, 3525, 3526
, 3527, 3528, 286, 3512, 3513, 3514, 3515, 3516, 3522, 3569, 287, 3517, 3518, 8642, 288, 289, 3784, 3785, 3794 ] } } cursorid:590981628130 ntoreturn:0 cursorExhausted:1 keyUpdates:0 writeConf
licts:0 numYields:533 nreturned:68330 reslen:2839556 locks:{ Global: { acquireCount: { r: 1068 }, acquireWaitCount: { r: 202 }, timeAcquiringMicros: { r: 130039 } }, Database: { acquireCount:
 { r: 534 } }, Collection: { acquireCount: { r: 534 } } } 530ms
2018-03-07T10:09:03.639+0800 I COMMAND  [conn6184021] query top.top_purchase_product_price_nagotiation query: { $query: { nagotiation_date: { $gt: "2018-01-26 14:32:21", $lt: "2018-02-25 14:3
2:21" }, product_id: 1239714 }, $orderby: { nagotiation_date: 1 } } planSummary: COLLSCAN ntoreturn:0 ntoskip:0 keysExamined:0 docsExamined:242611 hasSortStage:1 cursorExhausted:1 keyUpdates:
0 writeConflicts:0 numYields:1895 nreturned:0 reslen:20 locks:{ Global: { acquireCount: { r: 3792 }, acquireWaitCount: { r: 85 }, timeAcquiringMicros: { r: 94774 } }, Database: { acquireCount
: { r: 1896 } }, Collection: { acquireCount: { r: 1896 } } } 221ms
2018-03-07T10:22:01.340+0800 I ACCESS   [conn2020395] Unauthorized: not authorized on admin to execute command { replSetGetStatus: 1.0, forShell: 1.0 }
2018-03-07T10:22:01.344+0800 I NETWORK  [conn2020395] end connection 192.168.1.100:52188 (268 connections now open)
2018-03-07T10:19:45.897+0800 I NETWORK  [initandlisten] connection accepted from 192.168.1.100:51817 #2020374 (268 connections now open)

logstash配置/root/logstash_mongodb.conf

input {
    file {
        path => "/root/mongodb.log"
        type => "mongodblog"
        start_position => "beginning"
    }
}

 
filter {
    if [type] == "mongodblog" {
        grok {
            match => ["message","%{TIMESTAMP_ISO8601:timestamp}\s+I %{WORD:MONGO_ACTION}\s+\[%{WORD:SOCK_ACTION}\]\s+%{GREEDYDATA:body}"]
            remove_field => [ "message" ]
        }

        if [body] =~ "ms$"  {  
            grok {
                match => ["body","%{WORD:command_action}\s+%{WORD:dbname}\.\$?%{WORD:collname}\s+%{GREEDYDATA:command_content}\s+%{NUMBER:time_spend}ms"]
            }
        }

        date {
            match => [ "timestamp", "UNIX", "YYYY-MM-dd HH:mm:ss", "ISO8601"]
            remove_field => [ "timestamp" ]
        }

        mutate {
            remove_field => ["message"]
        }
    }
}
 
output {
    elasticsearch {
        hosts => ["192.168.220.100:9200"]
        index => "mongodb-%{+YYYY.MM.dd}"
    }
}

最后执行logstash -f /root/logstash_mongodb.conf即可

原文地址:http://blog.51cto.com/chinalx1/2083824

时间: 2024-08-27 16:59:27

logstash记录mongodb日志的相关文章

使用Logstash收集MongoDB日志并通过Zabbix报警

一 应用场景描述 在有些情况下,仅仅通过Zabbix去监控MongoDB的端口和各种状态还不够,MongoDB的日志监控也是很重要的.例如Mongos连接后端的Shard报SocketException错误等. 二

logstash+elasticsearch+kibana日志收集

一. 环境准备 角色 SERVER IP logstash agent 10.1.11.31 logstash agent 10.1.11.35 logstash agent 10.1.11.36 logstash central 10.1.11.13 elasticsearch  10.1.11.13 redis 10.1.11.13 kibana 10.1.11.13 架构图如下: 整个流程如下: 1) 远程节点的logstash agent收集本地日志后发送到远程redis的list队列

[翻译]mongodb日志分析工具mtools之mplotqueries

mtools是一组非常好用的mongodb日志分析工具,里面最复杂的命令是mplotqueries,上网查了一下,还没有人翻译过.英文不好,费了好大的劲翻完,翻的不好,但没有办法,我英文水平就这么多~ 原文地址:https://github.com/rueckstiess/mtools/wiki/mplotqueries ----------------------------------------------------------------------------------------

ASP.NET记录错误日志的方式

程序记录错误日志是一种看起来对一般用户没什么作用,但对程序开发者用处很大的东西,它能查出错误或异常的程序马迹.那么,常用的记录错误日志的方式有哪些呢? 大多数情况下使用的是 1.直接记录为txt/xml文件 2.Windows Event Log 其他记录错误日志的方式 1.当前进程的本地队列 没有简单高效的持久化机制实现,单次调用效率会降低 2.MSMQ (1).非进程内消息队列,单次调用速度上,没有进程内部本地队列速度快 (2).内建持久化机制,即便down机,信息也不会丢失 (3).能简单

Nginx 指定不产生日志类型(不记录图片日志)

在主配置文件中已经定义了配置文件的格式 [[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf  # nginx 中的配置修改 日志命名格式 log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' '$host "$request_uri" $status' '"$http_referer" "

Tomcat会话超时时怎样记录操作日志,满足安全审计要求

众所周知.在实际的Web应用程序中,会话管理一般都採用Web容器会话管理功能. 使用Tomcat做Webserver也是如此,并且从安全的角度考虑,尽量避免去更改和干预Web容器的会话管理功能. Tomcat会话管理功能肯定比我们自己做出来要全面和可靠,况且Tomcat是主流开源社区维护的.有专门的团队来开发和维护.一旦爆出安全漏洞,也能非常快被修复. 在实际开发中,为了满足安全审计的要求.Web应用程序一旦有会话注销.就应该记录操作日志.注销一般分为操作者主动注销.应用程序检測到异常攻击主动注

Nginx日志过滤 使用ngx_log_if不记录特定日志

ngx_log_if是Nginx的一个第三方模块.它在Github上的描述是这样介绍的:ngx_log_if是一个独立的模块,允许您控制不要写的访问日志,类似于Apache的"CustomLog env = XXX" 第一步: 先到Github下载ngx_log_if地址https://github.com/cfsego/ngx_log_if/ 第二步: 安装第三方模块到Nginx.第三方模块的安装可以参考http://wiki.nginx.org/3rdPartyModules 使用

mongodb日志清理

mongodb的日志相对其他数据库来说应该算是很大的,刚才由于报警,所以我查看啦一下,有15G的日志产生,下面是我的清理过程 出于对安全方面,我们服务器禁止使用rm命令,所以我在/home目录下创建啦一个mongolog文件夹 先查看一下日志大小和数量 #ls /opt/mongodb/log total 15G-rw-r--r--. 1 root root 6.6G Jul  2 17:10 mongodb.log-rw-r--r--. 1 root root 6.5K Oct 16  201

logstash+elasticsearch +kibana 日志管理系统

Logstash是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索),您可以使用它.说到搜索,logstash带有一个web界面,搜索和展示所有日志.kibana 也是一个开源和免费的工具,他可以帮助您汇总.分析和搜索重要数据日志并提供友好的web界面.他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面. 目的就是为了运维.研发很方便的进行日志的查询.Kibana一个免费的web壳:Logstash集成各种收集日志插件,还