我正在使用logstash将日志提供给ElasticSearch.我正在将logstash输出配置为:
input {
file {
path => "/tmp/foo.log"
codec =>
plain {
format => "%{message}"
}
}
}
output {
elasticsearch {
#host => localhost
codec => json {}
manage_template => false
index => "4glogs"
}
}
Run Code Online (Sandbox Code Playgroud)
我注意到,一旦我启动logstash,它就会在ES中创建一个映射(日志),如下所示.
{
"4glogs": {
"mappings": {
"logs": {
"properties": {
"@timestamp": {
"type": "date",
"format": "dateOptionalTime"
},
"@version": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何防止logstash创建此映射?
更新:
我现在也解决了这个错误."[logs]的对象映射尝试解析为对象,但是得到了EOF,是否有一个具体的值提供给它?"
正如John Petrone在下面所述,一旦定义了映射,就必须确保您的文档符合映射.在我的例子中,我已经定义了"type:nested"的映射,但是logstash的输出是一个字符串.所以我从我的logstash配置中删除了所有编解码器(无论是json还是普通的),这使得json文档无需更改即可通过.
这是我的新logstash配置(带有一些额外的多行日志过滤器).
input {
kafka { …Run Code Online (Sandbox Code Playgroud) 我正在试验卡夫卡.我能够获得一个基本的集群,其中包含Zookeeper和运行并生成/使用数据的代理.Kafka是否有交互式管理shell/cli?我想有一个关于所有主题的视图,一个主题的分区,产品/消费率,持续的数据量等等.我在网上搜索并查看了安装.我找不到任何管理工具.
谢谢,
我正在尝试使用 logback 的替换功能,以免在我的 MDC 日志模式中打印空值。 http://logback.qos.ch/manual/layouts.html#replace
我试图遵循这里的示例 http://logogin.blogspot.com/2013/04/logback-mdc-and-empty-values.html
90% 的时间我的日志模式都会打印
2014-08-28 11:30:27,014 emp:Peter org:IT Expense submitted
Run Code Online (Sandbox Code Playgroud)
打印时间的 5%
2014-08-28 11:30:27,014 emp: org: Cleanup jobs.
Run Code Online (Sandbox Code Playgroud)
这是因为在后一种情况下,不需要在 MDC 上提供 emp 和 org。对于这些情况,我希望 emp: 和 org: 根本不出现在日志行中。
2014-08-28 11:30:27,014 Cleanup jobs.
Run Code Online (Sandbox Code Playgroud)
这是我的变量和我正在使用的附加器。这个想法是,对于没有 emp 和 org 值的情况, mdcPattern 将解析为空字符串。
<variable scope="context" name="mdcPattern" value="%replace( emp:%X{empName} org:%X{orgName} ) {'[a-z]+:( |$)', ''}"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d ${mdcPattern} %thread %-5level %logger{25} - %msg%n</pattern>
</encoder>
</appender>
Run Code Online (Sandbox Code Playgroud)
但是替换正则表达式不起作用。我看到日志行为:
2014-08-28 11:30:27,014 emp: org: {'[a-z]+:( |$
Run Code Online (Sandbox Code Playgroud)
我的正则表达式有点弱。我似乎无法理解为什么替换模式会按原样出现在我的日志行中。任何帮助是极大的赞赏。