小编use*_*584的帖子

将Log4J与LogStash一起使用

我是LogStash的新手.我在Log4J中有一些从Java应用程序编写的日志.我正在尝试将这些日志放入ElasticSearch.对于我的生活,我似乎无法让它始终如一地运作.目前,我正在使用以下logstash配置:

input {
  file {
    type => "log4j"
    path => "/home/ubuntu/logs/application.log"
  }
}
filter {
  grok {
    type => "log4j"
    add_tag => [ "ApplicationName" ]
    match => [ "message", "%{TIMESTAMP_ISO8601:timestamp}  %{LOGLEVEL:level}" ]
  }
}
output {
  elasticsearch {
    protocol => "http"
    codec => "plain"
    host => "[myIpAddress]"
    port => "[myPort]"
  }
}
Run Code Online (Sandbox Code Playgroud)

这种配置似乎很受欢迎.我不知道为什么.例如,我有两条消息.一个工作,另一个抛出解析失败.然而,我不确定为什么.以下是消息及其各自的结果:

Tags                   Message
------                 -------
["_grokparsefailure"]  2014-04-04 20:14:11,613 TRACE c.g.w.MyJavaClass [pool-2- 
                       thread-6] message was null from https://domain.com/id-1/env-
                       MethodName

["ApplicationName"]    2014-04-04 20:14:11,960 TRACE c.g.w.MyJavaClass [pool-2-
                       thread-4] message was null …
Run Code Online (Sandbox Code Playgroud)

log4j logstash

28
推荐指数
2
解决办法
4万
查看次数

在Mac OS X Mavericks上设置Kibana

我正在尝试了解ELK堆栈(ElasticSearch,Logstash和Kibana).为了开始,我一直在浏览http://logstash.net/docs/1.4.0/tutorials/getting-started-with-logstash上的"入门指南" .我一直在Mac OS X Mavericks安装上执行这些步骤.不过,我确实做了一件不同的事情.

下载Logstash和Elasticsearch tarball后,我将其内容复制到以下位置:

  • Logstash:/Applications/dev/logstash/1.4.0/
  • Elasticsearch:/Applications/dev/Elasticsearch/1.1.0

然后,我使用终端中的以下命令启动Elasticsearch:

sudo /Applications/dev/Elasticsearch/1.1.0/bin/elasticsearch
Run Code Online (Sandbox Code Playgroud)

然后我开始一个新的终端窗口.在新的终端窗口中,我使用以下命令启动Logstash:

sudo /Applications/dev/logstash/1.4.0/bin/logstash -e 'input { stdin { } } output { elasticsearch { host => localhost } } '
Run Code Online (Sandbox Code Playgroud)

Logstash似乎开始很好.如果我在入门指南中输入"你知道,对于日志",我可以使用POSTMAN查看结果.但是,我被困在Kibana身上.

我使用以下命令下载了Kibana:

git clone https://github.com/elasticsearch/kibana.git kibana
Run Code Online (Sandbox Code Playgroud)

我已将下载的文件放入/Applications/dev/kibana/3.0.0.我现在仍然坚持如何在网络浏览器中实际使用Kibana.我知道我需要提供这些文件.我看到这个示例中的服务器内容.但是,我不确定是否

  1. Kibana有一个推荐的Web服务器
  2. 如何在Mac OS X计算机上设置网站.如果我在Windows上,我只需使用IIS并将其指向我的目录.我确信在Mac OS X上有类似的东西.但是,我不确定那是什么.

谢谢!

macos webserver kibana

9
推荐指数
3
解决办法
2万
查看次数

使用LoDash对Json数组进行排序

我有一个JSON数组,其一般结构如下:

var json = [ 
  { key: 'firstName', value: 'Bill' },
  { key: 'lastName',  value: 'Mans' },
  { key: 'phone', value: '123.456.7890' }
];
Run Code Online (Sandbox Code Playgroud)

