Day-to-day admin
The jobs that come up while DRSM is running: hosts in and out, thresholds, notices for users, upgrades and finding out why something is red. Everything is plain text files and a few scripts, so each job is also easy to hand to an AI assistant.
Commands below use ~/drsm and ~/.drsm.sh. If your install uses DRSM_CONFIG, put DRSM_CONFIG=<your config> in front of each command. Scripts that change files show a dry run first and need --apply.
Every day
- Open the Overview: the banner and Needs attention list what is wrong, worst first.
- Check that reports are current: a host shown as Stale (purple) means its checks did not run. Look at cron and
$LOGdir/drsm_run*.log. - Alerts go to the addresses in
alert.email.listor the site'sALERT_EMAIL, see Thresholds and alerts.
Add a host
Linux host from a host file
$ cp ~/drsm/etc/hosts/example.conf_example ~/drsm/etc/hosts/web2.conf
$ vi ~/drsm/etc/hosts/web2.conf # HOST, DESCRIPTION, IMPACT, GROUP
$ ~/drsm/bin/drsm_run.sh -n -H web2 -v # one run, no alerts
The monitor account's SSH key must be in the host's authorized_keys.
Linux host from Ansible
With ANSIBLE_INVENTORY (or Ansible Automation Platform, ANSIBLE_AAP_URL) set, add the host to a group under one of the ANSIBLE_TIERS groups in Ansible. DRSM checks it from the next run. utils/drsm_ansible_hosts.sh lists what DRSM takes from Ansible. See Ansible inventory.
Windows host
Install the reporting agent. When its first report arrives, utils/wra_hosts.sh (dry run, then --apply) makes its host file. See Windows hosts.
Network device or address
A host file with COLLECTOR=none, PLUGINS="" and PROBES="network/ping" (add network/https for a web service).
Remove a host
$ ~/drsm/utils/drsm_remove_host.sh web2 # dry run
$ ~/drsm/utils/drsm_remove_host.sh --apply web2
$ ~/drsm/utils/drsm_remove_host.sh --apply -f retired.txt # one host per line
This removes the host file (a copy goes to etc/hosts/removed) and its reports. A host that comes from Ansible is removed from Ansible; with ANSIBLE_EXCLUSIVE=yes its checks stop at once, and drsm_remove_host.sh clears its old reports.
Change a threshold
Every plugin setting has a default in plugins/<category>/<name>/plugin.conf. Override it for all hosts in etc/hosts/_defaults.conf, for a site in its site file, or for one host in its host file, as <category>_<name>_<SETTING>=value:
storage_disk_WARN=85
storage_disk_SKIP="/mnt/scratch"
core_cpu_TIMEOUT=60
Status messages
Tell everyone about an outage or maintenance: the message scrolls across the top of every page. See Status messages.
$ ~/drsm/utils/drsm_message.sh --apply add warning "Mail relay maintenance 18:00 to 19:00" --until "2026-11-03 19:00"
Your own scripts
- A new check on a host: write a plugin in
plugins/local, see Writing a plugin. - A script that already writes a report file: list it in
$EXTreportsto show it on the dashboard with a state, see Reports from your own scripts. Start status lines withERROR,WARNINGorINFOand write aREPORT_ETIME:line with the run time. - Dashboard settings and menus are in
$CONFIGdir/drsm.php, colors in$WWWdir/site/custom.css, see Customizing the dashboard.
Upgrade
- Unpack the new release beside the old source.
- Run
utils/install.shfrom it as the DRSM user. Host files, site files,plugins/local,_defaults.conf,config/drsm.php(the new one is written asdrsm.php_install_new) and$WWWdir/siteare kept. - Compare
drsm.php_install_newwithdrsm.phpfor new settings, read What's new. drsm_run.sh -l, then one run with-n.
Troubleshooting
| Symptom | Look at |
|---|---|
| Host is Stale | Cron, $LOGdir/drsm_run*.log, drsm_run.sh -n -H <host> -v |
| Host is red | Its report page: the first ERROR line under its check |
| A check is Unknown | A command in the plugin's REQUIRES is missing on the host |
| Host waits for its first report | It is new, or its report folder is left from a removed host (drsm_remove_host.sh) |
| Page blank or wrong | The Web server error log, php -l on the page |
| No alert email | -n on the cron line, the address lists, mail relay |