Commit Graph

395 Commits

Author SHA1 Message Date
Matthew Nickson f9be918246
Add support for MySQL/MariaDB databases #1817
This commit adds support for monitoring MySQL and MariaDB database
servers. The mysql2 package was choosen over mysql as it provides a
promise wrapper and is reportedly faster than the original mysql package
whilst still maintaining the same API.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-10-02 01:52:53 +01:00
Louis Lam 204339fbed Make two functions to convert ISO 8601 <=> YYYY-MM-DD hh:mm:ss 2022-09-28 00:48:15 +08:00
Louis Lam b1465c0282 - Maintenance standardize datetime format to YYYY-MM-DD hh:mm:ss
- Import dayjs extensions one time only
- Maintenance activeCondition centralize
2022-09-28 00:20:17 +08:00
Louis Lam 4002b9f577 [WIP] Checking maintenance time using maintenance_timeslot table 2022-09-27 20:44:44 +08:00
Justin Tisdale 6537f4fe74 content-type change 2022-09-26 17:09:10 -04:00
Justin Tisdale 5809088f27 Don't override a user-defined content-type header 2022-09-26 15:52:43 -04:00
Louis Lam 3f63cb246b [WIP] Handle timezone offset for timeRange 2022-09-25 19:38:28 +08:00
Louis Lam f11dfc8f43 [WIP] Add/Edit Maintenance with new UI and recurring 2022-09-24 19:18:24 +08:00
Louis Lam 9d99c39f30 Update Maintenance UI for recurring 2022-09-24 02:33:29 +08:00
Louis Lam 2f67d26702 Merge manually, as this part had been moved 2022-09-17 16:20:10 +08:00
Louis Lam 90761cf831 Merge remote-tracking branch 'origin/master' into karelkryda_master
# Conflicts:
#	server/database.js
#	server/model/monitor.js
#	server/routers/api-router.js
#	server/server.js
#	src/components/HeartbeatBar.vue
#	src/components/MonitorList.vue
#	src/icon.js
#	src/layouts/Layout.vue
#	src/mixins/datetime.js
#	src/mixins/socket.js
#	src/router.js
#	src/util.js
2022-09-17 16:12:57 +08:00
Justin Tisdale 6ec6410808 Merge branch 'master' into feature/expand-http-payload-support 2022-08-20 10:24:18 -04:00
Matthew Nickson c3d655afb4
Merge branch 'master' into feature/#1891-set-ping-packet-size 2022-08-13 21:15:16 +02:00
minhhn3 6bb79597e8 fix: resolve merge conflict 2022-08-13 13:26:05 +07:00
Louis Lam de6e1e7ddd Merge remote-tracking branch 'origin/master' into introduce-resend-interval
# Conflicts:
#	server/database.js
2022-08-13 13:24:00 +08:00
Justin Tisdale 31cc328839 fix lint 2022-08-11 21:08:13 -04:00
Justin Tisdale 0d58526f25 Merge branch 'master' into feature/expand-http-payload-support 2022-08-11 21:04:11 -04:00
Justin Tisdale 2b9bf095a6 Add non-json support for http body 2022-08-11 20:57:03 -04:00
Louis Lam 3b3763351b Merge remote-tracking branch 'origin/master' into radius-check
# Conflicts:
#	server/database.js
#	server/model/monitor.js
#	server/server.js
#	server/util-server.js
#	src/pages/EditMonitor.vue
2022-08-11 21:08:06 +08:00
minhhn3 34ab6142db fix: remove new space line 2022-08-08 19:38:43 +07:00
Louis Lam d0d1e0de28 Merge remote-tracking branch 'origin/master' into introduce-resend-interval
# Conflicts:
#	src/pages/EditMonitor.vue
2022-08-05 15:40:06 +08:00
minhhn3 2232236a7a [empty commit] pull request for add gRPC protocol 2022-08-03 13:39:31 +07:00
Minh Hoàng dcecd10c88
Feat/add gRPC protocol (#1)
* feat: added monitor with gRPC

Co-authored-by: minhhn3 <minhhn3@vng.com.vn>
2022-08-03 12:00:39 +07:00
Louis Lam 8ced61697a Fix save docker host issue 2022-07-30 19:48:12 +08:00
Moritz R 60e7824ff0
Merge branch 'master' into master 2022-07-24 14:37:22 +02:00
Louis Lam 88afd662db Merge remote-tracking branch 'origin/master' into postgres
# Conflicts:
#	package-lock.json
#	package.json
2022-07-24 14:07:30 +08:00
c0derMo e356d5f623 Fixing linting & adding documentation 2022-07-22 15:57:40 +00:00
c0derMo 0d098b0958 Docker Hosts are now a table & have their own dialog 2022-07-22 15:47:04 +00:00
Louis Lam 9a8b484ee8
Merge pull request #1853 from louislam/dns
Add cacheable-lookup
2022-07-18 23:46:55 +08:00
Louis Lam 1999541802 Merge remote-tracking branch 'origin/master' into dns 2022-07-18 23:25:14 +08:00
Louis Lam 2073f0c284 Bind cacheable-lookup to custom http agent 2022-07-18 22:33:35 +08:00
Matthew Nickson a54e58b4d6
Added Ping packet size #1891
This should fully implement #1891 by adding an extra field to the edit
monitor page and an extra column to the database. The user can now
set the size of the packet to send, it defaults to 56. A maximum limit
of 65500 was chosen to ensure that the total size of the packet does
not exceed the IPv4 maximum packet size and to comply with the limit
imposed by Windows.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-07-14 08:32:51 +01:00
Louis Lam d29955f3ba
Merge pull request #1741 from Computroniks/feature/#1221-clickable-hostaname-on-status-page
Added #1221 clickable hostname in status page
2022-07-06 15:09:26 +08:00
Louis Lam 27dbc021b4 Add standalone manifest.json for each status page. Close #1668 2022-07-04 21:58:27 +08:00
Louis Lam baa592bce3 Merge remote-tracking branch 'origin/master' into feature/#1221-clickable-hostaname-on-status-page 2022-07-04 18:21:56 +08:00
Louis Lam 1f5466a3e8 Revert #1598 2022-06-23 15:54:33 +08:00
Matthew Nickson f1d24782f8
Merge branch 'master' into feature/#1221-clickable-hostaname-on-status-page 2022-06-18 23:53:35 +01:00
Christopher Pickering 945288f0c0
Added postgres monitor 2022-06-15 12:12:47 -05:00
OidaTiftla ac27e6e2af Rename feature to: Resend Notification if Down X times consequently
Co-authored-by: Louis Lam <louislam@users.noreply.github.com>
2022-06-15 17:50:35 +02:00
OidaTiftla 869a040011
Merge branch 'master' into introduce-resend-interval 2022-06-15 16:19:47 +02:00
Moritz R ac449ec1c2
Merge branch 'master' into master 2022-06-15 11:33:00 +02:00
Christopher Pickering 660005b143
cleaned up code 2022-06-14 08:49:36 -05:00
Christopher Pickering 98f3c126e5
passed lint 2022-06-14 07:58:35 -05:00
sur.la.route cf2ca71dee
prevent null workstation #'s from passing..
to axios-ntlm
2022-06-14 07:42:53 -05:00
Aram Akhavan c690d1c3a1 fix timeout bypass for upside down push monitor 2022-06-13 22:05:58 -07:00
Louis Lam 6682839ec8 Merge remote-tracking branch 'origin/master' into ntml-auth
# Conflicts:
#	package-lock.json
#	package.json
#	server/database.js
#	server/model/monitor.js
#	server/server.js
#	server/util-server.js
2022-06-14 10:36:29 +08:00
Louis Lam 6424fe77ab Change successful log from `info` to `debug` in order to avoid large log and less disk usage 2022-06-13 21:15:47 +08:00
Louis Lam 6e43ef1dd3 Merge remote-tracking branch 'origin/master' into feat/cert-exp-settings
# Conflicts:
#	server/model/monitor.js
#	src/languages/en.js
2022-06-13 20:56:14 +08:00
Louis Lam a28ef56553 Merge remote-tracking branch 'gregdev/feature/axios-cached-dns-resolve' into feature/axios-cached-dns-resolve
# Conflicts:
#	package-lock.json
#	package.json
2022-06-13 18:53:19 +08:00
Louis Lam f570d41142 Merge remote-tracking branch 'origin/master' into feature/axios-cached-dns-resolve
# Conflicts:
#	package-lock.json
#	package.json
2022-06-13 18:50:43 +08:00
Matthew Nickson fbfa5a33ed
Added Clickable hostname on status page. #1221
This should fully implement #1221 by modifying the API and adding two
new properties to the result. The `sendUrl` property denotes if the URL
is sent and `url` is included when required.
Client side checks have been implemented in order to only show a link
when the URL is vaugely correct. I.e not "" or "https://". This prevents
the link from being included if the monitor type is not HTTP without
having to publicly expose the monitor type.
The exposure of the URL is configuarable for each monitor on each
status page by clicking on the link icon.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-06-11 17:23:12 +01:00
Louis Lam 04e22f17a9 Merge remote-tracking branch 'origin/master' into christopherpickering_master
# Conflicts:
#	package-lock.json
#	src/languages/en.js
2022-06-11 20:59:58 +08:00
Louis Lam 11243a6ca1
Merge pull request #1222 from NETivism/issue-1201
Show some pure text body in notification when keyword not found
2022-06-09 19:33:10 +08:00
Nelson Chan 2c0180f323
Fix: Fix error when status page desc. is null 2022-06-07 14:57:23 +08:00
Louis Lam 091158cfe7 [Status Page] Preload data 2022-06-01 13:05:12 +08:00
Louis Lam a674caa520 [Status Page] Add og meta tags 2022-05-31 22:53:48 +08:00
Karel Krýda 25262cfb91
Update server/model/monitor.js
Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-05-30 15:31:45 +02:00
Louis Lam c095767f4a [Status Page] SSR 2022-05-30 15:45:44 +08:00
Louis Lam ffb7ba176c Merge remote-tracking branch 'origin/master' into status-page-inject-html 2022-05-30 14:00:39 +08:00
Aram Akhavan ea10d89f51 show correct down message for first tick 2022-05-28 19:57:45 -07:00
Louis Lam 7f46223d68 Fix another log.debug call 2022-05-28 23:22:44 +08:00
Louis Lam df4ce811d9 Merge remote-tracking branch 'origin/master' into kaysond_master
# Conflicts:
#	server/model/monitor.js
2022-05-28 23:19:58 +08:00
Moritz R e9e78c26e5
Merge branch 'master' into master 2022-05-27 13:59:58 +02:00
Aram Akhavan ab4edf2092
Fix log.debug calls 2022-05-26 21:45:56 -07:00
Louis Lam 35b8e89457
Merge pull request #1473 from Computroniks/#1059-specify-dns-resolver-port
Added #1059: Allow to specify Resolver Port for DNS Monitor
2022-05-25 14:59:14 +08:00
c0derMo 32cfd411f8 Fixed style & code errors 2022-05-19 12:35:55 +00:00
Moritz R a9f3142cee
Merge branch 'master' into master 2022-05-19 14:24:02 +02:00
Nelson Chan b7ba6330db Feat: Add cert exp. settings 2022-05-19 16:49:34 +08:00
Sascha Kruse da99a57560 Merge remote-tracking branch 'fxgh/radius-check' into radius-check 2022-05-18 15:56:21 +02:00
Sascha Kruse 42d68edab0
(style) add trailing comma
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2022-05-18 15:55:36 +02:00
Sascha Kruse 019d638767 Merge remote-tracking branch 'ghupstream/master' into radius-check 2022-05-18 15:54:10 +02:00
Louis Lam 7a46b44d25 Merge remote-tracking branch 'origin/master' into karelkryda_master
# Conflicts:
#	src/components/HeartbeatBar.vue
2022-05-18 19:49:54 +08:00
Christopher Pickering ef73af391f
added option for ntlm authorization 2022-05-13 12:58:23 -05:00
Christopher Pickering c346ea7864
updated name on export 2022-05-13 08:57:06 -05:00
sur.la.route e198f2f1ab
updated format
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2022-05-12 19:54:02 -05:00
Christopher Pickering 87f933df4f
added sqlserver monitor 2022-05-12 12:48:03 -05:00
Sascha Kruse 398ecb7666 add radius check 2022-05-12 15:21:13 +02:00
Louis Lam 59be9bb971 working 2022-05-11 00:51:11 +08:00
Karel Krýda 7da9f139c1 Bug fix 2022-05-09 21:10:12 +02:00
Aram Akhavan bb7d67f717
Apply suggestions from code review
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2022-05-06 09:58:05 -07:00
Karel Krýda 9a35386841
Merge branch 'master' into master 2022-05-06 11:24:21 +02:00
Louis Lam 429ad384d0 Fix hardcoded path for error.log and move errorLog() to UptimeKumaServer.errorLog() 2022-05-06 14:41:34 +08:00
OidaTiftla 98ee9caf2c
Add variable for currentTime
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2022-05-05 15:55:33 +02:00
OidaTiftla 8e99cbf426 Merge branch 'master' into introduce-resend-interval 2022-05-04 22:58:40 +02:00
Greg Smith cbfecab850 switch to the more-up-to-date esm-wallaby
https://github.com/wallabyjs/esm
2022-05-04 15:45:18 +09:30
Greg Smith d0546afe71 fix esm require: no ugly warnings 2022-05-01 10:22:16 +09:30
Karel Krýda b4ffcc5555 Added JSDoc 2022-04-30 15:50:05 +02:00
Karel Krýda f78d01d770 Resolve lint errors 2022-04-30 14:57:08 +02:00
Greg Smith f4515ad8c5 add axios cached dns resolve to monitor 2022-04-30 21:40:47 +09:30
Karel Krýda ed84e56a85 Merge remote-tracking branch 'origin_kuma/master'
# Conflicts:
#	package-lock.json
#	server/database.js
#	server/model/monitor.js
#	server/routers/api-router.js
#	server/server.js
#	src/components/MonitorList.vue
#	src/components/PingChart.vue
#	src/icon.js
#	src/pages/DashboardHome.vue
#	src/pages/StatusPage.vue
#	src/router.js
#	src/util.js
2022-04-30 13:40:34 +02:00
Matthew Nickson 3c01e8732c
Merge branch 'master' into #1059-specify-dns-resolver-port 2022-04-27 18:26:11 +01:00
Louis Lam 1687de163c
Merge pull request #1565 from Saibamen/eslint
Fix some of ESLint warnings
2022-04-27 15:00:49 +08:00
Aram Akhavan 39df4eea92 Ssynchronize push monitor heartbeats to api calls
Includes a 1s buffer time to allow the push url to be called before the monitor is checked
2022-04-26 13:48:44 -07:00
Adam Stachowicz 5fbfacf5ce Fix ESlint warnings 2022-04-26 00:26:26 +02:00
Matthew Nickson d1a3cd047a
Merge branch 'master' into #1059-specify-dns-resolver-port 2022-04-24 01:06:45 +01:00
Matthew Nickson 46da5e51be
Fix JSDoc grammar
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-04-22 19:10:13 +01:00
Matthew Nickson 1eecdec2d9
Update JSDoc for better clarity
Co-authored-by: Nelson Chan <chakflying@hotmail.com>
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-04-22 18:42:47 +01:00
Matthew Nickson 09e61d9d63
Changed Array<T> to type[]
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-04-21 20:02:18 +01:00
Matthew Nickson 0083485d4c
Updated server/model/* JSDoc to match new methods
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-04-21 18:30:04 +01:00
OidaTiftla 7ed8ae9f7c Fix trailing space warning 2022-04-21 18:23:32 +02:00
OidaTiftla d6b591a513
Make comment more readable
Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-04-21 17:45:58 +02:00
Matthew Nickson 6d22ebedca
Merge branch 'master' into add-JSDoc-comments 2022-04-21 13:01:22 +01:00
OidaTiftla 60f8ab7285 Use new logging mechanism 2022-04-21 12:09:59 +02:00
OidaTiftla b7e2489d22
Merge branch 'master' into introduce-resend-interval 2022-04-21 11:58:04 +02:00
Louis Lam 359a490ae3 Fix #1510 2022-04-18 15:21:58 +08:00
Louis Lam 5fa62a888c Merge branch 'master' into mqtt2
# Conflicts:
#	server/database.js
#	server/util-server.js
2022-04-17 19:46:33 +08:00
Louis Lam e6a8a84278 Include only nessacary data in webhook 2022-04-17 19:30:58 +08:00
Louis Lam 47c72192e1 [eslint] Enable yoda and eqeqeq 2022-04-17 15:43:03 +08:00
Louis Lam d71c086447 Standardize array bracket spacing 2022-04-17 15:27:35 +08:00
Louis Lam 8eb83394f7 Refine UI/UX for custom css / footer text. Add switch for show/hide powered by 2022-04-17 14:53:13 +08:00
Matthew Nickson 45f44b183d
Add JSDoc to server/model/*
Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-04-16 21:11:45 +01:00
Louis Lam 8d8c38b1a8 Allow unused vars in args and fix more eslint issues 2022-04-17 01:39:49 +08:00
Louis Lam e34420368b Remove try-catch and fix username/password/port not working for mqtt 2022-04-17 01:06:47 +08:00
Louis Lam b1c7915bc1 Merge branch 'master' into mqtt2
# Conflicts:
#	package-lock.json
#	package.json
#	server/database.js
#	server/model/monitor.js
#	server/server.js
#	src/pages/EditMonitor.vue
2022-04-16 13:28:39 +08:00
Matthew Nickson 8c8eeaf627
Merge branch 'master' into #1059-specify-dns-resolver-port 2022-04-13 21:24:04 +01:00
Matthew Nickson b893d50e45
Implement specify Port for DNS Monitor #1059
This commit should fully implement #1059. When the user selects the DNS
monitor option, a new input box has been added below the resolver
address allowing the user to implement the port to access the resolver
on. This uses the same `monitor.port` as the TCP monitor but a monitor
has been added to prefill the port value to the default of `53` if the
value in this field has not already been set. This is then cleared if
the user selects a different monitor type and has not changed the port
value. A translation has also been added explaining what this field
does in order to reduce any confusion. JSDoc documentation has also been
added to the `dnsResolve` function in `util-server.js`.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-04-13 21:02:19 +01:00
Louis Lam 649f3106e1 Enforce semicolon, fix format globally 2022-04-14 01:20:54 +08:00
Louis Lam e9ce1433cd Change log_info to log.info by making it into an object 2022-04-13 23:33:37 +08:00
Moritz R 361e44ad6a
Merge branch 'louislam:master' into master 2022-04-13 15:58:17 +02:00
Louis Lam 279e2eb3f6 Merge branch 'master' into logging
# Conflicts:
#	server/database.js
#	server/jobs.js
#	server/model/monitor.js
#	server/routers/api-router.js
#	server/server.js
#	server/socket-handlers/status-page-socket-handler.js
#	server/util-server.js
2022-04-12 16:32:14 +08:00
Louis Lam c9fa183712 Manage domain names 2022-04-10 00:25:27 +08:00
Louis Lam c4e74c9943 Render <StatusPage> if domain matched 2022-04-06 22:43:22 +08:00
Louis Lam 70311f7a5a Add an option to enable/disable the domain name expiry notification #1364 2022-04-05 21:27:50 +08:00
Moritz R af44b0beab
Merge branch 'master' into master 2022-04-03 17:19:29 +02:00
Moritz R 84a0b24448
Update server/model/monitor.js
As per recommendation of @Computroniks

Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-04-03 17:15:21 +02:00
Jimmy Huang a4be651118
Update server/model/monitor.js
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2022-04-01 15:26:50 +08:00
Louis Lam 04e3394d02 Merge branch 'master' into feature/request-with-http-proxy
# Conflicts:
#	package-lock.json
#	package.json
#	server/database.js
#	src/languages/en.js
#	src/mixins/socket.js
2022-04-01 14:57:35 +08:00
OidaTiftla 91366ff565
Merge branch 'master' into introduce-resend-interval 2022-03-27 21:19:57 +02:00
Louis Lam be88351eb3
Merge pull request #1136 from chakflying/fix/prometheus-on-delete
Fix: Remove prometheus metrics on delete [Test needed]
2022-03-27 11:05:50 +08:00
Louis Lam aef0a66205 [Status Page] Simplify show tags logic 2022-03-18 17:56:46 +08:00
Louis Lam e87cdf4d09 [Status Page] wip, upload logo and status page listing 2022-03-17 16:42:26 +08:00
Louis Lam 1033ca5cf4 [Status Page] wip, combine api, add status_page_id into group and incident tables 2022-03-16 15:38:10 +08:00
Louis Lam 18ec42b060 [Status Page] wip 2022-03-16 14:14:47 +08:00
Louis Lam 50d6e888c2 [new status page] wip 2022-03-10 21:34:30 +08:00
Uğur Erkan 8078d0618d Add socks proxy support to proxy feature
- Socks proxy support implemented.
- Monitor proxy agent create flow refactored
  and moved under proxy class.

Thanks for suggestion @thomasleveil
2022-03-06 19:34:51 +03:00
Uğur Erkan 78d76512ba Add http and https proxy feature
Added new proxy feature based on http and https proxy agents.
Proxy feature works like notifications, there is many proxy
could be related one proxy entry.

Supported features
- Proxies can activate and disable in bulk
- Proxies auto enabled by default for new monitors
- Proxies could be applied in bulk to current monitors
- Both authenticated and anonymous proxies supported
- Export and import support for proxies
2022-03-06 19:34:49 +03:00
Louis Lam 595cd93220 Check invalid interval 2022-02-24 15:11:17 +08:00
Jimmy Huang 244a7b3671
Update server/model/monitor.js
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2022-02-07 18:46:16 +08:00
Karel Krýda b49e5d5c39 The SQL query to determine if the monitor is under maintenance is now in its own method. 2022-01-25 19:07:27 +01:00
Jimmy Huang ee90d2713f refs issue-1201 in upstream.
Add 100 characters from response body to bean.msg after keyword not match.
2022-01-25 17:39:19 +08:00
Karel Krýda e7b2832967 The start and end dates of the maintenance are now stored in UTC, which allows it to be converted between time zones 2022-01-24 22:33:15 +01:00
OidaTiftla f390a8caf1 Fix missing DB patch and use DATETIME as column format 2022-01-24 21:59:25 +01:00
Karel Krýda 5fda1f0f59 minor fixes (missing commas, spaces, translations) 2022-01-23 20:33:39 +01:00
OidaTiftla 11e9eee09d Change seconds to minutes 2022-01-23 17:48:09 +01:00
OidaTiftla 1ac904d6d6 Introduce resend interval if down 2022-01-23 15:22:57 +01:00
Karel Krýda 0d3414c6d6 A complete maintenance planning system has been created 2022-01-23 15:22:00 +01:00
c0derMo 29df70949d Add ability to connect to daemon via http / tcp for windows compatibility 2022-01-22 01:57:37 +00:00
Tarun Singh 22256dfcd2 added timeout for removing the dead loop state 2022-01-20 13:04:59 -05:00
c0derMo 4818bb67d6 Added trailing comma, fixed spelling & translation 2022-01-14 09:09:37 +00:00
c0derMo c5cc42272f Fixing the editing of docker container & adding english translation 2022-01-13 18:28:45 +00:00