如何使用 Express 从 Node.js 登录到 ELK?
How to log from Node.js with Express to ELK?
我有一个带有 Express 的 Node.js 服务器应用程序。我想将其 activity 记录到 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");
我有一个带有 Express 的 Node.js 服务器应用程序。我想将其 activity 记录到 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");