Skip to content

Okuromatsu/argos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Argos Agent

Argos takes its name from Argos Panoptes, the all-seeing giant of Greek mythology, known for his hundred eyes that never all slept at once.
In the same way, the Argos Agent is designed to provide continuous visibility and autonomous monitoring across distributed systems.

Overview

Argos Agent is a lightweight, Python-based monitoring agent designed to be deployed across multiple Debian systems.
Its purpose is to collect, process, and centralize network and system data for further analysis.
Ansible playbooks and the accompanying orchestration utility are provided as production-grade deployment examples, not core components.

Note: The provided installation script and Ansible playbooks are designed specifically for Debian-based systems.
Functionality on other distributions or operating systems is not guaranteed.

Project Structure

Argos/
├── agent/                  # Core Argos agent files
│   ├── install_argos_agent.sh
│   ├── argos-agent.py
│   ├── argos-rules.json
│   └── iplist.conf
├── ansible-files/          # Example Ansible deployment files
│   ├── deploy_agent.yml
│   ├── fetch_argos_logs.yml
│   └── hosts
├── logs/                   # Example directory for collected logs
└── argos.py                # Example orchestration utility (Python)

Requirements

System

  • Debian 11+
  • Root or sudo privileges for deployment

Software

  • Python 3.8+ - For manager and agent
  • Ansible 2.10+ - Manager only
  • Python package: - Manager only
    pip install rich

Configuration

  • Edit ansible-files/hosts with your agents IPs and SSH keys
  • Edit agent/iplist.conf with all your IPs that you want to filter (Whitelist)
  • (Optional) Edit agent/argos-rules.json with custom rules for a better formating of data
  • (Optional) Edit agent/argos-agent.py:31 TCPDUMP_CMD, change -n to -nn or nothing if you want to disable auto DNS resolution or resolve port number (i.e. 80 -> http)

Usage Examples

Deploy the Agent to Remote Hosts

python3 argos.py install

Fetch Collected Logs

python3 argos.py fetch

Generate a Graph from Retrieved Logs

python3 argos.py generate

Use a Custom Ansible Inventory File

python3 argos.py install -i /path/to/custom_hosts

Use a Custom Output name

python3 argos.py generate -o my_cool_dot_name.dot

Notes

  • The installation script (install_argos_agent.sh) handles all dependency setup, file installation, and service creation using systemd or init.d depending on the environment.
  • This project is primarily developed and tested on Debian; compatibility with other Linux distributions is not ensured.
  • The provided orchestration and Ansible files are meant to serve as deployment examples and may be adapted to fit specific production environments.

About

Argos is a simple python agent that listen and filter packets from tcpdump and generate a json to create a map of interconnexion of assets. An example of automated deployment and fetching of json is done with ansible, then you can use the orchestrator to generate a .dot file to create a map of interconnection between filtered IPs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors