mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
ipMonitors fixed
This commit is contained in:
116
dashboard/package-lock.json
generated
116
dashboard/package-lock.json
generated
@@ -6410,21 +6410,6 @@
|
||||
"moment-timezone": "^0.5.x"
|
||||
}
|
||||
},
|
||||
"cross-fetch": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz",
|
||||
"integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==",
|
||||
"requires": {
|
||||
"node-fetch": "2.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"node-fetch": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
@@ -7589,6 +7574,24 @@
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
|
||||
},
|
||||
"encoding": {
|
||||
"version": "0.1.13",
|
||||
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
|
||||
"integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
|
||||
"requires": {
|
||||
"iconv-lite": "^0.6.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"iconv-lite": {
|
||||
"version": "0.6.2",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz",
|
||||
"integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==",
|
||||
"requires": {
|
||||
"safer-buffer": ">= 2.1.2 < 3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||
@@ -8672,11 +8675,6 @@
|
||||
"ua-parser-js": "^0.7.18"
|
||||
}
|
||||
},
|
||||
"fbjs-css-vars": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
|
||||
"integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
|
||||
},
|
||||
"fd-slicer": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
|
||||
@@ -8857,6 +8855,15 @@
|
||||
"readable-stream": "^2.3.6"
|
||||
}
|
||||
},
|
||||
"flux": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz",
|
||||
"integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=",
|
||||
"requires": {
|
||||
"fbemitter": "^2.0.0",
|
||||
"fbjs": "^0.8.0"
|
||||
}
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.5.10",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
|
||||
@@ -10362,13 +10369,6 @@
|
||||
"requires": {
|
||||
"node-fetch": "^1.0.1",
|
||||
"whatwg-fetch": ">=0.10.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"node-fetch": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"isstream": {
|
||||
@@ -11836,6 +11836,13 @@
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
|
||||
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
|
||||
@@ -12098,6 +12105,15 @@
|
||||
"tslib": "^2.0.3"
|
||||
}
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
|
||||
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
|
||||
"requires": {
|
||||
"encoding": "^0.1.11",
|
||||
"is-stream": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"node-forge": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
|
||||
@@ -12618,13 +12634,6 @@
|
||||
"wordwrap": "~0.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
||||
@@ -12928,6 +12937,15 @@
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
||||
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
|
||||
},
|
||||
"ping": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/ping/-/ping-0.4.0.tgz",
|
||||
"integrity": "sha512-qymcd5Bwv74b9o7qzAduN8wffr3ba11ZLBjY6gPQR2LpQ++9He8keSRFSaBb3OcR4SvXCWhi9VbLD1ycUNhz9Q==",
|
||||
"requires": {
|
||||
"q": "1.x",
|
||||
"underscore": "^1.12.0"
|
||||
}
|
||||
},
|
||||
"pinkie": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
|
||||
@@ -14863,31 +14881,6 @@
|
||||
"react-base16-styling": "^0.6.0",
|
||||
"react-lifecycles-compat": "^3.0.4",
|
||||
"react-textarea-autosize": "^6.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"fbjs": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz",
|
||||
"integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==",
|
||||
"requires": {
|
||||
"cross-fetch": "^3.0.4",
|
||||
"fbjs-css-vars": "^1.0.0",
|
||||
"loose-envify": "^1.0.0",
|
||||
"object-assign": "^4.1.0",
|
||||
"promise": "^7.1.1",
|
||||
"setimmediate": "^1.0.5",
|
||||
"ua-parser-js": "^0.7.18"
|
||||
}
|
||||
},
|
||||
"flux": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/flux/-/flux-4.0.0.tgz",
|
||||
"integrity": "sha512-VDBpL4SaQF98WULGbSOlRhyl3KNryXsN+n0HbQrsL+v+ceHvpAPJc9Dm+LHFpHi133zS8AjpmCUQJa415VGZ+A==",
|
||||
"requires": {
|
||||
"fbemitter": "^2.0.0",
|
||||
"fbjs": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"react-lifecycles-compat": {
|
||||
@@ -17760,6 +17753,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"underscore": {
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.0.tgz",
|
||||
"integrity": "sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ=="
|
||||
},
|
||||
"unescape-js": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/unescape-js/-/unescape-js-1.1.4.tgz",
|
||||
|
||||
14
probe/package-lock.json
generated
14
probe/package-lock.json
generated
@@ -2309,6 +2309,15 @@
|
||||
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
|
||||
"dev": true
|
||||
},
|
||||
"ping": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/ping/-/ping-0.4.0.tgz",
|
||||
"integrity": "sha512-qymcd5Bwv74b9o7qzAduN8wffr3ba11ZLBjY6gPQR2LpQ++9He8keSRFSaBb3OcR4SvXCWhi9VbLD1ycUNhz9Q==",
|
||||
"requires": {
|
||||
"q": "1.x",
|
||||
"underscore": "^1.12.0"
|
||||
}
|
||||
},
|
||||
"please-upgrade-node": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
|
||||
@@ -2370,6 +2379,11 @@
|
||||
"escape-goat": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"q": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
|
||||
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.7.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
"node-cron": "^2.0.3",
|
||||
"node-fetch": "^2.6.1",
|
||||
"node-ssh": "^11.1.1",
|
||||
"ping": "^0.4.0",
|
||||
"vm2": "^3.9.2",
|
||||
"winston": "^2.4.0",
|
||||
"winston-slack-transport": "^2.0.0"
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
/* eslint-disable no-console */
|
||||
const ApiService = require('../utils/apiService');
|
||||
const ErrorService = require('../utils/errorService');
|
||||
const fetch = require('node-fetch');
|
||||
const sslCert = require('get-ssl-certificate');
|
||||
const https = require('https');
|
||||
const httpsAgent = new https.Agent({
|
||||
rejectUnauthorized: false,
|
||||
});
|
||||
const ping = require('ping');
|
||||
// it collects all monitors then ping them one by one to store their response
|
||||
// checks if the IP Address of the IP monitor is up or down
|
||||
// creates incident if a IP Address is down and resolves it when they come back up
|
||||
@@ -53,52 +48,22 @@ const pingfetch = async IPAddress => {
|
||||
let res = null;
|
||||
|
||||
try {
|
||||
let sslCertificate, response, data;
|
||||
try {
|
||||
const abosluteURL = `https://${IPAddress}`;
|
||||
response = await fetch(abosluteURL, {
|
||||
timeout: 120000,
|
||||
...(IPAddress.startsWith('https') && { agent: httpsAgent }),
|
||||
headers: {
|
||||
'User-Agent':
|
||||
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36',
|
||||
},
|
||||
});
|
||||
res = new Date().getTime() - now;
|
||||
data = await response.text();
|
||||
const urlObject = new URL(abosluteURL);
|
||||
if (urlObject.protocol === 'https:') {
|
||||
const certificate = await sslCert.get(urlObject.hostname);
|
||||
if (certificate) {
|
||||
sslCertificate = {
|
||||
issuer: certificate.issuer,
|
||||
expires: certificate.valid_to,
|
||||
fingerprint: certificate.fingerprint,
|
||||
selfSigned: false,
|
||||
};
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
if (e.code === 'DEPTH_ZERO_SELF_SIGNED_CERT') {
|
||||
response = { status: 200 };
|
||||
sslCertificate = {
|
||||
selfSigned: true,
|
||||
};
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
const response = await ping.promise.probe(IPAddress, {
|
||||
timeout: 120,
|
||||
extra: ['-i', '2'],
|
||||
});
|
||||
|
||||
const isAlive = response ? response.alive : false;
|
||||
|
||||
res = new Date().getTime() - now;
|
||||
|
||||
resp = {
|
||||
status: response.status,
|
||||
body: data,
|
||||
sslCertificate,
|
||||
status: isAlive ? 200 : 503,
|
||||
body: null,
|
||||
};
|
||||
rawResp = {
|
||||
headers:
|
||||
response && response.headers && response.headers.raw()
|
||||
? response.headers.raw()
|
||||
: null,
|
||||
body: null,
|
||||
status: isAlive ? 200 : 503,
|
||||
};
|
||||
} catch (error) {
|
||||
res = new Date().getTime() - now;
|
||||
|
||||
Reference in New Issue
Block a user