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