mirror of
https://github.com/louislam/uptime-kuma.git
synced 2026-03-02 22:57:00 -05:00
Any specific reason why uptime-kuma does not support NFS file systems #1816
Labels
No labels
A:accessibility
A:api
A:cert-expiry
A:core
A:dashboard
A:deployment
A:documentation
A:domain expiry
A:incidents
A:maintenance
A:metrics
A:monitor
A:notifications
A:reports
A:settings
A:status-page
A:ui/ux
A:user-management
Stale
ai-slop
blocked
blocked-upstream
bug
cannot-reproduce
dependencies
discussion
duplicate
feature-request
feature-request
good first issue
hacktoberfest
help
help wanted
house keeping
invalid
invalid-format
invalid-format
question
releaseblocker 🚨
security
spam
type:enhance-existing
type:new
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/uptime-kuma#1816
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Maven35 on GitHub (Jan 24, 2023).
⚠️ Please verify that this bug has NOT been raised before.
🛡️ Security Policy
📝 Describe your problem
im running uptime-kuma in a kubernetes environment, and im wondering what are specific limitations from running with NFS storage. also i've noticed it contains an embedded SQLite database, is there any discussion or thoughts on using an external database or adding that support? also are there any plans to have dedicated kubernetes helm charts it would be cool to have this product on the CNCF since its pretty awesome.
🐻 Uptime-Kuma Version
1.19.6
💻 Operating System and Arch
debian
🌐 Browser
chrome
🐋 Docker Version
kubernetes 1.21
🟩 NodeJS Version
No response
@Maven35 commented on GitHub (Jan 24, 2023):
also is there any plans to have high availability as a possibility for uptime-kuma. currently, with the single container and built-in database, it does not seem possible for me to run multiple instances with the same data.
@yitsushi commented on GitHub (Feb 28, 2023):
I have uptime kuma running on my clusters with
nfs-subdir-external-provisioner, it's running in that way ever since I first deployed. The oldest timestamp on the filesystem is2021-10-12 17:11:48.039084132 +0000.The HA would be awesome, to be precise I ended up on this issue while I was looking for an existing issue about supporting psql or something as database instead of using sqlite.
@Maven35 commented on GitHub (Feb 28, 2023):
Ahhh i I am on another postgesql thread but it's a bigger lift, honestly I
was tempted to do some of the mysql with knex at least to get off of
sqlite.
On Tue, Feb 28, 2023, 4:55 PM Balazs Nadasdi @.***>
wrote:
@AndrewKvalheim commented on GitHub (Apr 23, 2023):
“due to SQLite”. Its FAQ warns:
The documentation elaborates:
It would be helpful if Uptime Kuma was clearer about its actual requirements instead of vaguely saying that specific filesystems aren’t “supported”.
For example, the documention could say something like:
@chevdor commented on GitHub (May 23, 2023):
While testing NFS on K8s, I ran into the typical chmod issue due to the fact that the container cannot change the permissions of the NFS share.
This is usually solved by using a sub-folder so I tried using
/app/data/suband settingDATA_DIRaccordingly. This did not work.Instead, I could get the container started using:
/dataDATA_DIR:/data/sub@CommanderStorm commented on GitHub (May 23, 2023):
@AndrewKvalheim
Please refer to this article why nfs might corrupt your data: https://www.sqlite.org/howtocorrupt.html
TLDR: unless running multiple pods/having a restart policy which is not fitting, this likely won't happen to you.
However: Running a database on a distributed storage backend has significant performance impacts that could make this app unusable.
@CommanderStorm commented on GitHub (May 23, 2023):
@Maven35 @chevdor Please note that the unofficial helm chart is maintained by the Dennis at https://github.com/dirsigler/uptime-kuma-helm
On the topic of the external DB:
Please see https://github.com/louislam/uptime-kuma/pull/2720 and associated PRs like https://github.com/louislam/uptime-kuma/pull/3017
There is also a milestone for this
@CommanderStorm commented on GitHub (May 23, 2023):
@Maven35
Given the scope and core-engineering of this project (it is not designed to scale, it is not a distributed system) I would be very surprised if the wonderful people at the CNCF would even consider this project.
The project proposal steps for sandbox projects seem quite steep, if you have more insight please comment.
If using CNCF Tooling:
Prometheus can also do uptime monitoring with the right dashboards. It is not as simple to set up, but works very reliably.
@mabed-fr commented on GitHub (Jun 17, 2023):
I come out of a lab where I set up uptime kuma in a highly available environment with auto scaling (with min and max a 1) and docker volume on the AWS EFS (nfs v4) I don't have encountered problems.
@Maven35 commented on GitHub (Jun 17, 2023):
How did you setup high availability when dealing with the sqlite database?
On Sat, Jun 17, 2023, 1:09 PM Mathieu BEDOS @.***>
wrote:
@CommanderStorm commented on GitHub (Jun 30, 2023):
@Maven35
Currently, this Project does not support high availability.
An environment with 1 Instance is by definition not highly available.
I would argue that it does not need to be, as an uptime monitor should not be co-located with what you are monitoring.
If in doubt, you can set up monitors to monitor your uptime monitor.
Reasoning:
This way we don't need
The general distributed-system drawbacks/advantages don't apply.
@Aur0nd commented on GitHub (Aug 19, 2023):
This is literally the solution, nice one thank you!
@github-actions[bot] commented on GitHub (Nov 17, 2023):
We are clearing up our old issues and your ticket has been open for 3 months with no activity. Remove stale label or comment or this will be closed in 2 days.
@chakflying commented on GitHub (Dec 10, 2023):
Closing since louislam/uptime-kuma-wiki#68 has been merged, which should solve this.
@chevdor commented on GitHub (Dec 11, 2023):
I think the blank statement related to NFS is too broad. Indeed, SQLite + NFS 3 is asking for troubles but there is no reason for NFS4+ to be problematic. I am running using NFS4.1 for a while without an issue (I know it does not mean it will never happen but still...).
Did anyone ever run into issues using Sqlite over NFS 4+ ?
@CommanderStorm commented on GitHub (Dec 11, 2023):
While nfs4 has resolved the file locking issue accroding to the mysql docs, I think sharing data directories is still a footgun, the support effort ("help, my db suddenly got corrupted") I would think is substantial. Given how much time tackling the current issue load takes, I am not certain that that would be doable.
@chevdor commented on GitHub (Dec 11, 2023):
Considering how simple it is to backup sqlite, I will probably take the risk and make backups often, then see when it breaks, if that ever happens. The benefit of the solution is worth the effort. I also tested in another context and sqlite is much faster than postgres for instance.
@CommanderStorm commented on GitHub (Dec 11, 2023):
Such benchmarking is highly application-dependent and cannot be generalised to anything.
For example:
@jledesma84 commented on GitHub (Apr 4, 2024):
@chevdor I'm using the image louislam/uptime-kuma:1.
How can I use NFS4+?
How did you change the
DATA_DIR? Was it using an environment variable on the dockerfile?@CommanderStorm commented on GitHub (Apr 4, 2024):
The environment variables can be found here.
I don't get what you mean by
docker has the
-eflag while docker-compose has this