如何使用Express将Node.js登录到ELK? [英] How to log from Node.js with Express to ELK?

查看:201
本文介绍了如何使用Express将Node.js登录到ELK?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



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



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



谢谢

解决方案

我建议 log4js 。它有一系列有用的appender,logstash是其中之一。它可以通过UDP工作。



以下是从log4js站点获取的示例:



  var log4js = require('../ lib / log4js'); / * Sample logstash config:udp {codec => json port => 10001 queue_size => 2名工人=> 2 type => myAppType} * / log4js.configure({appenders:[{type:console,category:myLogger},{host:127.0.0.1,port:10001,type logstashUDP,logType:myAppType,//可选,默认为categoryfields:{//可选,将添加到logstash中的'fields'对象field1:value1,field2 value2},layout:{type:pattern,pattern:%m},category:myLogger}]}); var logger = log4js.getLogger( myLogger); logger.info(测试日志消息%s,arg1,arg2);  


I have a Node.js server application with Express. I would like to log its activity into ElasticSearch and visualize the logs using Kibana.

What would be the right way to do that?

Should I write a log file of json lines and read it with Logstash?

Thanks

解决方案

I'd recommend log4js. It has a range of useful appenders, and logstash is one of them. It works over UDP.

Here is an example taken from the log4js site:

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");

这篇关于如何使用Express将Node.js登录到ELK?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