IT – 499 Capstone Project

Synopsis

PiPlex Server is a local network media based server that utilizes a Raspberry Pi 3 B+ and an external hard drive. PiPlex is a simple way to manage and showcase videos, pictures and other data in a friendly interface.  All while accessing the data through a Network attached storage (NAS) and ability to access analytical data in an interactive visualization.

Phases, Requirements, and Tools

This project can be broken down into 3 separate phases, each involving key implementations and technologies for full functionality. This Pi is a Network Attached Storage (NAS) on my local network allowing users on personal computers to connect to this storage to manipulate, add, and delete information with correct authority and user information to sign in. Further Plex Media Player would become the media verse utilized on the PiPlex to then showcase all the data coming from the NAS in a seamless way.  Understanding that a lot of data can be sent and received on Raspberry Pi I wanted to create a visualization platform that shows analytical information of the Plex server as well as real time measurable’s of the Pi’s performance;  The tool used for this phase would be Grafana a multi platform analytical web application.

Phase 1: NAS was created with external drive, mounted drive to Raspberry Pi.

  • This portion was extremely important as it was foundation of project. Ensuring drive was mounted properly, and only certain folders were accessible when accessing from other device. Also created network credentials to ensure username and password would need to be known in order to add NAS to any local device capable.
  • I will showcase this during my capstone video.

Phase 2: Installed Plex Media Server, configured Pi and ensured connections were aligned with NAS mounted drive.

  • Image above showcasing PLEX environment that can be accessed across multiple devices on the local network. Library shown is test folder for purposes of capstone with a few family photos. Was able to access on library simultaneously on multiple computers, iPhone, and gaming console.

Phase 3: Installed Grafana as base visualizer of data. Data would be captured using InfluxDB (Time series Database) and Collectd (Performance Data Collector). With appropriate configurations and queries, visualizations of key analytical data became available such as: CPU Usage, Memory Distribution, Network Traffic, and NAS Storage. with extra research I was able to establish another data collection from the Plex Server. This would showcase types of files on Plex Server and in real time show active Plex streamers viewing photos or watching videos.

  • of course after install, configuration and starting InfluxDB confirming the status was something necessary especially after making changes and edits to config files.
  • As collectd works hand in hand with InfluxDB this was essentially to ensure it was running and active, after configuration of data and manipulation of what would be captured. This would be necessary during troubleshooting I would run into during the process.
  • Image above is showcasing Phase 3 and 4 with Grafana visualizer. This data is in real time showing the data in increments of 15 minutes and updating every 5 seconds. The Plex portion of this visualization actually shows the streamer along with the title and location.
  • Image above is showcasing Phase 3 and 4 with Grafana visualizer. This data is not real time, it is in fact just showing measurements and data from the past 7 days.

Tools Mentioned:

These 4 tools are the foundations of my project that provided the ability to create the Pi Plex Server.

Acknowledgements

  • I would like to say thank you to Dr. Soltys my IT 499 Advisor this semester, his guidance and support during this time has been much appreciated.
  • I would also like to thank Professor Scrivnor for introducing me to Grafana in IT 421. This project would not have been possible without that exposure.

Capstone Video

Capstone Poster

3 thoughts on “IT – 499 Capstone Project”

  1. Great presentation. Very easy to follow. This is a current use case and one we are regularly looking for ways to improve. A couple key areas where I would make a recommendation to increase the interst for me. As a CIO, I have lost my interest in any technical solutions that are on-premise. There are MANY reason why. So the first recommendation is to move the NAS to AWS is critical and make this a cloud only solution. In doing this, the analytics can go deeper into showing efficiencies of using cloud resources like auto-scaling and Elasticache based on the demand. This technique is very appealing to CIO’s because it is a true cost savings architecture.

    The second recommendation would be around the problem for today. As video and picture images get larger and larger, the ability for an API to accept those images is harder and harder. We are consistently needing to find better methods for ingesting files over 500MB. The art in in chunking the uploads of large files and creating a synchronization strategy that ensures to the users that the file will always be uploaded no matter what file type or what file size. To achieve this objective, the engineer would need to be able to manipulate the upload session, the return session identifiers and create a method/process for identifying and retrying failed uploads.

Leave a Reply

Your email address will not be published. Required fields are marked *