{"id":20541072,"url":"https://github.com/netways/check_system_basics","last_synced_at":"2025-04-14T08:39:13.478Z","repository":{"id":205864341,"uuid":"715119711","full_name":"NETWAYS/check_system_basics","owner":"NETWAYS","description":"A Monitoring Plugin to test various basic operating system properties (on Linux for now)","archived":false,"fork":false,"pushed_at":"2025-04-02T13:44:19.000Z","size":170,"stargazers_count":7,"open_issues_count":7,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-02T14:37:53.748Z","etag":null,"topics":["icinga","linux","monitoring","plugin"],"latest_commit_sha":null,"homepage":"","language":"Go","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/NETWAYS.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2023-11-06T14:14:58.000Z","updated_at":"2025-04-02T13:44:16.000Z","dependencies_parsed_at":"2024-01-08T01:04:37.098Z","dependency_job_id":"586f625a-5359-4500-b36d-297079c00d40","html_url":"https://github.com/NETWAYS/check_system_basics","commit_stats":{"total_commits":20,"total_committers":4,"mean_commits":5.0,"dds":0.65,"last_synced_commit":"ece35d8ffbee2e365977a140a81d6447c56d5329"},"previous_names":["netways/check_system_basics"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETWAYS%2Fcheck_system_basics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETWAYS%2Fcheck_system_basics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETWAYS%2Fcheck_system_basics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NETWAYS%2Fcheck_system_basics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NETWAYS","download_url":"https://codeload.github.com/NETWAYS/check_system_basics/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248848088,"owners_count":21171302,"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":["icinga","linux","monitoring","plugin"],"created_at":"2024-11-16T01:19:13.151Z","updated_at":"2025-04-14T08:39:13.455Z","avatar_url":"https://github.com/NETWAYS.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# check_system_basics\n\n`check_system_basics` is a monitoring plugin, which is capable of retrieving and processing various Linux metrics such\nas memory or filesystem usage.\n\nIn the current version check_system_basics supports the `memory`, `filesystem`, `psi`, `sensors`, `netdev` and `load` sub commands.\n\n## Usage\n\n### memory\n\nBasic usage:\n\n```bash\ncheck_system_basics memory\n```\n\nA sub command to measure and evaluate memory and swap usage. This is not a trivial topic, but there is [detailed information](https://www.thegeekdiary.com/understanding-proc-meminfo-file-analyzing-memory-utilization-in-linux/) available for those who search for it.\n\nFor the memory usage thresholds can be applied to either available, free or used memory. The recommended way is to set thresholds for available memory,\nsince this is probably the metric most administrators are interested in.\n\n\n### filesystem\n\nBasic usage:\n\n```bash\ncheck_system_basics filesystem\n```\n\nA sub command to check the usage of the currently mounted filesystems.\n\nThresholds can be applied on absolute values (in bytes) or percentage values of space or inode usage on the filesystem.\n\n * With `--exclude-fs-type` and `--include-fs-type` specific filesystem types can be excluded or explicitly included. This matches golang `re` regular expressions\n * With `--exclude-device-path` and `--include-device-path` specific device paths can be excluded or explicitly included. This matches golang `re` regular expressions\n * With `--exclude-mount-path` and `--include-mount-path` specific mount paths can be excluded or explicitly included. This matches golang `re` regular expressions\n\n\n### load\n\nBasic usage:\n\n```bash\ncheck_system_basics load\n```\n\nA sub command to retrieve the current system load values and alert if these are not within the defined thresholds.\n\nBy default no thresholds are applied.\n\n\n### psi\n\nNote: The Pressure stall information interface is not available on all current Linux distributions (specifically it is not\nactivated in their kernel configuration).\nTherefore this command is not available and will exit with an error.\n\nBasic usage:\n\n```bash\ncheck_system_basics psi\n```\n\nA sub command to retrieve the current [\"pressure stall information\"](https://lwn.net/Articles/759781/) values of the system. These are useful metrics to determine a shortage\nof resources on the system, the resources being cpu, memory and io.\nFor each of these resources a 10 second, 60 second and 300 second aggregate percentage value is available for which\namount of time a process did not immediately receive the resource it was asking for and was therefore stalled.\n\nThe PSI interface might not be available on your systems, since not all distributions build it into their kernel or deactivate it (RHEL for example).\nIn this case, the Plugin will return UNKNOWN.\n\nAt least on RHEL systems the PSI interface can be enabled via appending \"psi=1\" to the kernel commandline (`/etc/default/grub`).\n\nThe checks includes the three components CPU, IO and Memory by default, but individual components can be selected with the following flags:\n\n```\n--include-cpu\n--include-memory\n--include-io\n```\n\nDefault thresholds are applied to all of the measurements.\n\n### sensors\n\nBasic usage:\n\n```bash\ncheck_system_basics sensors\n```\n\nA sub command to read the sensors exposed by the linux kernel and display whether they\nare within their respective thresholds (if any are set on the system side).\nAdditionally it will export the respective values as performance data to be rendered\nby a graphing system.\n\nThere are no parameters available yet.\n\n\n## Building\n\n### Necessary tools\n\n * the [`golang` toolchain](https://go.dev/)\n\n### Compiling\n\n```\ngo build\n```\nexecuted in the main folder of this repository will generate an executable. If you are not on a linux system,\nit should probably look like this:\n\n```\nGOOS=linux go build\n```\n\nalternatively there is a *Makefile* included, so\n```\nmake\n```\nshould do the trick.\n\n### Creating the Icinga2 CheckCommand config (if necessary)\n\nThe plugin can generate the `CheckCommand` configuration for Icinga2 itself. This might not be perfect in every situation but might be helpful nonetheless.\n\n```\ncheck_system_basics --dump-icinga2-config \u003e myConfigFile.conf\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetways%2Fcheck_system_basics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetways%2Fcheck_system_basics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetways%2Fcheck_system_basics/lists"}