Monitoring the uptime and responsiveness of internal services is crucial for any organization relying on private networks for their operations. Leveraging open-source tools like Statsig-io’s Statuspage can provide a transparent and efficient way to monitor these services. However, given that these tools often cater to public URLs and use GitHub Actions for scheduling, adapting them for private network monitoring on a Red Hat Enterprise Linux (RHEL) system requires a bit of customization. This post will guide you through the process of forking Statsig-io’s Statuspage project, modifying it for RHEL, and using Cron instead of GitHub Actions to monitor your private network URLs.

Forking the Statsig-io’s Statuspage Project

Before diving into the technical modifications, the first step is to create a copy of the Statsig-io’s Statuspage project that you can modify for your needs.

  1. Visit the Statsig-io’s Statuspage GitHub repository.
  2. In the top-right corner of the page, click the “Fork” button.
  3. Choose where you want to fork the repository (usually your personal GitHub account).

With a forked version of the project, you can proceed to make the necessary adjustments for private network monitoring.

Preparing Your RHEL System

Ensure your RHEL system is ready for the task by installing any required dependencies, such as Git, Docker, and any other necessary tools listed in the project’s documentation.

sudo yum update -y
sudo yum install git docker -y
sudo systemctl start docker

Modifying the Project for RHEL and Cron

Clone Your Forked Repository

Clone the forked repository to your RHEL system where you plan to run the monitoring tasks.

git clone <YOUR_FORKED_REPOSITORY_URL>
cd statuspage

Adapt the Monitoring Script

Modify the monitoring script provided by Statsig-io’s Statuspage to ensure compatibility with your internal URLs and any authentication mechanisms they might require. This might involve adjusting HTTP headers or other request parameters within the script.

Set Up Cron Jobs

Instead of using GitHub Actions, you will use Cron on RHEL to schedule the execution of your monitoring script. To edit your cron jobs, use:

crontab -e

Add a line to specify the schedule and command to run your monitoring script. For example, to check your URLs every 5 minutes, you might add:

*/5 * * * * /usr/bin/python3 /path/to/your/modified/script.py

Ensure to replace /path/to/your/modified/script.py with the actual path to your monitoring script.

Additional Steps for Private Network Monitoring

  • VPN or Proxy Configuration: If your RHEL system requires a VPN connection or proxy configuration to access the private network, ensure these are configured and tested.
  • Security Considerations: Ensure that your monitoring activities comply with your organization’s security policies. This might involve configuring firewall rules or obtaining necessary permissions.

Conclusion

By forking Statsig-io’s Statuspage and adapting it for use on RHEL with Cron, organizations can implement an effective and transparent monitoring solution for their private network services. This approach ensures that your internal services remain reliable and responsive, supporting your business operations without relying on external monitoring solutions.

Gotchas and Tips

  • Regularly Update Your Fork: Keep your forked repository up-to-date with the original Statsig-io’s Statuspage project to benefit from any updates or bug fixes.
  • Monitor Your Cron Jobs: Ensure you have logging in place for your Cron jobs to troubleshoot any issues that might arise during the monitoring process.
  • Customize Notifications: Consider integrating notification mechanisms into your monitoring script, such as sending alerts through email or a messaging system when services go down or experience significant latency.