不同mongodb版本的日志格式不同,这个需要看mongodb官方对日志格式的定义,在处理前自己去做好这方面的功课。还有就是,要抓取自己感兴趣的内容,这个根据各自的需求来做,没有千篇一律的,全凭各自喜好。
grok预定义的正则匹配规则可以参考 https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns 可以把这些文件全部下载下来放到patterns目录下,随时调用。同时,你如果安装了logstash会在这个目录下有一系列自带的正则/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-2.0.2/patterns,不同安装方式可能目录有别。
我这里使用版本信息如下:
- elasticsearch 2.2.0
- logstash 2.2.2
- kibana 4.4.0
- mongodb 3.2.0
- filebeat 1.1.1
mongodb 日志格式
详细请参考 https://docs.mongodb.org/manual/reference/log-messages/#log-message-components
从3.0版本开始,mongodb日志内容包含severity level和component。
|
<timestamp><severity><component>[<context>]<message>
|
如:
|
2014-11-03T18:28:32.450-0500INETWORK[initandlisten]waiting forconnections on port27017
|
timestamp
时间戳默认使用iso8601-local
severity level
Level
Description
F |
Fatal |
E |
Error |
W |
Warning |
I |
Informational, for Verbosity Level of 0
|
D |
Debug, for All Verbosity Levels > 0
|
compoent
Item
Description
ACCESS |
消息涉及到访问控制相关的,如验证。 |
COMMAND |
消息涉及到数据库命令相关的,如count。 |
CONTROL |
消息涉及到活动控制相关的,如 initialization。 |
GEO |
消息涉及到空间地理解析相关的,如 verifying the GeoJSON shapes。 |
INDEX |
消息涉及到索引操作相关的,如创建索引。 |
NETWORK |
消息涉及到网络活动相关的,如接收连接。 |
QUERY |
消息涉及到查询相关的,包含查询规划活动状况。 |
REPL |
消息涉及到复制集相关的,如 initial sync and heartbeats。 |
SHARDING |
消息涉及到分片活动相关的,如 the startup of the mongos。 |
STORAGE |
消息涉及到存储活动相关的,如processes involved in the fsync command。 |
JOURNAL |
消息涉及到具体journaling 活动相关的。 |
WRITE |
消息涉及到写操作,如update命令。 |
- |
消息不与命名组件相关的。 |
filebeat配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# vi /etc/filebeat/filebeat.yml
filebeat:
prospectors:
-
paths:
-/www.ttlsa.com/logs/mysql/slow.log
document_type:mysqlslowlog
input_type:log
multiline:
negate:true
match:after
-
paths:
-/www.ttlsa.com/logs/mongodb/mongodb.log
document_type:mongodblog
registry_file:/var/lib/filebeat/registry
output:
logstash:
hosts:["10.6.66.18:5046"]
shipper:
logging:
files:
|
logstash配置
1. input配置
参见上一篇。
2. filter配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# vi 17-mongodblog.conf
filter{
if[type]=="mongodblog"{
grok{
match=>["message","%{TIMESTAMP_ISO8601:timestamp}\s+%{MONGO3_SEVERITY:severity}\s+%{MONGO3_COMPONENT:component}\s+(?:\[%{DATA:context}\])?\s+%{GREEDYDATA:body}"]
}
if[body]=~"ms$" {
grok{
match=>["body","query\s+%{WORD:db_name}\.%{WORD:collection_name}.*}.*\}(\s+%{NUMBER:spend_time:int}ms$)?"]
}
}
date{
match=>["timestamp","UNIX","YYYY-MM-dd HH:mm:ss","ISO8601"]
remove_field=>["timestamp"]
}
}
}
|
3. output配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# vim 30-beats-output.conf
output{
if"_grokparsefailure"in[tags]{
file{path=>"/var/log/logstash/grokparsefailure-%{[type]}-%{+YYYY.MM.dd}.log"}
}
if[@metadata][type]in["mysqlslowlog","mongodblog"]{
elasticsearch{
hosts=>["10.6.66.18:9200"]
sniffing=>true
manage_template=>false
template_overwrite=>true
index=>"%{[@metadata][beat]}-%{[type]}-%{+YYYY.MM.dd}"
document_type=>"%{[@metadata][type]}"
}
}
|
logstash 标准输出结果
logstash-mongodb-log
kibana
logstash-mongodb-log-kibana<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
分享到:
相关推荐
基于Logstash的日志数据采集和ELK可视化海量日志分析平台实战(全套视频+课件+代码+讲义+工具),具体内容包括: 01 Logstash的架构及运行流程 02 Logstash的数据采集案例(一) 03 Logstash的数据采集案例(二) 04...
对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELK,所以说ELK指的是...
ELK实战,设计到logstash等。
4-logstash收集系统日志-file.flv 5-logstash收集java日志-codec.flv 6-kibana介绍.flv 7-logstash收集nginx访问日志-json.flv 8-logstash收集syslog日志.flv 9-logstash收集tcp日志.flv 10-logstash收集slowlog-...
而采用此架构kafka能做数据的缓冲,给logstash平滑处理日志的时间,如果日志量继续加大,kafka也达到了最大处理量,此时filebeat就算不能发送出去日志信息,但是日志信息也不会丢失,等到后端压力减少后正常效率工作...
开源实时日志分析ELK平台能够完美的解决日志收集和日志检索、分析的问题,ELK就是指ElasticSearch、Logstash和Kiabana三个开源工具。 因为ELK是可以跨平台部署,因此非常适用于多平台部署的应用。 二 环境准备 1...
主要介绍了Spring Boot 使用 logback、logstash、ELK 记录日志文件的思路详解,文中给大家提到了logback 取代 log4j的理由,需要的朋友可以参考下
logstash采集log4j日志发送到es配置文件,可以把日志根据日志级别区分开,一个级别一条日志是es中的一条数据
新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。 Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、...
企业级elk收集tomcat日志
2.Logstash:Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到存储库。 3.ElasticSearch:Elasticsearch 是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展、...
大数据搜索与日志挖掘及可视化方案 ELK Stack Elasticsearch Logstash Kibana 第2版
通过elk收集微服务模块日志 通过elk收集微服务模块日志
ELK处理nginx日志,比较详细的介绍了利用geoip将nginx的访问日志中客户端IP分布地址区域给展现出来,非常直观,有兴趣的朋友可以按照文档做做实验玩玩
1、Filebeat负责收集应用写到磁盘上的日志,并将日志发送给logstash 2、logstash处理来自filebeat的日志,并将处理后的日志保存ela
大数据搜索与日志挖掘及可视化方案--ELK+Stack+Elasticsearch+Logstash+Kibana大数据搜索与日志挖掘及可视化方案--ELK+Stack+Elasticsearch+Logstash+Kibana
logstash8.5.3-日志配置
logstash.yml --logstash的配置文件 我这里没有配置 使用默认的就好了 elasticsearch data --该目录存放elasticsearch的数据 plugins --该目录存放elasticsearch的插件,比如中文分词、同义词插件等 docker-...
elk logstash6.2.3版本软件包,可根据官方网站文档进行安装部署
大数据搜索与日志挖掘及可视化方案——ELK Stack:Elasticsearch Logstash Kibana(第2版)