OpenShift - отправка логов на внешний TCP-сервер - PullRequest
0 голосов
/ 15 февраля 2019

Я работаю над проектом node.js внутри OpenShift, который записывает сообщения системного журнала на внешний TCP-сервер Graylog.Мой код не выдает никаких исключений, но я не вижу ни одного журнала в Graylog, как я могу проверить TCP-соединение между OpenShift и Graylog?

Для ведения журнала я использую winston-syslogМодуль , и я настроил его следующим образом:

let options = {
  protocol: config.getGraylogProtocol(), //tcp4
  host: config.getGraylogHost(), //without "https://", is that ok?
  port: config.getGraylogPort(),
  app_name: config.getAppName()
}
let syslogTransport = new winston.transports.Syslog(options);

И затем я добавляю этот транспорт в регистратор Winston.

Я пытался (для целей отладки)отправьте обычный текст в Graylog с TCP-клиента следующим образом:

let net = require("net");
let client = new net.Socket();
client.connect(config.getGraylogPort(), config.getGraylogHost(), () => {
  console.log("CONNECTION WITH GRAYLOG ESTABLISHED"); // this executes!
  client.write("hi graylog"); // but I can't see neither this on graylog
  client.end("bye graylog"); // nor this
});
client.on("data", data => {
  console.log("RECEIVED: " + data); //this doesn't executes
  client.destroy();
});
client.on('error', () => {
  console.log("TCP CONNECTION CLOSED"); //this doesn't executes
})
client.on('close', err => {
  console.log("ERROR ON TCP: " + err); //this doesn't executes
})

Этот блок кода окружен блоком try-catch, но было сгенерировано любое исключение.

...