标签: elastic-stack

Django服务器没有将日志发送到Logstash

我正在使用ELK堆栈从我的Django服务器进行集中式日志记录.我的ELK堆栈位于远程服务器上,logstash.conf如下所示:

input {
    tcp {
    port => 5959
    codec => json
  }
}
output {
  elasticsearch {
    hosts => ["xx.xx.xx.xx:9200"]
  }
}
Run Code Online (Sandbox Code Playgroud)

两个服务elasticsearch和logstash都正常工作(使用检查docker-compose logs logstash).

我的Django服务器的设置文件的日志配置如下:

LOGGING = {
  'version': 1,
  'handlers': {
        'logstash': {
            'level': 'INFO',
            'class': 'logstash.TCPLogstashHandler',
            'host': 'xx.xx.xx.xx',
            'port': 5959, # Default value: 5959
            'version': 0, # Version of logstash event schema. Default value: 0 (for backward compatibility of the library)
            'message_type': 'django',  # 'type' field in logstash message. Default value: 'logstash'.
            'fqdn': …
Run Code Online (Sandbox Code Playgroud)

python django logstash elastic-stack

12
推荐指数
1
解决办法
2104
查看次数

使用 Query DSL 查询某个字段是否包含字符串

我正在尝试过滤 Kibana 以查找包含字符串“pH”的字段。该字段称为extra.monitor_value_name. 潜在值的示例有Temperature_ABC01DO_ABC01、 或pH_ABC01

Kibana 的 Elasticsearch Query DSL 似乎没有“包含字符串”,因此我需要自定义查询。

我是 Query DSL 的新手,您能帮我创建查询吗?

另外,将其称为 Query DSL 是否合适?我什至不确定措辞是否正确。

elasticsearch elasticsearch-dsl elastic-stack

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

如何使用Express登录Node.js到ELK?

我有一个带有Express的Node.js服务器应用程序.我想将其活动记录到ElasticSearch中,并使用Kibana可视化日志.

这样做的正确方法是什么?

我应该写一个json行的日志文件并用Logstash读取它吗?

node.js express elastic-stack

11
推荐指数
1
解决办法
8687
查看次数

是否存在用于命名/组织存储日志数据的Elasticsearch索引的约定?

我正在将Elasticsearch和Kibana设置为我们办公室的集中式日志记录平台.

我们有许多自定义实用程序和插件,我想跟踪用户的使用情况以及用户是否遇到任何错误.更不用说还有我想跟踪的服务器和预定工作.

因此,如果我有许多不同的日志数据源,所有这些源都会转到同一个弹性搜索集群,那么它们如何组织成索引和文档类型的约定或最佳实践呢?

Logstash使用的默认索引值是"logstash-%{+YYYY.MM.dd}".所以看起来最好用当前日期后缀任何索引名称,因为这样可以很容易地清除旧数据.

但是,Kibana允许添加可以在UI中选择的多个"索引模式".然而,我读过的所有教程都只提到创建一个单一的模式logstash-*.

如何在实践中使用多种索引模式?我是否只为我的数据的所有来源命名?如:

BackupUtility-%{+YYYY.MM.dd}
UserTracker-%{+YYYY.MM.dd}
ApacheServer-%{+YYYY.MM.dd}
Run Code Online (Sandbox Code Playgroud)

我在一些具有弹性搜索目标的工具中使用nLog.nLog和其他类似日志框架的约定是为源代码中的每个类都有一个"记录器".这些记录器是否应该转换为弹性搜索中的索引?

MyCompany.CustomTool.FooClass-%{+YYYY.MM.dd}
MyCompany.CustomTool.BarClass-%{+YYYY.MM.dd}
MyCompany.OtherTool.BazClass-%{+YYYY.MM.dd}
Run Code Online (Sandbox Code Playgroud)

或者这对于弹性搜索索引名称来说太过细化了,最好只坚持应用程序的单个日期索引?

CustomTool-%{+YYYY.MM.dd}
Run Code Online (Sandbox Code Playgroud)

elasticsearch kibana kibana-4 elastic-stack

11
推荐指数
2
解决办法
4980
查看次数

在Elasticsearch中更改类型和重新索引

我最近使用redis 2.8.24,Elasticsearch 1.2.2和Kibana 3.1升级了我的ELK堆栈(使用redis 3.2.3,Elasticsearch 2.3.5和Kibana 4.5.4的logstash 2.3.4)(logstash 1.4.1/1.4.2) 0.1).升级进行得很顺利,但升级后我有一些字段有冲突类型.此特定字段由logstash动态创建,因此Elasticsearch中没有整体映射.我花了相当多的时间搜索如何改变它.每篇在线文章都说我不能简单地改变现有数据的字段类型.我引用的许多文章都需要重新索引,但未能解释如何.以下是我更改类型和重新索引的确切步骤.

从需要更改字段类型的当前索引获取映射:

curl -XGET http://localhost:9200/logstash-2016.05.30/_mapping?pretty=1 > logstash-2016.05.30
Run Code Online (Sandbox Code Playgroud)

编辑logstash-2016.05.30文件,删除文件中的第二行(索引名称)和第二行(花括号).如果不这样做,将不会更新映射.我想如果你将索引名称编辑为新名称它可以工作,但我没有尝试(应该尝试我猜).

编辑logstash-2016.05.30文件并更改类型(即long为string或string为long).您可以使用类似字段使用的确切定义.

"http_status" : {
  "type" : "string",
  "norms" : {
    "enabled" : false
  },
  "fields" : {
    "raw" : {
      "type" : "string",
      "index" : "not_analyzed",
      "ignore_above" : 256
    }
  }
},
Run Code Online (Sandbox Code Playgroud)

改成:

"http_status" : {
  "type" : "long"
},
Run Code Online (Sandbox Code Playgroud)

接下来创建新索引(追加_new或任何你想要的)

curl -XPUT  http://localhost:9200/logstash-2016.05.30_new -d @logstash-2016.05.30
Run Code Online (Sandbox Code Playgroud)

仔细检查映射是否已正确创建

curl -XGET http://localhost:9200/logstash-2016.05.30_new/?pretty
Run Code Online (Sandbox Code Playgroud)

使用以下方法重新索引:

curl -XPOST  http://localhost:9200/_reindex -d '{
"source": {
"index" : "logstash-2016.05.30"
},
"dest" …
Run Code Online (Sandbox Code Playgroud)

elasticsearch reindex logstash kibana elastic-stack

11
推荐指数
1
解决办法
2205
查看次数

Elastic search AccessDeniedException[/usr/share/elasticsearch/data/nodes/0] -- 访问被拒绝错误

我正在尝试使用 nfs mount 作为我的 elasticsearch 数据目录,之前我使用的是主机存储。但是当我尝试打开我的容器时,我遇到了下面提到的错误:

 ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes/0];
es02    | Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes/0
es02    |   at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
es02    |   at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
es02    |   at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
es02    |   at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:388)
es02    |   at java.base/java.nio.file.Files.createDirectory(Files.java:694)
es02    |   at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:801)
es02    |   at java.base/java.nio.file.Files.createDirectories(Files.java:787)
es02    |   at org.elasticsearch.env.NodeEnvironment.lambda$new$0(NodeEnvironment.java:275)
es02    |   at org.elasticsearch.env.NodeEnvironment$NodeLock.<init>(NodeEnvironment.java:212)
es02    |   at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:272)
es02    |   at org.elasticsearch.node.Node.<init>(Node.java:362)
es02    |   at org.elasticsearch.node.Node.<init>(Node.java:289)

