Added file logging
This commit is contained in:
parent
67df0ea9f6
commit
53f732baa6
@ -7,6 +7,7 @@ Le due variabili **non** possono essere usate nello stesso momento.
|
||||
Per inserire più di un peer nelle variabili d'ambiente, separarli con un `;`. Non inserire spazi o altri caratteri, solo i nomi/ID dei peer e `;` sono accettati.
|
||||
Se vengono specificati degli hostname o degli ID non validi insieme a degli hostname o degli ID validi, quelli non validi saranno ignorati.
|
||||
Se nessuna delle due variabili vengono specificate, il programma monitorerà tutti i peer registrati.
|
||||
Il file di log è disponibile in `/var/log/NetBird-UptimeKuma.log`
|
||||
|
||||
## Per iniziare ad usare il programma:
|
||||
1- Recarsi su https://app.netbird.io/team/users
|
||||
@ -22,6 +23,6 @@ Se nessuna delle due variabili vengono specificate, il programma monitorerà tut
|
||||
## Docker
|
||||
|
||||
Docker run:
|
||||
`docker run -p 3000:3000 -e BASE_TOKEN=<token> -e HOSTNAMES="<hostname1>;<hostname2>" test`
|
||||
`docker run -p 3000:3000 -e BASE_TOKEN=<token> -e HOSTNAMES="<hostname1>;<hostname2>" -v /var/log/NetBird-UptimeKuma.log:/var/log/NetBird-UptimeKuma.log test`
|
||||
|
||||
Per il Docker compose, vedere il file relativo.
|
||||
@ -7,4 +7,6 @@ services:
|
||||
environment:
|
||||
BASE_TOKEN: ""
|
||||
HOSTNAMES: ""
|
||||
HOSTIDS: ""
|
||||
HOSTIDS: ""
|
||||
volumes:
|
||||
/var/log/NetBird-UptimeKuma.log:/var/log/NetBird-UptimeKuma.log
|
||||
20
hosts.js
20
hosts.js
@ -5,7 +5,7 @@ var monitorInterval;
|
||||
|
||||
async function Monitoring() {
|
||||
await initHostList();
|
||||
console.log(`[${shared.now}] \nInizio monitoring`);
|
||||
Log(`[${shared.now}] \nInizio monitoring`);
|
||||
//monitora tutti gli host della lista
|
||||
shared.eventEmitter.on("tokenRenewalStart", () => {
|
||||
clearInterval(monitorInterval);
|
||||
@ -38,7 +38,7 @@ async function isConnected(hostID) {
|
||||
},
|
||||
}
|
||||
);
|
||||
console.log(`[${shared.now}] ${hostID} connected: ${response.data.connected}`);
|
||||
Log(`[${shared.now}] ${hostID} connected: ${response.data.connected}`);
|
||||
return response.data.connected;
|
||||
}
|
||||
|
||||
@ -69,7 +69,7 @@ async function initHostList() {
|
||||
hostIDs.push(host.id);
|
||||
});
|
||||
} catch (error) {
|
||||
console.log(
|
||||
Log(
|
||||
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
||||
);
|
||||
process.exit(3);
|
||||
@ -88,7 +88,7 @@ async function initHostList() {
|
||||
);
|
||||
hostIDs.push(response.data[0].id);
|
||||
} catch (error) {
|
||||
console.log(
|
||||
Log(
|
||||
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
||||
);
|
||||
process.exit(3);
|
||||
@ -115,7 +115,7 @@ async function initHostList() {
|
||||
);
|
||||
hostIDs.push(response.data.id);
|
||||
} catch (error) {
|
||||
console.log(
|
||||
Log(
|
||||
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
||||
);
|
||||
process.exit(3);
|
||||
@ -134,7 +134,7 @@ async function initHostList() {
|
||||
);
|
||||
hostIDs.push(response.data.id);
|
||||
} catch (error) {
|
||||
console.log(
|
||||
Log(
|
||||
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
||||
);
|
||||
process.exit(3);
|
||||
@ -142,7 +142,7 @@ async function initHostList() {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log(
|
||||
Log(
|
||||
`[${shared.now}] Nessun peer specificato, verranno monitorati tutti i peer disponibili`
|
||||
);
|
||||
try {
|
||||
@ -156,13 +156,13 @@ async function initHostList() {
|
||||
hostIDs.push(element.id);
|
||||
});
|
||||
} catch (error) {
|
||||
console.log(`[${shared.now}] ${error}`);
|
||||
Log(`[${shared.now}] ${error}`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`[${shared.now}] ID rilevati:`);
|
||||
Log(`[${shared.now}] ID rilevati:`);
|
||||
hostIDs.forEach((element) => {
|
||||
console.log(`[${shared.now}] ${element}`);
|
||||
Log(`[${shared.now}] ${element}`);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
9
index.js
9
index.js
@ -1,5 +1,6 @@
|
||||
const { Monitoring } = require("./hosts.js");
|
||||
const { TokenRenew } = require("./tokens.js");
|
||||
const { Log } = require("./logs.js");
|
||||
const EventEmitter = require("node:events");
|
||||
const shared = require("./shared.js");
|
||||
const express = require("express");
|
||||
@ -15,20 +16,20 @@ global.hour = minute * 60;
|
||||
global.day = hour * 24;
|
||||
|
||||
app.listen(port, () => {
|
||||
console.log(`[${shared.now}] Il server è online sulla porta ${port}`);
|
||||
Log(`[${shared.now}] Il server è online sulla porta ${port}`);
|
||||
});
|
||||
|
||||
if ("BASE_TOKEN" in process.env) {
|
||||
console.log(`[${shared.now}] Token inserito: ${baseToken}`);
|
||||
Log(`[${shared.now}] Token inserito: ${baseToken}`);
|
||||
if (/^nbp_[a-z0-9A-Z]{36}$/.test(baseToken)) {
|
||||
Monitoring();
|
||||
TokenRenew();
|
||||
} else {
|
||||
console.log(`[${shared.now}] Il token inserito non è valido.`);
|
||||
Log(`[${shared.now}] Il token inserito non è valido.`);
|
||||
process.exit(2);
|
||||
}
|
||||
} else {
|
||||
console.log(`[${shared.now}] Nessun token inserito.`);
|
||||
Log(`[${shared.now}] Nessun token inserito.`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
|
||||
18
logs.js
Normal file
18
logs.js
Normal file
@ -0,0 +1,18 @@
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const shared = require("./shared.js");
|
||||
let logFile;
|
||||
|
||||
logFile = path.join("/var/log", "NetBird-UptimeKuma.log");
|
||||
console.log(`[${shared.now}] File di log situato in /var/log/NetBird-UptimeKuma.log`);
|
||||
|
||||
function writeToLog(message) {
|
||||
fs.appendFileSync(logFile, `${message}\n`);
|
||||
}
|
||||
|
||||
function Log(message) {
|
||||
console.log(message);
|
||||
writeToLog(message);
|
||||
}
|
||||
|
||||
module.exports = { Log };
|
||||
10
tokens.js
10
tokens.js
@ -21,7 +21,7 @@ async function TokenRenew() {
|
||||
await deleteToken(tokenID);
|
||||
shared.eventEmitter.emit("tokenRenewalEnd");
|
||||
} catch (error) {
|
||||
console.error(`[${shared.now}] Errore nel rinnovo del token: ${error}`);
|
||||
Log(`[${shared.now}] Errore nel rinnovo del token: ${error}`);
|
||||
}
|
||||
}, day - hour);
|
||||
}
|
||||
@ -33,7 +33,7 @@ async function getUserID() {
|
||||
Authorization: `Token ${shared.getToken()}`,
|
||||
},
|
||||
});
|
||||
console.log(`[${shared.now}] UserID: ${response.data.id}`);
|
||||
Log(`[${shared.now}] UserID: ${response.data.id}`);
|
||||
return response.data.id;
|
||||
}
|
||||
|
||||
@ -46,7 +46,7 @@ async function deleteToken(tokenID) {
|
||||
},
|
||||
}
|
||||
);
|
||||
console.log(`[${shared.now}] Token con ID ${tokenID} cancellato con successo`);
|
||||
Log(`[${shared.now}] Token con ID ${tokenID} cancellato con successo`);
|
||||
}
|
||||
|
||||
async function getCurrentTokenID() {
|
||||
@ -63,7 +63,7 @@ async function getCurrentTokenID() {
|
||||
const token = response.data.find((t) => t.name === "Uptime Kuma");
|
||||
if (!token) throw new Error("Token 'Uptime Kuma' non trovato");
|
||||
|
||||
console.log(`[${shared.now}] CurrentTokenID: ${token.id}`);
|
||||
Log(`[${shared.now}] CurrentTokenID: ${token.id}`);
|
||||
return token.id;
|
||||
}
|
||||
|
||||
@ -82,7 +82,7 @@ async function getNewToken() {
|
||||
},
|
||||
}
|
||||
);
|
||||
console.log(`[${shared.now}] Nuovo token creato: ${response.data.plain_token}`);
|
||||
Log(`[${shared.now}] Nuovo token creato: ${response.data.plain_token}`);
|
||||
return response.data.plain_token;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user