不同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收集、处理和传输日志,Elasticsearch存储和搜索这些日志,以及Kibana提供可视化的界面,ELK Stack为用户提供了一整套强大的日志分析能力。这种组合尤其适合于大型分布式系统的日志管理和监控,有助于...
Logstash是一个数据收集、转换和分发工具,能够从各种不同来源获取数据(如MongoDB、系统日志、网络设备等),对其进行处理(如过滤、解析、添加元数据等),然后将处理后的数据发送到Elasticsearch。在MEAN ELK中,...
在 logstash-7.10.1 中,Elasticsearch 通常是首选的存储和检索平台,因为它与 Logstash 和 Kibana 集成良好,形成 ELK (Elasticsearch, Logstash, Kibana) 日志管理栈。Kibana 则提供了一个可视化界面,用于探索和...
Logstash的主要功能是处理各种不同来源的日志、事件和其他类型的数据,并将其转化为结构化格式,便于分析和存储。 ELK Stack 是由Elasticsearch、Logstash和Kibana三个开源工具组成的数据处理和可视化平台。Elastic...
8. **与其他工具的集成**:Logstash 是ELK(Elasticsearch、Logstash、Kibana)堆栈的一部分,与Elasticsearch和Kibana(数据可视化工具)配合使用,可以提供完整的日志管理和分析解决方案。 9. **安全性和隐私**:...
能够灵活地对数据进行清洗、过滤、解析,然后将处理后的数据发送到各种存储或分析系统,如 Elasticsearch、Elastic Stack(之前称为 ELK Stack,包含 Elasticsearch、Logstash 和 Kibana)或其他第三方服务。 **...
输出插件负责将处理后的数据发送到目标系统,如Elasticsearch(ELK stack中的"E")进行存储和搜索,或者发送到Kafka、Graphite、MongoDB、File、HTTP服务器等。Logstash 8.5.2 版本包含了丰富的输出插件选择,可以...
3. **输出与转发**: 输出插件让Logstash能够将处理好的数据发送到不同的目的地,如Elasticsearch、Kafka、MongoDB等。在本例中,常见的目标是Elasticsearch,因为ELK堆栈通常一起使用,提供强大的日志管理和分析能力...
Linux Logstash 7.9.2 是一个强大的数据收集、处理和转发工具,它属于Elastic Stack(前称为ELK stack)的一部分,其中包括Elasticsearch、Logstash和Kibana。这个版本是针对Linux环境优化的,用于从各种日志源获取...
在Java开发过程中,为了实现日志管理,我们通常会使用如log4j2这样的日志框架。...在实际项目中,还可以结合其他工具,如ELK(Elasticsearch、Logstash、Kibana)或Graylog,进一步对日志进行集中管理和可视化。
作为 ELK(Elasticsearch, Logstash, Kibana)堆栈的一部分,Logstash 负责收集、解析、丰富以及转发各种类型的数据,如系统日志、应用程序日志、网络设备日志等。Elasticsearch 用于存储和索引这些数据,而 Kibana ...
Logstash的过滤器插件可以处理各种日志格式,如JSON、CSV或自定义格式,同时可以通过添加输出插件将数据发送到其他系统,如RabbitMQ或MongoDB。Kibana则需根据业务需求定制仪表板,展示关键指标和异常报警。 总之,...
它被广泛应用于日志管理和大数据处理,是Elastic Stack(以前称为ELK Stack,包括Elasticsearch、Logstash和Kibana)的重要组成部分。Logstash 6.7.0 版本提供了许多增强的功能和改进,旨在提高性能、稳定性和用户...
Go-Filebeat是基于Golang语言开发的一个轻量级的日志收集工具,它是Elastic Stack(以前称为ELK Stack,包括Elasticsearch、Logstash、Kibana)的一部分,由 Elastic 公司维护。Filebeat的主要任务是监控和转发...
这使得Logstash成为ELK(Elasticsearch、Logstash、Kibana)堆栈的重要组成部分,用于构建强大的日志管理和可视化解决方案。 二、在Windows上安装Logstash 1. 下载:首先,从官方网站或可靠的资源下载"windows ...
在IT领域,ELK Stack(Elasticsearch、Logstash、Kibana)是一个广泛使用的日志管理和分析解决方案。本文将详细探讨ELK部署的核心组件——Elasticsearch,并提及与其密切相关的Logstash。 **Elasticsearch** 是一个...
- 分布式:系统需能在多台机器上收集和处理日志,保证高可用性和可扩展性。 - 实时性:日志数据应能实时或近实时地被处理和分析。 - 可靠性:确保日志不丢失,即使在节点故障时也能恢复。 - 可查询:提供方便的...
- **多线程**:创建多个线程并行处理日志,提高处理速度。 - **流式处理**:使用Java 8引入的Stream API,配合Lambda表达式进行数据流操作。 - **事件驱动编程**:使用`java.util.concurrent`中的`...
Logstash 是一个数据收集和处理引擎,用于从各种不同来源收集日志、事件和非结构化数据,然后进行过滤、转换,并将处理后的数据发送到各种目的地,如Elasticsearch、Kafka、MongoDB等。Logstash的配置文件由输入...
使用awk进行日志解析是一种常见的方法,awk可以根据预定义的模式匹配和处理日志行。例如,上述示例展示了如何使用awk统计IP地址出现的次数,并按频率降序排列,从而找出最频繁的IP。 日志格式通常由服务器配置定义...