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 => ""
}
}
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","command\s+%{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","command\s+%{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","command\s+%{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:

测试效果:

最新文章

  1. C++强制类型转换
  2. 关于win10系统自带浏览器IE11的JQuery使用问题
  3. SVN 多项目管理(强烈建议每个项目建一个库)
  4. verify.js使用验证插件使用
  5. Maven full settings.xml
  6. 一篇文章告诉你为何GitHub估值能达20亿美元
  7. Android dp px转化公式
  8. 线段树 Interval Tree
  9. android handler机制简单介绍
  10. Python自动化运维之14、设计模式
  11. OOP 三大特点:继承性,封装性,多态性
  12. python——爬虫&问题解决&思考(1)
  13. MSCI 成份股 清单
  14. noip普及组2004 FBI树
  15. 【数论·错位排列】bzoj4517 排列计数
  16. 写给自己看的vue
  17. express脚手架的安装,以及ejs的语法
  18. android端 socket长连接 架构
  19. Oracle 数据库导入与出
  20. super的使用方法与使用范围

热门文章

  1. HTML input属性详谈
  2. 白话SCRUM 之四:燃尽图
  3. 155--MinStack
  4. Jmeter接口测试,变量是订单和订单明细,怎么一起传?
  5. 201871010126 王亚涛《面向对象程序设计(Java)》第十二周学习总结
  6. django之三剑客、静态文件配置、请求响应对象、数据库操作
  7. Python进阶-VII 内置函数
  8. div层的滑入滑出实例
  9. 生成指定python项目中所有的依赖文件
  10. css3中@font-face模块自定义字体