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.
amasta_demo.mp4
- 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.
-
The architecure of the system is shown below:
- 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.
-
- 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.
- Python 3.10+
- VS Code (to make collaboration easier. We don't want to argue over tabs vs spaces!)
-
Spawn terminal and change working directory to repo directory.
-
Create virtual environment using venv:
path/to/python -m venv .venv
-
Activate virtual environment:
Linux/MacOS:source .venv/bin/activate
Windows:.venv/Scripts/activate
-
Install Python dependencies
pip install -r requirements.txt
pip install -e .
- Send emails to users based on occurrence of an event.
- 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.
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.