实际上,会有更多的键/值对.无论哪种方式,我都试图使用Lodash按键值对此数组进行排序.目前,我正在尝试以下方法:

_.map(_.sortBy(json, key), _.values);
Run Code Online (Sandbox Code Playgroud)

但是,这会导致错误,指出:

[ReferenceError: key is not defined]
Run Code Online (Sandbox Code Playgroud)

我怀疑它是因为密钥没有用引号括起来,如文档中所示.不幸的是,我实际上并没有控制json的格式.实际上它被其他开发者使用,我是最后一个使用它.有没有办法让我使用lodash按键名对json数组进行排序?如果是这样,怎么样?

谢谢

javascript json lodash

7
推荐指数
1
解决办法
2万
查看次数

在Logstash中解析JSON

我有一些Log4J2生成的日志文件.我正在使用log4j2.xml配置文件中的JSONLayout将日志输出到.json文件中.我的JSONLayout定义如下:

<JSONLayout complete="false"></JSONLayout>
Run Code Online (Sandbox Code Playgroud)

当日志输入到我的机器上的日志文件中时,它们会一个接一个地附加,并在logs.log中看起来像这样:

  {
    "logger":"com.mycompany.myLogger",
    "timestamp":"1396792374326",
    "level":"ERROR",
    "thread":"pool-2-thread-2",
    "message":"System: unable to perform action",
    "throwable":"java.lang.NullPointerException\\n\tat com.myCompany.MyClass $.java:432)\\n\tat java.lang.Thread.run(Thread.java:744)\\n"
  },
Run Code Online (Sandbox Code Playgroud)

我正在尝试构造此JSON,以便我可以从ElasticSearch查询它.在此过程中,我正在尝试向所有记录添加自定义字段.为此,我使用以下内容:

input {
  file {
    type => "json"
    path => "/var/logs/myApp/logs.log"
  }
}
filter {
  json {
    add_tag => [ "HardcodedTagName"]
    source => "message"
  }
}
output {
  elasticsearch {
    protocol => "http"
    codec => "json"
    host => "[myServerAddress]"
    port => "9200"
  }
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我的自定义标签似乎没有被添加.与此同时,我真的想将我的JSON分解为我可以在ElasticSearch中查询的字段.我想查询的内容清晰可见.他们是:

  • 水平
  • 信息
  • 时间戳

然而,我似乎无法获得这些信息.当我在Kibana中看到JSON记录时,我只看到如下内容:

{
  "_index": "logstash-2014.04.07",
  "_type": "json",
  "_id": "tG-s6-5pSnq5HZwLhM6Dxg",
  "_score": null,
  "_source": …
Run Code Online (Sandbox Code Playgroud)

log4j logstash

5
推荐指数
1
解决办法
7969
查看次数

Lucene查询带空格的字段语法

我正在尝试执行两个Lucene查询.第一个有效.第二个没有.我的第一个查询看起来像这样:

level:"dangerous"
Run Code Online (Sandbox Code Playgroud)

我的第二个查询看起来像这样:

IP address:"11.22.333.444"
Run Code Online (Sandbox Code Playgroud)

我没有收到查询错误.但是,我知道有匹配IP地址的文档.出于这个原因,我怀疑"IP"和"地址"之间的空间是导致问题的原因.但是,我不是Lucene的专家.所以,我不确定我是否正确.

当我使用PostMan查看我的结果集时,我可以看到一个包含如下字段的文档:

"IP address": "11.22.333.444"
Run Code Online (Sandbox Code Playgroud)

如果我的查询是正确的,有人可以告诉我吗?或者,如果我遗失了什么?

谢谢!

lucene

5
推荐指数
1
解决办法
2727
查看次数

标签 统计

log4j ×2

logstash ×2

javascript ×1

json ×1

kibana ×1

lodash ×1

lucene ×1

macos ×1

webserver ×1