Coder Social home page Coder Social logo

provisioned_products_monitor's Introduction

Provisioned Products Monitoring Application

Overview

The AWS Provisioned Products Monitoring System is a robust solution designed to enhance visibility and governance over provisioned products within AWS Service Catalog. This system provides real-time monitoring, user count tracking, naming convention enforcement, and unauthorized user detection, all aimed at ensuring efficient resource management and adherence to organizational policies.

Features

  • Monitoring Stale Provisioned Products: The application monitors provisioned products in AWS Service Catalog and identifies those that have been provisioned for more than a specified duration.
  • User Count Tracking: It tracks the number of provisioned products launched by each user and identifies users with a high number of provisioned products.
  • Naming Convention Check: It checks the names of the provisioned products against the prescribed convention and send alerts when these conventions are broken
  • Unauthorised User Product Launches: When a user attempts to launch a product, the application verifies their account against a predefined list of authorized users stored in an Amazon S3 bucket.
  • Slack Notification: Upon identification of stale provisioned products or users with a high number of provisioned products, the application sends notifications via Slack to notify the user.
  • Bulk Email Notifications: Users can send bulk email notifications based on violations detected, such as stale products, exceeded launches, naming convention issues, or unauthorized user launches.
  • Individual Email Notifications: Upon clicking on an individual row, a button is available to send email notifications to the specific user associated with that product.

Installation

  1. Clone the repository to your local or remote machine.
  2. Set up AWS credentials with appropriate permissions.
  3. Navigate to the project directory.
  4. Create a copy of config.py.example and name it config.py. Fill in the correct data according to your environment.
  5. Create a copy of .env.example and name it .env. Fill in the correct data according to your environment.
  6. Install the required Python packages using pip install -r requirements.txt.
  7. Run the Flask application by executing python3 app.py.
  8. Access the application by visiting the provided IP address in your web browser. You will be directed to the dashboard page where all the features are available.

Configuration

  • AWS Credentials: Ensure that AWS credentials with appropriate permissions are configured on the system where the application will run.
  • Slack Webhook URL: To enable Slack notification, update the SLACK_WEBHOOK_URL variable in the .env file with the appropriate webhook URL provided by Slack.
  • SMTP Server Configuration: Update the SMTP server configuration in the .env file with your email server details.
  • Threshold Configuration: Adjust the threshold time for identifying stale provisioned products and the threshold count for identifying users with a high number of provisioned products in the config.py file.
  • Notification Scheduler: Configure the notification_scheduler.py script to run once a day using a task scheduler (e.g., cron job). This script automates the process of sending notifications at regular intervals to keep users informed about stale provisioned products and other relevant updates.

Dependencies

  • Python 3.x
  • Flask
  • Boto3
  • Requests

Notes

  • Ensure that the provisioned_products.json file is present in the root directory of the application.
  • Customize the dashboard.html template in the templates folder to modify the appearance of the dashboard as needed.
  • The provisioned_products_monitor.py file contains functions for querying provisioned products. Modify this file to extend or customize the monitoring functionality.
  • For production deployment, configure appropriate security settings, such as HTTPS, and consider deploying the application on a secure server environment.
  • Monitor logs and error messages for any issues during application execution

provisioned_products_monitor's People

Contributors

izomanuel avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.