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

标签 node.js express elastic-stack

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

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

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

最佳答案

我会推荐 log4js .它有一系列有用的附加程序,logstash 就是其中之一。它通过 UDP 工作。

这里是一个来自 log4js 网站的例子:

var log4js = require('../lib/log4js');

/*
 Sample logstash config:
   udp {
    codec => json
    port => 10001
    queue_size => 2
    workers => 2
    type => myAppType
  }
*/

log4js.configure({
  "appenders": [
    {
      type: "console",
      category: "myLogger"
    },
    {
      "host": "127.0.0.1",
      "port": 10001,
      "type": "logstashUDP",
      "logType": "myAppType", // Optional, defaults to 'category'
      "fields": {             // Optional, will be added to the 'fields' object in logstash
        "field1": "value1",
        "field2": "value2"
      },
      "layout": {
        "type": "pattern",
        "pattern": "%m"
      },
      "category": "myLogger"
    }
  ]
});

var logger = log4js.getLogger("myLogger");
logger.info("Test log message %s", "arg1", "arg2");

关于node.js - 如何使用 Express 从 Node.js 登录到 ELK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34638545/

相关文章:

c# - Node : How to generate Rfc2898DeriveBytes like C#?

javascript - 获取错误 : Promise rejected with no or falsy reason in mocha selenium node js

elasticsearch - Elasticsearch映射通过模板选择所有字段以更改其数据类型Elasticsearch

javascript - Express app.get 中间件不工作 `SyntaxError: Unexpected end of input`

elasticsearch - 如何在Elasticsearch中读取/var/log/wtmp日志

elasticsearch - 如何在ELK中分析来自多个来源的日志

node.js - 带有 REST API 的 CQRS

node.js - [nodejs]expressjs如何销毁过期的session?

javascript - Firebase Cloud 函数更新数据库中的所有条目

Node.js 子进程运行 python 代码没有响应