Uptime Kuma: Monitor Availability of All Your Websites and Services Including Steam Game Servers

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey everybody and welcome to Jim's Garage today I'm going to tell you about an awesome tool that I use to monitor all of my services and not only that it also can manage external services that you don't own things like websites web applications Game servers you name it and what's it called it's called uptime Kuma now uptime Kuma is a great lightweight container you can also install this as a binary if you want and enables you to monitor a whole host of web applications and services it does all of this in an attractive UI that is both slick and responsive and importantly very lightweight so in this video I'm going to show you some of the key features of uptime Kuma and how I use it in my home lab then I'll show you how to deploy this in Docker and then I'll give you a Whistle Stop tour of how to actually configure it once it's deployed hopefully by the end of this video and it's not going to be a long one you'll have a great tool that you can integrate into your home lab to help you keep tabs of all the services that you're interested in monitoring so if we jump into some of the features of uptime Kuma is pretty much what I said on the tin but let's scratch away the surface so what do we mean by monitoring well it can monitor websites through HTTP https and it can look for things like 200 codes which means the website's okay and it's up and running now some websites don't respond to that or you might want to know a little bit more than that so you can actually search for keywords on a website which is pretty excellent when you think about it so you could even use this to monitor stock levels of your favorite product if it says out of stock you could search for in stock on the website or add to basket or whatever the term is to make sure that you know when it's in stock and the best thing about it is we can set up notifications and I'll come on to that later in this video we can do things like TCP and ping requests if this isn't a web server we can simply tell it to make a connection and see what response it gets back based upon the response it gets back we can set up all hosts of different notifications it could do things like a Json query or a simple ping it can even query things like steam Game servers to make sure that your game servers are up and running or perhaps your favorite externally hosted I.E a server that isn't hosted by you and just jumping back onto the notifications there's over 90 different types of notification that you can configure for uptime Kuma and these include all of the obvious things like Telegram and Discord and slack and SMTP but one of the key things I'm going to focus on is gotify because I use that in my home lab now I'm not going to show you how to configure that in this video I'm just going to show it working for me and in the following video I'm going to show you how to deploy gotify and show you how to integrate it with uptime Kuma so that you've not only got something that will monitor your services it will also alert you in real time you can set up uptime Kuma using multiple status pages so these are Pages set up for a specific domain or service so you can drill down and focus on exactly what you want on a person service per website basis it can do things like monitoring web certificates a bit like we did in traffic earlier on and it even has things like 2fa built into it and all of the metrics and services that you care about are displayed in a lovely web GUI that's updated in 20 second intervals so you can get a really granular overview of how your services have performed over time so this is quite useful for if you're having intermittent failures maybe you can then trace it down to certain machines or things like firewall Network configurations that are causing a bit of Havoc or whatever it's great for not only monitoring uptime the clues in the name but also for diagnosing problems that you may have so let's head on into deployment now and we're going to start by reviewing the docker compose file thankfully the deployment of uptime Kuma is really straightforward so just running through the config file we specify where we want the persistent data to reside and that's pretty much it if you're not going to use a proxy to access this you simply just add some ports and then you would access that via your VM IP and Port however we're using traffic if you don't know how to do that go and check out my previous video but we're simply going to specify the traffic labels here and there's nothing special here compared to some of my other videos just be sure to put it on the proxy Network otherwise it's not going to find it okay so heading into deployment I've copied the config from my GitHub page do remember to make the tweaks necessary for your setup most likely you'll have to change the username for where you're mounting the volume and you might need to tweak the domain names if you're going to be using traffic as a reverse proxy to access this service so with those copied into my Docker compose folder you can see that I've got this accessible here it's now simply a case of spinning up the container like we've done many times in the past so to do that we simply need to navigate to where we have our Docker compose file stored and run the command sudo Docker compose up Dash D that's going to pull the image down and once that's completed hopefully we've got a working uptime Kuma so now that's completed and it's reporting back that it started I just want to verify any logs or any errors in portena first you can also do this with sudo Docker logs and then the container name in this case uptime Kuma but let's hop into portena and just check that everything's working before I try and reach the URL that I specified in my Docker compose file in this case it will be uptime kuma.jimsgarage dot Co dot UK as you can see in my portena the container is reporting back as starting so that's a good sign let's hop into the logs just to make sure that everything looks right so there's a ton of logs that are just stating that things were patched successfully and this is right for the installation and the good news is if we look at the bottom line it says that this container is listening on Port 3001 and that's where we've got the traffic load balance set within our traffic labels so fingers crossed you should be able to access this now through the subdomain that I specified in the config file and if you're not using a reverse proxy it should be a simple case of your Docker IP and then colon 3001 so let's head over to that now so with any look this URL should take us to our newly installed uptime Kuma instance perfect this has worked out exactly as I wanted to so let's just complete these quick steps and then we should be able to get into configuration so go ahead choose a username and password and then hit create when you're ready now that we've created our account we're into the main part of uptime Kuma and there's only a few things that we need to configure to be able to monitor whichever services or web applications websites Etc that we want to so let's go ahead and create a new monitor so this is a monitoring of a service or a site in the top left click add new monitor and then you're going to be graced with all of the setup configuration for the respective service so depending on what you want to Monitor and how you want to monitor it you'll simply just need to tweak this accordingly so I've got a number of services running in my home lab as I showed in previous videos so one thing that's really important to me is I want to make sure services like my DNS are up and running I really need to know if that goes down because it can play Havoc with my network so let's configure it to monitor pihull first so because I have pie hole web interface running through https I should be able to set up a monitor that makes sure that pie hole is running on https so here I simply need to add the URL for my pie hole instance and then click save there's a number of other things that you can configure in there such as how often you want to do the heartbeat for me 60 seconds is fine I actually have a couple of instances of pie hole running so 60 seconds is more than enough to know that one's down and you want to be sensitive to how often you pull things depending on how available things are you might have intermittent outages for example you might not be concerned about those you might be you decide you pick something that works for you just scrolling down before I hit save you can see that there's a ton of advanced features here and these are predominantly to do with how the application might run so not all applications are the same they're not all going to give you the same codes back and you might need to tweak and configure them to report on something that can be monitored for example not all sites are going to give you a 200 code which typically means things are okay you might need to actually search for something else and we'll do that in a moment with another example that looks for keywords so in this instance I'm fairly confident that just setting an https and the URL of my pie hole instance this should work so I've just hit save there and instantly it's come back and said it's up that's because when we hit save it did the first iteration of that check so effectively on demand the next one's going to be in 60 seconds and if you look closely on this screen we can see that we've got one green bar and it says exactly when that was time stamped to the second it states that it's going to check every 60 seconds which is what we set and there's a big friendly up sign so that you can't miss it if we scroll down we can see that there's also a graph and this will populate over time every 60 seconds so that you can track uptime and downtime as time progresses so that's really simple and straightforward and should work for a lot of services you could even monitor external websites your favorite gaming site your favorite text site whatever it may be so let's quickly do an example now with a keyword now one common service that you might need to use a keyword for in your home lab is Plex or at least that's been my experience and it won't respond with a 200 code and you can't use the previous https method that we just went through so the way I got around this was to look for a keyword because I know that I can hit the Plex API and I know what a good response looks like and you'll find that under https Dash keyword I'm going to put in the URL of my Plex instance because that's fine that resolves to the IP of where it is hosted and then the final bit is actually specifying the keyword that we want to look for and in this case the word I look for is version because I know that that is always reported by the API and if that's reported then it's up and running it doesn't necessarily mean it's always working but it's pretty good so now that I've added that I can hit save and fingers crossed it should come up and report that it's okay now as you can see that didn't quite work now that's because I got the URL wrong so let me quickly edit that so I'll show you how you can edit existing settings so simply click on the URL that you're interested in hit the edit button at the top once you're in there you can make your edit and resave now to fix this I simply need to add forward slash identity to my URL because that's one of the API endpoints that's going to give me the information or the keyword in this case that I'm looking for so let's go ahead and save that and see if this rectifies the not found or down indicator so hitting save you can now see that it's gone to Green so if I click on that you can see that previously it was down and not found and now it's reporting as up and available which is correct so let me add some other services now just to show you other ways that you can run checks on your favorite services or web applications so jumping back into the ad monitor let's set up a ping which should be pretty familiar to anybody we're going to Ping a website and if it gives us a response that means it's available so just keeping this really simple I've set up a ping to google.com so this will monitor every 60 seconds that google.com is reachable by my internet provider so as expected it's ping the service and also it's given us the milliseconds that it took to complete the Ping so in this case 15.6 milliseconds which 20 of you Posh folks on fiber is not impressive but I've stated before I'm still running on copper telephone wire so let's mix it up a bit why don't we track something like a game server again we can do that quite simply for things like Steam servers so let's add a monitor we'll choose steam game server for this demo I've just gone ahead and Googled some popular Steam servers in this case it's for Arc so I put in the IP address and the port that that game server is running on and hopefully I should just need to click save and we should now be able to monitor whether that server is online or not now one thing quickly just before we hit save on this steam server is you will need to get an API key from Steam before you can make this work that's really simple I'll drop a link in the description just head over to Steam login and generate an API key once you have that in the top right just click on your username click settings paste your steam API key in here hit save go back to your game server hit the edit button and you should be good to go so we're going to hit save here and I can now see that this steam server is up and running excellent you can go and do this for any of your services also I've just hopped into my main uptime Kuma instance and you can see here that I've been tracking a whole number of services for a while now one of the service that you might want to use is the docker container so this can actually use the docker sock that we used in previous home lab dashboard video that can plug in to say whether or not the container is actually running or not so this is a really useful feature just for monitoring whether your container is up and running it may not have a web interface that uptime Kuma can pull but it can check the container is up and running much like it shows in portena and give you that information in a graphical form the final bit of the video that I wanted to cover is notifications now I'm not going to show you how to set up gotify and plug that into uptime Kuma I'll show you that in the next video but if we go into the notifications tab and we hit setup notification you can see that there are a ton of options available I think at the beginning of this video I mentioned that there's something like 90 plus so simply go through this list and choose the one that you want to use common things will be things like telegram SMTP Etc and click on one of those so let's choose SMTP because it's very popular so in this case it'll be email and then you simply need to plug in your SMTP details which you can get from any email provider pretty much I use Gmail for this and their details are available from a simple Google search you simply need to create an SMTP password that you can plug in here make sure you're using the right ports and endpoints and then save that once you save that this notification becomes available so if I pick Arc for example that we've just configured and I hit edit you can see that I've enabled my gotify and my email as the default so let's have a quick look in there you can see that I've configured SMTP so whenever this service goes down I'll get an email and I've also set up gotify so whenever it goes down I'll also get a gotify notification now this is overkill I've kind of left this in for testing I don't really need both my gotify is accessible when I'm out and about through a split tunnel wire guard and I don't need emails for that reason so I simply just need to fill in the details and away we go every time the service goes down or there's a change I'll get a handy notification within gotify and there's a nice mobile app for that and it pops up on my phone to let me know but anyway you choose which notification setup you want to use in the next video I'm going to discuss how to set up and configure gotify not just for Uptown Kuma but a whole host of other services as well including crowdsec it's really good to get crowdsec notifications when you're out and about so now that I've showed you how to create new monitors and set up notifications you simply need to go through all of the services that you want and just keep adding them one by one it really is that simple and it's going to give you historic overviews of your uptime performance and it could be a good indicator as to whether or not you've got a problem within your network so I hope that was useful for you guys I've been using Uptown Cuba now for best part of two years and it's a great way to Simply keep tabs on all of your services it plugs in nicely with my notification services and it gives me a little bit more information for problem diagnosis Etc it also helps me to keep tabs of stock levels on some of my favorite websites so as I mentioned earlier my next video is going to focus on gotify which is a notification service that we can put within our home lab and plugs in nicely with pretty much anything that is able to send an alert so not just uptime Kuma it could be anything where you could write a script to send a message for example crowdsec so if you like this video please like comment and subscribe and I'll see you on the next video take care guys foreign thank you
Info
Channel: Jim's Garage
Views: 6,749
Rating: undefined out of 5
Keywords: uptime kuma, uptime kuma setup, availability, uptime kuma docker, docker, linux, portainer, proxmox, gotify, monitor website, monitor stock level, website availability, monitor docker service, uptime, traefik
Id: 0FId6vahLAI
Channel Id: undefined
Length: 18min 50sec (1130 seconds)
Published: Sun Aug 06 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.