Loading...
PRISM iDRAC Monitor

PRISM Introduction and Background

  In the chaotic symphony of a sysadmin's day-to-day operations, there are instances when servers, for various reasons, decide to act a fool. This could be due to system instability or the server simply requiring a rest. Enter PRISM, a server management tool I developed to proactively monitor my servers, ensure they are performing, and, when necessary, orchestrate their recovery.

  Crafted in Python, PRISM transcends the functionality of a basic ping tool. Its abilities include server availability checks, IPMI connectivity verification, and even the capability to power cycle your servers through their iDRAC interfaces. Coupled with Discord notifications, it keeps you informed of your servers' statuses and any actions PRISM takes on your behalf.

  The aspiration behind PRISM was to streamline and automate server management. By mitigating the need for constant manual intervention, it allows me to concentrate on tasks that demand my direct attention, rather than continually reviving unresponsive servers.

  Diving deeper into PRISM's inner workings, the script initiates by importing necessary libraries and loading environment variables from a .env file. Subsequently, it establishes a logger to document messages in the console and a designated file. It then defines two crucial functions, one to evaluate server reachability, and the other to examine the IPMI connectivity of the iDRAC interface. Upon initiation, the script conducts an immediate status check and then proceeds into a loop, consistently examining the servers every minute.



Deployment Guide

  Deploying PRISM is designed to be simple, thanks to Docker containers, which prevent any compatibility issues or complex runtime environment setup. Follow the steps below to get PRISM up and running on your system.

  1. Install Docker and Docker Compose on your system. You can find the installation guide for Docker here and for Docker Compose here.

  2. Get my app here and navigate to the location you saved it at.

  3. Create a .env file with your configuration settings and save it in the same directory as your docker-compose file. Use the provided .env.example file for reference.

  4. Open a terminal, navigate to the directory containing the docker-compose file and run the following command:

    docker-compose up -d

    This will start PRISM in detached mode.

  5. That's it! PRISM is now actively monitoring your servers and will notify you on Discord about any updates.

What's Next for PRISM

  PRISM is an evolving project, and I have several exciting plans to further improve its features and usability. Here are some things I'm working on:

  1. Auto Reboot Feature: One of the planned features is an automatic reboot function. If a server's uptime exceeds a predetermined threshold, say 45 days, PRISM will automatically initiate a reboot. This feature will help maintain server performance and health.

  2. Interactive Bot: Currently, PRISM operates as a webhook, but I am planning to develop it into a fully interactive bot. This bot will allow for manual triggers and provide override capabilities, enabling users to enable or disable functions as needed.

  3. Enhanced Alert Management: To make PRISM even more robust, I'm thinking about implementing an advanced alert management system. This system will intelligently escalate alerts based on severity and repeated occurrence of the same issue. It will also allow for alert acknowledgements to prevent alert fatigue.

  4. Integration with ITSM Tools: To better fit within existing IT workflows, I'm considering integrating PRISM with popular ITSM tools. This will allow incidents detected by PRISM to be automatically logged as tickets, streamlining the incident response process.

  Stay tuned for these updates!

Top