amatsa

Asset Monitoring and Analytics Tool for System Administrators

https://github.com/vsangarya/amatsa

Science Score: 41.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Asset Monitoring and Analytics Tool for System Administrators

Basic Info
  • Host: GitHub
  • Owner: VSangarya
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 2.03 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created almost 4 years ago · Last pushed over 3 years ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

🖥 AMATSA

Build DOI Codacy Badge Codacy Badge Commit Acitivity Issues Contributors License Languages Code Size Contributor Covenant Repo Size

Have you ever reported to your organization's IT team that your machine is slow or running out of disk space? Well, I guess most of us have done this at some point. What if your IT team can be proactive and give you a new disk (or a new asset to meet your workload!) before you even go to them?

Asset Monitoring and Analytics Tool for sysadmins (we call it AMATSA) is a client-based solution for system administrators to monitor assets in their organization. amatsa-client is cross-platform (Linux, Windows, macOS), can be installed on a server/user PC and takes less than 50MB of disk space at runtime. Once you install the amatsa-client on a host, it will periodically send system metrics (asset info, cpu/memory utilization, network etc.) to the backend server. The backend server runs on Elasticsearch and can be hosted on-premise or in the cloud. Sysadmins can then import our pre-built Kibana dashboard or build custom visualization on top of raw data sent by the clients. The meta data on fields listed here can be used to create custom visualization dashboards.

Setting up AMASTA on a PC and exploring the visualization dashboard

https://user-images.githubusercontent.com/68890508/194654605-f23bc6a3-13ba-43b3-b41a-8d8b9015c583.mp4

📖 Usecases

  • Gather asset information - how many assets are there in the organization, specification of each asset etc.
  • Monitor assets that haven't rebooted in a while to apply security patches.
  • Monitor assets that have high CPU/memory utilization over time.
  • Monitor assets running out of disk space.
  • Monitor network speed of assets across the organization.

Workflow and 'How to Do Stuff'

  • The architecure of the system is shown below: System Architecture

    • The script installed at the client side collects client metrics and at fixed intervals and pushes these metrics as a JSON to the elastic server.
    • Kibana is connected to the Elastic Server from where it fetches the data and renders this data in the dashboards accessible by system administrators.
    • This update happens in realtime.
  • To use the system:

    • Follow the steps in Installation.
    • Adding new metrics:
      • You can make changes to the classes in the 'src' directory to track additional metrics or remove metrics that are currently tracked.
      • Leverage Kibana's convenient UI to create new dashboards as per your requirements.
    • View dashboards:
      • Access your AWS server using your browser.
      • Enter your Kibana credentials to view the dashboards.

🛠 Installation

  • See server installation instructions to setup Elasticsearch and Kibana.
  • See client installation instructions to deploy amatsa-client on assets.
  • Once the server and the clients are setup, you can import and explore our pre-built Kibana dashboards.
  • Common issues faced by users while setting up client are listed here.

👩🏼‍💻 🚀 Developer Environment Setup

Prerequisites

  1. Python 3.10+
  2. VS Code (to make collaboration easier. We don't want to argue over tabs vs spaces!) ### Setup
  3. Spawn terminal and change working directory to repo directory.

  4. Create virtual environment using venv: path/to/python -m venv .venv

  5. Activate virtual environment:
    Linux/MacOS: source .venv/bin/activate
    Windows: .venv/Scripts/activate

  6. Install Python dependencies Text pip install -r requirements.txt pip install -e .

↑ Enhancements

Server

  • Send emails to users based on occurrence of an event.

Client

  • Collect running process information (name, pid) to identify unique instances across your organization.
  • Monitor listening ports across assets to identify which services are listening in your network.
  • Configure a rule file containing filenames to monitor on the client. If the hash of monitored file changes, you can send an event.

⚙︎📧 Troubleshooting, help and contact information

For any help or assistance regarding the software, please E-mail any of the developers with the query or a detailed description. Additionally, please use issues on GitHub for any software related issues, bugs or questions. * mquresh@ncsu.edu * apandit3@ncsu.edu * vnagara3@ncsu.edu * schopra4@ncsu.edu * lsangar@ncsu.edu

Owner

  • Name: Vishwesh Sangarya
  • Login: VSangarya
  • Kind: user

Computer Science Grad Student at NCSU

Citation (CITATION.md)

## Zenodo DOI badge for version 1.0.0 of AMATSA Software repository 
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7179464.svg)](https://doi.org/10.5281/zenodo.7179464)

Reference to Zenodo Citation of the repository : [Zenodo AMATSA](https://zenodo.org/record/7179464#.Y0OWKXbMJmM)

GitHub Events

Total
Last Year