{"id":23757086,"url":"https://github.com/mmitch/nomd","last_synced_at":"2026-02-03T15:01:22.232Z","repository":{"id":138318989,"uuid":"100135587","full_name":"mmitch/nomd","owner":"mmitch","description":"simple nomitoring distribution","archived":false,"fork":false,"pushed_at":"2025-12-02T23:04:33.000Z","size":135,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-05T23:29:48.381Z","etag":null,"topics":["alerting","cron","monitoring","notifications","perl","shell"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mmitch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-08-12T20:13:48.000Z","updated_at":"2025-12-02T23:04:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"21c1bc1c-f727-4553-931f-6ac888688912","html_url":"https://github.com/mmitch/nomd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mmitch/nomd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmitch%2Fnomd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmitch%2Fnomd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmitch%2Fnomd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmitch%2Fnomd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmitch","download_url":"https://codeload.github.com/mmitch/nomd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmitch%2Fnomd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29047790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T14:55:20.264Z","status":"ssl_error","status_checked_at":"2026-02-03T14:55:19.725Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["alerting","cron","monitoring","notifications","perl","shell"],"created_at":"2024-12-31T19:36:59.481Z","updated_at":"2026-02-03T15:01:22.192Z","avatar_url":"https://github.com/mmitch.png","language":"Shell","readme":"nomd nomitoring distribution\n============================\n\n[![Build status](https://github.com/mmitch/nomd/workflows/CI/badge.svg)](https://github.com/mmitch/nomd/actions?query=workflow%3ACI)\n[![GPL 3+](https://img.shields.io/badge/license-GPL%203%2B-blue.svg)](http://www.gnu.org/licenses/gpl-3.0-standalone.html)\n\nGenerally, nomd is small and lightweight nomitoring distribution.  \nSpecifically, nomd is no omd.\n\nnomd is designed to be run once or twice a day via cron or every time\nyou log in to your desktop.  It can inform and warn you about various\nthings, like that one partition that is nearly full again or that your\nISP mail server is currently unreachable.\n\nnomd is not designed to be deployed on a server farm with hundreds of\nsystems and provide instant alerts, graphs and statistics.  There are\nvarious other tools for this kind of scenario (but if you do look for\na small and simple solution for some local statistic graphs, have a\nlook at https://github.com/mmitch/rrd).\n\nfeatures\n--------\n\n* very few dependencies\n  - some usual shell commands\n  - some Perl\n* easy to install\n  - clone the git repository and you're ready to go\n  - run on demand or via cron\n* simple configuration\n  - it's just a shell script, no need to learn a new language\n* maximum flexibility\n  - configuration is just a shell script: use conditions, call\n    external tools, everything is possible\n* self documenting\n  - `nomdoc` shows all available commands and explains their use\n  - `nomdep` shows missing dependencies (binaries, Perl modules)\n* no special privileges required\n  - all default command should run as a normal user, no root needed\n\nquick start\n-----------\n\nAfter cloning the repository, enter the `nomd` directory and run\n`./nomd` to run the default configuration.  If you run into problems\nor like to know more, read on.\n\nbasics\n------\n\nNote: All nomd operations expect your current working directory to be\nthe root directory of the nomd installation.\n\nnomd basically distinguishes two types of commands:\n\n* *checks* are commands that execute various checks and return the\n  status as a result\n\n* *notifications* are commands that aggregate the generated status and\npresent them to you in different ways\n\ndependencies\n------------\n\nnomd definitely needs\n\n* bash 4 or later\n* Perl 5.10 or later\n\nAll other dependencies can be listed by running `./nomdep`.  It will\nshow missing dependencies together with the checks and notifications\nthat depend on them so you can decide if you need that dependency or\ncan live on without it.\n\nInstalling missing dependencies is up to you.\n\nIf you use the `apt` package manager, `./nomdep --apt` tries to guess\nmissing package names for you.  This is quite wobbly, but might save\nyou some searching and typing in simple cases.\n\nIf you use the `pkg` package manager, `./nomdep --pkg` tries to guess\nmissing package names for you.  This is quite wobbly, but might save\nyou some searching and typing in simple cases.\n\nIf you manage local Perl packages via `cpanm`, run `./nomdep --cpanm`\nto print a command to install all missing Perl packages at once.  The\noutput should be usable for other Perl package managers, too.\n\ndocumentation\n-------------\n\nRun `./nomdoc` to show a list of all available *checks* and\n*notifications*.\n\nAdd an argument to show details about all *checks* and *notifications*\nthat match the given argument (it's treated as a regular expression).\n`./nomdoc ^notify` will list all *notifications* with their\nparameters.\n\nconfiguration\n-------------\n\n`nomd` reads these configuration files:\n\n* `check.local` contains the *checks* you want to run.  It is a shell\n  script, you can mostly do what you want, but you should not write to\n  stdout as this is where the check results are collected.\n* If `check.local` is missing, `nomd` falls back to `check.default`\n  which contains an example configuration and is part of the nomd\n  distribution.\n* Likewise, `notify.local` contains the *notifications* you want to\n  run.  It is also shell script, but this time stdout can be used\n  without restrictions.\n* Again, if `notify.local` is missing, `nomd` falls back to\n  `notify.default` which contains an example configuration and is part\n  of the nomd distribution.\n\nTo get started with your own configuration, copy `check.default` and\n`notify.default` to `check.local` and `notify.local` and start\nhacking.\n\nBoth `check.local` and `notify.local` are not part of the git\nrepository and will not be overwritten on updates.\n\n### advanced configuration\n\n`nomd` currently passes all arguments to both the check and notify\nscripts.  I often do something like this in my `notify.local` to allow\nquick testing of changes via `./nomd --test` when `nomd` is normally\njust run daily via cron:\n\n```shell\nif [ \"$1\" = '--test' ]; then\n    notify_stdout\nelse\n    notify_mail\nfi\n```\n\n### custom checks and notifications\n\nHave a look at the existing *checks* and *notifications* in the\n`check/` and `notify/` subdirectories and/or read `PROTOCOL.md` for a\nquick overview of some of the internals.\n\nYou can implement custom commands either directly in your\n`check.local`/`notify.local` or write a standalone command in the\n`check/` and `notify/` subdirectories.\n\nIf your standalone custom commands might be useful for other people,\nfeel free to send me a pull request so they can be included in the\nnomd distribution :-)\n\nrunning nomd\n------------\n\nTo start nomd, you must change into the installation directory and run\n`./nomd`.  Alternatively, you can run `make` or `make run`, but this\ndoes not allow you to pass parameters to your scripts.\n\nnomd runs the configured *checks*, sends any *notifications* and\nexits.\n\n### irregular runs\n\nOn desktop systems a good way to run nomd would be on every logon.\nDepending in your system configuration, it could suffice to add this\nline to your `~/.xinitrc`:\n\n```\n( cd git/nomd; ./nomd ) \u0026\n```\n\nThis will run nomd in the background so your login does not stall.  It\nexpects the nomd installation directory to be `$HOME/git/nomd`.\n\n### regular runs\n\nUse a tool of your choice to run nomd regularly if your system is\nrunning continuously.\n\nIf you use cron, the following crontab entry would run nomd twice a\nday if your installation directory is `$HOME/git/nomd`:\n\n```\n0 5,17\t* * *\tcd git/nomd; ./nomd\n```\n\nupdates\n-------\n\nIf you cloned the nomd repository, simply run `git pull` to get the\nlatest changes.  You can use the `check_nomd_updates` *check* to get\ninformed when updates are available.\n\nresources\n---------\n\nProject homepage, git repository and bug tracker are available at\nhttps://github.com/mmitch/nomd\n\nlicense\n-------\n\nCopyright (C) 2017-2023  Christian Garbs \u003cmitch@cgarbs.de\u003e  \nLicensed under GNU GPL v3 or later.\n\nnomd is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nnomd is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with nomd.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmitch%2Fnomd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmitch%2Fnomd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmitch%2Fnomd/lists"}