{"id":13533873,"url":"https://github.com/CHPC-UofU/arbiter2","last_synced_at":"2025-04-01T22:31:00.226Z","repository":{"id":50420636,"uuid":"424689498","full_name":"chpc-uofu/arbiter2","owner":"chpc-uofu","description":"A daemon that uses cgroups to monitor and manage user behavior on login nodes","archived":false,"fork":false,"pushed_at":"2024-08-02T19:36:28.000Z","size":533,"stargazers_count":60,"open_issues_count":3,"forks_count":5,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-11-02T21:31:39.490Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chpc-uofu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-04T17:54:07.000Z","updated_at":"2024-10-17T17:04:58.000Z","dependencies_parsed_at":"2024-07-19T22:51:37.807Z","dependency_job_id":"7b472b66-5a48-4620-9780-def56888917c","html_url":"https://github.com/chpc-uofu/arbiter2","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chpc-uofu%2Farbiter2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chpc-uofu%2Farbiter2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chpc-uofu%2Farbiter2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chpc-uofu%2Farbiter2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chpc-uofu","download_url":"https://codeload.github.com/chpc-uofu/arbiter2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246720455,"owners_count":20822907,"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":[],"created_at":"2024-08-01T07:01:23.915Z","updated_at":"2025-04-01T22:30:59.876Z","avatar_url":"https://github.com/chpc-uofu.png","language":"Python","funding_links":[],"categories":["Software"],"sub_categories":["Trends"],"readme":"\u003cimg src=\"resources/arbiter2.png\" width=\"150px\" /\u003e\n\n# Arbiter2\n\n[![License: GPL v2](https://img.shields.io/badge/License-GPL_v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)\n\nArbiter2 monitors and protects interactive nodes with [cgroups](https://en.wikipedia.org/wiki/Cgroups). It records the activity on nodes, automatically sets limits on the resources available to each user, and notifies users and administrators by email when users are penalized for using excessive resources. Arbiter2 can also optionally synchronize these penalties and the states of users across interactive nodes. A technical paper has been written on the program and is [available on the ACM Digital Library](https://doi.org/10.1145/3332186.3333043) and the [primary author's homepage](https://dylngg.github.io/resources/arbiterTechPaper.pdf).\n\nArbiter2 is written by the [University of Utah Center for High Performance Computing](https://www.chpc.utah.edu/), with some contributions from [Idaho National Laboratory](https://inl.gov).\n\n## Installation\nThe installation instructions are [available in INSTALL.md](INSTALL.md). If synchronization capabilities are used, it is recommended that the [synchronization document](SYNCHRONIZATION.md) be read.\n\n## Changes to this project\nTo review modifications and to see how to upgrade versions, see [CHANGELOG.md](CHANGELOG.md).\n\n## Tools for monitoring and managing users\n\nThe following tools all (optionally) use the `ARBDIR`, `ARBETC` and `ARBCONFIG` environment variables to allow for the tools to be used and moved outside of the tools/ directory without any additional flags. The following can be modified and put in a bashrc/bash\\_profile to set these automatically.\n```bash\nARBBASEDIR=\"/usr/local/src/Arbiter2/1.4.0/\"\nexport ARBDIR=\"$ARBBASEDIR/arbiter\"\nexport ARBETC=\"$ARBBASEDIR/etc\"\nexport ARBCONFIG=\"$ARBETC/config.toml $ARBETC/_nomemsw.toml $ARBETC/_noperms.toml\"\n```\n\n### Querying a user's status\nThe [arbstatus.py](tools/arbstatus.py) tool can look up what status a user is in, as well as their status timeout. Run `arbstatus.py --help` to view all the options.\n```bash\n$ ./arbstatus.py\nStatus:                  admin\nTime Left:                 inf\nPenalty Occurrences:         0\nDefault Status:          admin\n```\n\n### Checking the configuration\nA configuration can be checked for basic validity using the [cfgparser.py](tools/cfgparser.py) tool. This tool also allows admins to print out the config with hidden and special variables in the resulting configuration.\n\n### Getting periodic updates\nTo get periodic updates about repeat offenders and processes that are seen frequently, use the [arbreport.py](tools/arbreport.py) tool. It allows administrators to see an overview of recent actions taken and can provide summary emails.\n\n### Corralling users' processes\nProcesses can be moved to the appropriate locations in the cgroup hierarchy with [user_corraller.sh](tools/user_corraller.sh). This can be applied to all users with [allusers_corraller.sh](tools/allusers_corraller.sh). More information is available in the installation guide.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCHPC-UofU%2Farbiter2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCHPC-UofU%2Farbiter2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCHPC-UofU%2Farbiter2/lists"}