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.
|
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 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.
|
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:
|
## Per iniziare ad usare il programma:
|
||||||
1- Recarsi su https://app.netbird.io/team/users
|
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
|
||||||
|
|
||||||
Docker run:
|
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.
|
Per il Docker compose, vedere il file relativo.
|
||||||
@ -7,4 +7,6 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
BASE_TOKEN: ""
|
BASE_TOKEN: ""
|
||||||
HOSTNAMES: ""
|
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() {
|
async function Monitoring() {
|
||||||
await initHostList();
|
await initHostList();
|
||||||
console.log(`[${shared.now}] \nInizio monitoring`);
|
Log(`[${shared.now}] \nInizio monitoring`);
|
||||||
//monitora tutti gli host della lista
|
//monitora tutti gli host della lista
|
||||||
shared.eventEmitter.on("tokenRenewalStart", () => {
|
shared.eventEmitter.on("tokenRenewalStart", () => {
|
||||||
clearInterval(monitorInterval);
|
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;
|
return response.data.connected;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ async function initHostList() {
|
|||||||
hostIDs.push(host.id);
|
hostIDs.push(host.id);
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(
|
Log(
|
||||||
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
||||||
);
|
);
|
||||||
process.exit(3);
|
process.exit(3);
|
||||||
@ -88,7 +88,7 @@ async function initHostList() {
|
|||||||
);
|
);
|
||||||
hostIDs.push(response.data[0].id);
|
hostIDs.push(response.data[0].id);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(
|
Log(
|
||||||
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
||||||
);
|
);
|
||||||
process.exit(3);
|
process.exit(3);
|
||||||
@ -115,7 +115,7 @@ async function initHostList() {
|
|||||||
);
|
);
|
||||||
hostIDs.push(response.data.id);
|
hostIDs.push(response.data.id);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(
|
Log(
|
||||||
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
||||||
);
|
);
|
||||||
process.exit(3);
|
process.exit(3);
|
||||||
@ -134,7 +134,7 @@ async function initHostList() {
|
|||||||
);
|
);
|
||||||
hostIDs.push(response.data.id);
|
hostIDs.push(response.data.id);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(
|
Log(
|
||||||
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
`[${shared.now}] Errore nella verifica e aggiunta al monitoraggio di un host: ${error}`
|
||||||
);
|
);
|
||||||
process.exit(3);
|
process.exit(3);
|
||||||
@ -142,7 +142,7 @@ async function initHostList() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log(
|
Log(
|
||||||
`[${shared.now}] Nessun peer specificato, verranno monitorati tutti i peer disponibili`
|
`[${shared.now}] Nessun peer specificato, verranno monitorati tutti i peer disponibili`
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
@ -156,13 +156,13 @@ async function initHostList() {
|
|||||||
hostIDs.push(element.id);
|
hostIDs.push(element.id);
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} 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) => {
|
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 { Monitoring } = require("./hosts.js");
|
||||||
const { TokenRenew } = require("./tokens.js");
|
const { TokenRenew } = require("./tokens.js");
|
||||||
|
const { Log } = require("./logs.js");
|
||||||
const EventEmitter = require("node:events");
|
const EventEmitter = require("node:events");
|
||||||
const shared = require("./shared.js");
|
const shared = require("./shared.js");
|
||||||
const express = require("express");
|
const express = require("express");
|
||||||
@ -15,20 +16,20 @@ global.hour = minute * 60;
|
|||||||
global.day = hour * 24;
|
global.day = hour * 24;
|
||||||
|
|
||||||
app.listen(port, () => {
|
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) {
|
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)) {
|
if (/^nbp_[a-z0-9A-Z]{36}$/.test(baseToken)) {
|
||||||
Monitoring();
|
Monitoring();
|
||||||
TokenRenew();
|
TokenRenew();
|
||||||
} else {
|
} else {
|
||||||
console.log(`[${shared.now}] Il token inserito non è valido.`);
|
Log(`[${shared.now}] Il token inserito non è valido.`);
|
||||||
process.exit(2);
|
process.exit(2);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log(`[${shared.now}] Nessun token inserito.`);
|
Log(`[${shared.now}] Nessun token inserito.`);
|
||||||
process.exit(1);
|
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);
|
await deleteToken(tokenID);
|
||||||
shared.eventEmitter.emit("tokenRenewalEnd");
|
shared.eventEmitter.emit("tokenRenewalEnd");
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`[${shared.now}] Errore nel rinnovo del token: ${error}`);
|
Log(`[${shared.now}] Errore nel rinnovo del token: ${error}`);
|
||||||
}
|
}
|
||||||
}, day - hour);
|
}, day - hour);
|
||||||
}
|
}
|
||||||
@ -33,7 +33,7 @@ async function getUserID() {
|
|||||||
Authorization: `Token ${shared.getToken()}`,
|
Authorization: `Token ${shared.getToken()}`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
console.log(`[${shared.now}] UserID: ${response.data.id}`);
|
Log(`[${shared.now}] UserID: ${response.data.id}`);
|
||||||
return 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() {
|
async function getCurrentTokenID() {
|
||||||
@ -63,7 +63,7 @@ async function getCurrentTokenID() {
|
|||||||
const token = response.data.find((t) => t.name === "Uptime Kuma");
|
const token = response.data.find((t) => t.name === "Uptime Kuma");
|
||||||
if (!token) throw new Error("Token 'Uptime Kuma' non trovato");
|
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;
|
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;
|
return response.data.plain_token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user