A user on Reddit asked me how I monitor for outages on my Plex server. Since I no longer have any inclination to use Reddit, I decided to post the answer here and point them to it.
As a prerequisite, I am going to assume that you already have Remote Access setup correctly for your Plex server. If you don’t, that’s a whole other thing that you will need to get working first. However, if you see a green check mark next to Remote Access, and “Fully accessible outside your network” on the Remote Access page for your Plex server, then you should be good to move forward.
Step 0 - Set up Dynamic DNS
First, I recommend getting dynamic DNS (DDNS) setup. This isn’t a requirement per se, but it does mean you won’t have to redo everything any time your public IP changes.
I personally use https://freedns.afraid.org/, but there are quite a few options for free DDNS services. The idea is that you can tell the service your public IP address and they will assign a DNS host name to it, that is resolvable on the internet. So instead of 123.456.789.012:32400 (not a real IP, just an example) being the way to reach your Plex server on the internet, it could be something like my.domain.fake:23400. The domain name would never change, even if your ISP assigns you a new IP address.
You can either manually update that DNS record when your public IP address changes, or you can use a program to monitor for IP changes and update the record for you automatically. Some routers even have settings built in to update dynamic DNS entries for you. I personally use a program called ddclient https://github.com/ddclient/ddclient running on a RaspberryPi, but there are other options for this. Setting up ddclient is a bit complicated and outside of the scope of this post, so I am not going to go into it.
Step 1 - Create an UptimeRobot account
Go create yourself a free account at https://uptimerobot.com/. They are an uptime/outage monitoring service, and they have a free tier that is suitable for monitoring a single service like this for home use. The main down sides of the free tier are a 5 minute monitoring interval (vs. 1 minute for paid) and limited types of monitoring. However, for this guide, I use port monitoring which is included in the free tier. If you find that you need to monitor more types of things, or you need the shorter interval, the next tier up is priced pretty reasonably IMO, so support them and pay for it. I am not an affiliate; I just think they have a good service at a reasonable price.
Step 2 - Setup alert contacts
You need to set up how you will get notified when there is an outage. Go to the settings of your account and click the “Add Alert Contact” button. There are a lot of options, but I personally just use plain old email, as well as a push notification on my phone (you must install the UptimeRobot app on your phone for that). There are a lot of other options like Slack, Discord, etc. but I have never used any of them, so I won’t comment on them.
Step 3 - Setup a monitor for your Plex server
In the UptimeRobot dashboard, click the “Add New Monitor” button. Set the following options:
- Friendly name: Plex server (or whatever you want)
- IP (or URL or Host): If you didn’t setup dynamic DNS just use the public IP address where your Plex server is hosted. If you aren’t sure what it is, you can find it on the Remote Access page of your Plex server settings. However, if you did setup dynamic DNS, put in the host name that maps to your IP instead.
- Port: Custom and then put in the public port that your Plex server uses. Default is 32400, but again you can find this on the Remote Access page of your Pleas server settings.
- Monitoring Interval: This is how often UptimeRobot will check to see if it can reach your Plex server. The lowest you can go on the free tier is 5 minutes. With a paid account you can go as low as 1 minute.
- Monitor Timeout: This is how long UptimeRobot will wait for a response before it decides that no one is going to answer and the Plex server isn’t just being slow but is in fact down. The default of 30 seconds hasn’t been an issue for me.
- Select “Alert Contacts to Notify”: select whatever ones you setup in step 2 above.
Click “Create Monitor” and you’re done! In your dashboard there is a button to test a notification if you need to.
Bonus tip: if you know that you are going to be bringing your Plex server down for maintenance, you can pause the monitor before you do. That way you don’t get spammed with a bunch of notifications that your server is down when you already knew about it. Just don’t forget to un-pause the monitor when you’re done. 😊
I have found this setup to be very reliable and helpful for letting me know when there is an issue with accessing my Plex Server. I hope others find it useful as well!
So this might be a silly question, but I took a look and my router says in its settings that is uses DynDNS for DDNS, but you have to pay to use their service. Can I use an alternative like NoIP or DuckDNS or am I locked into using DynDNS? TIA
If you want to use your router as the update client, and it only supports DynDNS, then my guess would be you have to use DynDNS. But you don’t have to use your router as the update client. You can use something like ddclient that will work with just about any service. Or some services have their own update client. For example, you mentioned NoIP. It looks like they have an update client you can install on a computer, here: https://www.noip.com/download
Just make sure that the update client is up and running all the time. Otherwise your DNS record won’t get updated if/when your public IP changes.