{"id":21116380,"url":"https://github.com/eraclitux/rim","last_synced_at":"2025-07-08T19:30:47.134Z","repository":{"id":22265253,"uuid":"25599327","full_name":"eraclitux/rim","owner":"eraclitux","description":"Agentless network interfaces monitor for GNU/Linux firewalls/servers","archived":false,"fork":false,"pushed_at":"2017-04-04T13:34:38.000Z","size":176,"stargazers_count":16,"open_issues_count":5,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-04T09:11:52.350Z","etag":null,"topics":["ddos","firewall","linux","server"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eraclitux.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-22T19:10:13.000Z","updated_at":"2023-05-12T16:41:02.000Z","dependencies_parsed_at":"2022-08-21T01:30:54.547Z","dependency_job_id":null,"html_url":"https://github.com/eraclitux/rim","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/eraclitux/rim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eraclitux%2Frim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eraclitux%2Frim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eraclitux%2Frim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eraclitux%2Frim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eraclitux","download_url":"https://codeload.github.com/eraclitux/rim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eraclitux%2Frim/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264333828,"owners_count":23592299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ddos","firewall","linux","server"],"created_at":"2024-11-20T02:27:45.499Z","updated_at":"2025-07-08T19:30:46.829Z","avatar_url":"https://github.com/eraclitux.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"===============================\nRIM - Remote Interfaces Monitor\n===============================\n\nCommand line tool to get status of remote network interfaces on linux servers. It's like a ``vmstat`` for remote NICs.\n\nOn a multicore machine can concurrently handle hundreds of servers per time, fast.\n\nIt reads information exposed through ``/proc`` file system using ssh connections so no remote agents are needed on targets. Even *linux bridges* are included in report.\n\nFind incoming and outgoing **DDoS** in your network in a snap, even before NetFlow probes!\n\n.. contents::\n\nUsage examples\n==============\n\nPut target hostnames in a file, one per line es.: ``~/data/target_hosts.txt``. It is possible to specify a different port than ``22`` using syntax::\n\n        myhost.tld[:port]\n\nSorting\n-------\n\n``-k1`` \u0026 ``-k2`` set hierarchical sort keys. Supported sorting keys are::\n\n        tx-Kbps, tx-pps, tx-eps, tx-dps, rx-Kbps, rx-pps, rx-eps, rx-dps\n\n*Default sort settings* are ``1st: rx-dps`` \u0026 ``2nd: rx-Kbps`` because these have proven to be the most effective spotting anomalies in the network of cloud service provider where rim has born.\n\nFind top-talkers\n----------------\n\nInterfaces most active receiving by Kb/s::\n\n        rim -f ~/data/target_hosts.txt -k1 rx-Kbps\n\nInterfaces most active transmitting by Packets/s, the first ten (useful to spot out going DDoS)::\n\n        rim -f ~/data/target_hosts.txt -k1 tx-pps -l 10\n\nIt's also possible to use ``rim`` in a pipe::\n\n        cat ~/data/target_hosts.txt | rim | less\n\nNotes\n~~~~~\n\nIn case of problems getting info from remote hosts, errors are printed to ``stderr`` so you must redirect it to stdout to propagate them throgh pipes::\n\n        rim -f ~/data/target_hosts.txt -n 2\u003e\u00261 | less\n\nSpot problems\n-------------\n\nMany anomalies on network interfaces can be easily spotted via Drops/s and Errors/s.\n\nDefault sort key are for rx data, to show tx data::\n\n        rim -f ~/data/target_hosts.txt -k1 tx-dps -k2 tx-Kbps\n\nTo print also Errors/s ``-e`` option must be used.\n\n``-n`` do not show titles. Without ``-p`` ``rim`` will try no password authentication and ``ssh-agent`` as fallback. Default user is root, another one can be used with ``-u`` flag.\n\nConfiguration\n-------------\n\nA configuration file can be used to specify configuration parameters. File must be end with ``.cfg``. Use env var ``RIM_CONF_FILE`` to specify its path. You could put::\n\n        export RIM_CONF_FILE=/path/to/conf.cfg\n\nin your ``.bashrc``.\n\nAvailable parameters can be showed with ``rim -h``, lowercase first letter when use them in file. For example to specify ``HostsFile``::\n\n        hostsFile = /path/to/file\n\nBuild/Install\n-------------\n\nThe easiest way is to get already compiled binaries for your system from Github's realeses page.\n\nWith a proper Go environment installed just run::\n\n        godep go build\n\nTo install in ``$GOPATH/bin``::\n\n        godep go install\n\nChangelog\n---------\n\n- v2.2.0-beta: show a spinner.\n- v2.1.0-beta: add connection timeout parameter.\n- v2.0.0-beta: configuration file capabilities.\n- v2.0.0-alpha: it adds sort capabilities, no more need to pipe the output to ``sort``. It breaks APIs (output changed).\n- v1.0.0: initial relase, retrieve info from remote hosts via ssh.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feraclitux%2Frim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feraclitux%2Frim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feraclitux%2Frim/lists"}