Run Code Online (Sandbox Code Playgroud)

我之前使用 docker-compose 时,我的集群工作正常,当我使用主机存储时,但当我尝试切换到 NFS 存储时,我遇到了上述错误。下面是我的 docker-compose 文件:

version: '3.3'
volumes:
  data:
    driver: local …
Run Code Online (Sandbox Code Playgroud)

elasticsearch docker docker-compose elastic-stack

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

Log4j 2 JSON模式布局+记录JSON有效负载

我正在使用ELK堆栈和log4j 2通过sl4j和json模式布局来记录消息.我的所有日​​志都记录为json消息.在我的一个日志中,我正在尝试记录json从第三方服务收到的响应.但是这个响应json主体没有附加到json结构中.但它更多地附加为包含转义字符的字符串.

如何记录最终日志.

 {
    "timeMillis": 1471862316416,
    "thread": "FioranoMQ Pubsub Session Thread",
    "level": "INFO",
    "loggerName": "com.mlp.eventing.bridge.fiorano.TopicMessageListener",
    "message": "{\"Msgtype\":\"SentToRabbitMqTest\",\"MessageData\":\"10\",\"opration\":\"devide\"}",
    "endOfBatch": false,
    "loggerFqcn": "org.apache.logging.slf4j.Log4jLogger",
    "threadId": 28,
    "threadPriority": 5
}
Run Code Online (Sandbox Code Playgroud)

在上面的消息段中作为转义字符串而不是整个json结构附加.我的预期出局应该是

{
    "timeMillis": 1471862316416,
    "thread": "FioranoMQ Pubsub Session Thread",
    "level": "INFO",
    "loggerName": "com.mlp.eventing.bridge.fiorano.TopicMessageListener",
    "message": {
        "Msgtype": "SentToRabbitMqTest",
        "MessageData": "10",
        "opration": "devide"
    },
    "endOfBatch": false,
    "loggerFqcn": "org.apache.logging.slf4j.Log4jLogger",
    "threadId": 28,
    "threadPriority": 5
}
Run Code Online (Sandbox Code Playgroud)

我期待使用神交过滤器提取的消息段的字段jsonshipper.conf

以下是我的配置: - log4j2.xml

<?xml version="1.0" …
Run Code Online (Sandbox Code Playgroud)

java logging json log4j2 elastic-stack

10
推荐指数
1
解决办法
4564
查看次数

如何检索OSSEC的日志警报到Elasticsearch(ELK)?

我试过这个教程.但它没有捕获OSSEC日志(警报,系统日志等),它只是给我这个消息我的Kibana应用程序.

找不到任何Elasticsearch数据在创建索引模式之前,您需要将一些数据索引到Elasticsearch中.

我知道有一些像这样的教程.但它需要使用wazuh包,我不想使用它,我只想使用纯OSSEC.我的OSSEC和ELK应用程序位于samw机器中

我的问题是,我如何将OSSEC与ELK集成?在开始连接OSSEC到ELK之前,我必须先做什么配置?

elastic-stack ossec

10
推荐指数
1
解决办法
903
查看次数

如何将 ElasticSearch 快照从存储库下载到本地计算机?

我正在使用来自弹性云的小型弹性搜索集群。
我需要:

  1. 从elasticsearch下载索引之一到我的本地机器进行分析
  2. 在本地设置elasticsearch节点并将该索引恢复到其中。

在 Kibana UI 部分中,Snapshot and Restore我可以看到我的快照和此提示:

使用存储库来存储和恢复 Elasticsearch 索引和集群的备份。

但是我如何将实际数据从elasticsearch索引下载到我的机器(作为一堆json)并将其导入到本地运行的elasticsearch中?

backup json elasticsearch elastic-stack

10
推荐指数
1
解决办法
4503
查看次数

AWS - 将多个lambda日志订阅到一个elasticsearch服务

我有两个由两个不同的lambda生成的日志组.当我将一个日志组订阅到我的elasticsearch服务时,它正在运行.但是,当我添加其他日志组时,我在cloudwatch生成的日志中出现以下错误:

"responseBody": "{\"took\":5,\"errors\":true,\"items\":[{\"index\":{\"_index\":\"cwl-2018.03.01\",\"_type\":\"/aws/lambda/lambda-1\",\"_id\":\"33894733850010958003644005072668130559385092091818016768\",\"status\":400,\"error\":
{\"type\":\"illegal_argument_exception\",\"reason\":\"Rejecting mapping update to [cwl-2018.03.01] as the final mapping would have more than 1 type: [/aws/lambda/lambda-1, /aws/lambda/lambda-2]\"}}}]}"
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题,并且在我的Elasticsearch服务中仍然有两个日志组,并可视化所有日志?

谢谢.

logging amazon-web-services elasticsearch amazon-cloudwatch elastic-stack

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