README.md
author Mahlon E. Smith <mahlon@martini.nu>
Sat, 01 Aug 2020 14:21:21 -0700
changeset 31 07e0ef36e5a3
parent 29 40bcd1565627
permissions -rw-r--r--
Typo correction.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
     1
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
     2
Arborist-SNMP
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
     3
=============
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
     4
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
     5
code
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
     6
: http://code.martini.nu/Arborist-SNMP
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
     7
25
6217282f6070 Bye, Bitbucket.
Mahlon E. Smith <mahlon@martini.nu>
parents: 20
diff changeset
     8
mirrors
6217282f6070 Bye, Bitbucket.
Mahlon E. Smith <mahlon@martini.nu>
parents: 20
diff changeset
     9
: https://github.com/mahlonsmith/Arborist-SNMP
6217282f6070 Bye, Bitbucket.
Mahlon E. Smith <mahlon@martini.nu>
parents: 20
diff changeset
    10
: https://hg.sr.ht/~mahlon/Arborist-SNMP
6217282f6070 Bye, Bitbucket.
Mahlon E. Smith <mahlon@martini.nu>
parents: 20
diff changeset
    11
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    12
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    13
Description
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    14
-----------
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    15
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    16
Arborist is a monitoring toolkit that follows the UNIX philosophy
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    17
of small parts and loose coupling for stability, reliability, and
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    18
customizability.
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    19
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    20
This adds various SNMP support to Arborist's monitoring, specifically
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    21
for OIDS involving:
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    22
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    23
 - Disk space capacity
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    24
 - System CPU utilization
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    25
 - Memory and swap usage
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    26
 - Running process checks
20
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
    27
 - UPS battery checks
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    28
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    29
It tries to provide sane defaults, while allowing fine grained settings
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    30
per resource node.  Both Windows and UCD-SNMP systems are supported.
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    31
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    32
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    33
Prerequisites
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    34
-------------
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    35
26
54f2f57cc0b0 Automatically clear stale mounts from node properties during disk checks.
Mahlon E. Smith <mahlon@martini.nu>
parents: 25
diff changeset
    36
  * Ruby 2.4 or better
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    37
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    38
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    39
Installation
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    40
------------
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    41
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    42
    $ gem install arborist-snmp
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    43
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    44
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    45
Configuration
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    46
-------------
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    47
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    48
Global configuration overrides can be added to the Arborist config file,
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    49
under the `snmp` key.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    50
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    51
The defaults are as follows:
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
    52
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
    53
```
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
    54
arborist:
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
    55
  snmp:
17
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    56
    timeout: 2
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    57
    retries: 1
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    58
    community: public
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    59
    version: 2c
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    60
    port: 161
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    61
    batchsize: 25
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    62
    cpu:
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    63
      warn_at: 80
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    64
    disk:
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    65
      warn_at: 90
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    66
      include: 
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    67
      exclude:
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    68
      - "^/dev(/.+)?$"
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    69
      - "/dev$"
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    70
      - "^/net(/.+)?$"
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    71
      - "/proc$"
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    72
      - "^/run$"
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    73
      - "^/sys/"
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    74
      - "/sys$"
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    75
    processes:
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    76
      check: []
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    77
    memory:
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    78
      physical_warn_at: 
e4f0fd44734d Fix up the docs, make the default disk exclusion list more useful.
Mahlon E. Smith <mahlon@martini.nu>
parents: 15
diff changeset
    79
      swap_warn_at: 60
20
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
    80
    ups:
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
    81
      battery:
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
    82
        capacity_warn_at: 60
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
    83
        temperature_warn_at: 50
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
    84
```
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    85
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    86
The `warn_at` keys imply usage capacity as a percentage. ie:  "Warn me
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    87
when a disk mount point is at 90 percent utilization."
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    88
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    89
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    90
### Library Options
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    91
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    92
  * **timeout**: How long to wait for an SNMP response, in seconds?
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    93
  * **retries**: If an error occurs during SNMP communication, try again this many times before giving up.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    94
  * **community**: The SNMP community name for reading data.
14
d5cb8bd33170 Although faster, once aiming a few thousand nodes at net-snmp2 it leaks memory like a sieve. Use 'netsnmp' instead.
Mahlon E. Smith <mahlon@martini.nu>
parents: 11
diff changeset
    95
  * **version**: The SNMP protocol version.  v1, v2c, and v3 are supported.
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    96
  * **port**: The UDP port SNMP is listening on.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    97
  * **batchsize**: How many hosts to gather SNMP data on simultaneously.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    98
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
    99
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   100
### Category Options and Behavior
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   101
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   102
#### CPU
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   103
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   104
  * **warn_at**: Set the node to a `warning` state when utilization is at or over this percentage.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   105
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   106
Utilization takes into account CPU core counts, and uses the 5 minute
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   107
load average to calculate a percentage of current CPU use.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   108
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   109
2 properties are set on the node. `cpu` contains the detected CPU count
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   110
and current utilization. `load` contains the 1, 5, and 15 minute load
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   111
averages of the machine.
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   112
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   113
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   114
#### Disk
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   115
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   116
  * **warn_at**: Set the node to a `warning` state when disk capacity is at or over this amount.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   117
                 You can also set this to a Hash, keyed on mount name, if you want differing
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   118
                 warning values per mount point.  A mount point that is at 100% capacity will
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   119
                 be explicity set to `down`, as the resource it represents has been exhausted.
31
07e0ef36e5a3 Typo correction.
Mahlon E. Smith <mahlon@martini.nu>
parents: 29
diff changeset
   120
  * **alert_readonly**: Set the node to an `error` state if mounts are readonly.
29
40bcd1565627 Alterations for consistency, add documentation. Version bump.
Mahlon E. Smith <mahlon@martini.nu>
parents: 26
diff changeset
   121
                 This may be helpful in iscsi-root environments.  You can set this to a Hash,
40bcd1565627 Alterations for consistency, add documentation. Version bump.
Mahlon E. Smith <mahlon@martini.nu>
parents: 26
diff changeset
   122
                 keyed on mount name, if you want differing behavior per mount point.
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   123
  * **include**: String or Array of Strings.  If present, only matching mount points are
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   124
                 considered while performing checks.  These are treated as regular expressions.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   125
  * **exclude**: String or Array of Strings.  If present, matching mount point are removed
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   126
                 from evaluation.  These are treated as regular expressions.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   127
15
d4776d62b193 Include set property information for each monitor type.
Mahlon E. Smith <mahlon@martini.nu>
parents: 14
diff changeset
   128
A single property "mounts" is set on the node, which is a hash keyed by
d4776d62b193 Include set property information for each monitor type.
Mahlon E. Smith <mahlon@martini.nu>
parents: 14
diff changeset
   129
mountpoint, with current capacity values.
d4776d62b193 Include set property information for each monitor type.
Mahlon E. Smith <mahlon@martini.nu>
parents: 14
diff changeset
   130
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   131
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   132
#### Memory
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   133
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   134
  * **physical_warn_at**: Set the node to a `warning` state when RAM utilization is at or over this percentage.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   135
  * **swap_warn_at**: Set the node to a `warning` state when swap utilization is at or over this percentage.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   136
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   137
Warnings are only set for swap by default, since that is usually a
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   138
better indication of an impending problem.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   139
15
d4776d62b193 Include set property information for each monitor type.
Mahlon E. Smith <mahlon@martini.nu>
parents: 14
diff changeset
   140
2 properties are set on the node, "memory" and "swap".  Each is a Hash
d4776d62b193 Include set property information for each monitor type.
Mahlon E. Smith <mahlon@martini.nu>
parents: 14
diff changeset
   141
that contains current usage and remaining available.
d4776d62b193 Include set property information for each monitor type.
Mahlon E. Smith <mahlon@martini.nu>
parents: 14
diff changeset
   142
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   143
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   144
#### Processes
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   145
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   146
  * **check**: String or Array of Strings.  A list of processes to check if running.  These are
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   147
               treated as regular expressions, and include process arguments.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   148
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   149
If any process in the list is not found in the process table, the
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   150
resource is set to a `down` state.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   151
15
d4776d62b193 Include set property information for each monitor type.
Mahlon E. Smith <mahlon@martini.nu>
parents: 14
diff changeset
   152
A single property is set on the node, a "counts" key that contains the
d4776d62b193 Include set property information for each monitor type.
Mahlon E. Smith <mahlon@martini.nu>
parents: 14
diff changeset
   153
current number of running processes.
d4776d62b193 Include set property information for each monitor type.
Mahlon E. Smith <mahlon@martini.nu>
parents: 14
diff changeset
   154
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   155
20
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   156
#### UPS
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   157
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   158
##### Battery
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   159
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   160
  * **capacity_warn_at**: Set the node to a `warning` state when the battery capacity is at or below this percentage.
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   161
  * **temperature_warn_at**: Set the node to a `warning` state when the battery temperature is at or above this
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   162
                             temperature (in Celcius).
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   163
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   164
This check warns when the UPS is on battery, and reports the UPS' own
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   165
estimated time remaining.
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   166
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   167
A warning state will also be triggered based on battery status - low,
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   168
depleted, or unknown.
00a38d493f2c add UPS monitoring capability
Katelyn Schiesser <kschiesser@laika.com>
parents: 17
diff changeset
   169
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   170
Examples
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   171
--------
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   172
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   173
In the simplest form, using default behaviors and settings, here's an
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   174
example Monitor configuration:
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   175
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   176
```
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   177
require 'arborist/snmp'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   178
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   179
Arborist::Monitor 'cpu load check', :cpu do
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   180
	every 1.minute
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   181
	match type: 'resource', category: 'cpu'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   182
	exec( Arborist::Monitor::SNMP::CPU )
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   183
end
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   184
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   185
Arborist::Monitor 'partition capacity', :disk do
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   186
	every 1.minute
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   187
	match type: 'resource', category: 'disk'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   188
	exec( Arborist::Monitor::SNMP::Disk )
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   189
end
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   190
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   191
Arborist::Monitor 'process checks', :proc do
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   192
	every 1.minute
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   193
	match type: 'resource', category: 'process'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   194
	exec( Arborist::Monitor::SNMP::Process )
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   195
end
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   196
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   197
Arborist::Monitor 'memory', :memory do
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   198
	every 1.minute
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   199
	match type: 'resource', category: 'memory'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   200
	exec( Arborist::Monitor::SNMP::Memory )
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   201
end
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   202
```
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   203
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   204
Additionally, if you'd like these SNMP monitors to rely on the SNMP
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   205
service itself, you can add a UDP check for that.
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   206
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   207
```
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   208
Arborist::Monitor 'udp service checks', :udp do
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   209
	every 30.seconds
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   210
	match type: 'service', protocol: 'udp'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   211
	exec( Arborist::Monitor::Socket::UDP )
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   212
end
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   213
```
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   214
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   215
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   216
And a default node declaration:
4
e6eb11b1e00d Refactor. Move all SNMP "sections" to their own classes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 1
diff changeset
   217
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   218
```
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   219
Arborist::Host 'example' do
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   220
	description 'An example host'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   221
	address 'demo.example.com'
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   222
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   223
	resource 'cpu'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   224
	resource 'memory'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   225
	resource 'disk'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   226
end
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   227
```
4
e6eb11b1e00d Refactor. Move all SNMP "sections" to their own classes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 1
diff changeset
   228
e6eb11b1e00d Refactor. Move all SNMP "sections" to their own classes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 1
diff changeset
   229
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   230
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   231
All configuration can be overridden from the defaults using the `config`
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   232
pragma, per node.  Here's a more elaborate example that performs the following:
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   233
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   234
  * All SNMP monitored resources are quieted if the SNMP service itself is unavailable.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   235
  * Only monitor specific disk partitions, warning at different capacities .
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   236
  * Ensure the 'important' processing is running with the '--production' flag.
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   237
  * Warns at 95% memory utilization OR 10% swap.
29
40bcd1565627 Alterations for consistency, add documentation. Version bump.
Mahlon E. Smith <mahlon@martini.nu>
parents: 26
diff changeset
   238
  * Ensure '/' is not a mounted as a read-only filesystem.
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   239
10
794cd469a1a2 README.md edited online with Bitbucket
Mahlon E. Smith <mahlon@martini.nu>
parents: 9
diff changeset
   240
-
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   241
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   242
```
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   243
Arborist::Host 'example' do
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   244
	description 'An example host'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   245
	address 'demo.example.com'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   246
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   247
	service 'snmp', protocol: 'udp'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   248
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   249
	resource 'cpu', description: 'machine cpu load' do
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   250
		depends_on 'example-snmp'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   251
	end
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   252
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   253
	resource 'memory', description: 'machine ram and swap' do
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   254
		depends_on 'example-snmp'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   255
		config physical_warn_at: 95, swap_warn_at: 10
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   256
	end
8
e0b7c95a154f Refactor for real world usage and latest Arborist behaviors.
Mahlon E. Smith <mahlon@martini.nu>
parents: 6
diff changeset
   257
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   258
	resource 'disk', description: 'partition capacity' do
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   259
		depends_on 'example-snmp'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   260
		config \
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   261
			include: [
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   262
				'^/tmp',
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   263
				'^/var'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   264
			],
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   265
			warn_at: {
29
40bcd1565627 Alterations for consistency, add documentation. Version bump.
Mahlon E. Smith <mahlon@martini.nu>
parents: 26
diff changeset
   266
				'/tmp' => 50,
40bcd1565627 Alterations for consistency, add documentation. Version bump.
Mahlon E. Smith <mahlon@martini.nu>
parents: 26
diff changeset
   267
				'/var' => 80
40bcd1565627 Alterations for consistency, add documentation. Version bump.
Mahlon E. Smith <mahlon@martini.nu>
parents: 26
diff changeset
   268
			},
40bcd1565627 Alterations for consistency, add documentation. Version bump.
Mahlon E. Smith <mahlon@martini.nu>
parents: 26
diff changeset
   269
			alert_readonly: {
40bcd1565627 Alterations for consistency, add documentation. Version bump.
Mahlon E. Smith <mahlon@martini.nu>
parents: 26
diff changeset
   270
				'/' => true
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   271
			}
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   272
	end
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   273
11
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   274
	resource 'process' do
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   275
		depends_on 'example-snmp'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   276
		config check: 'important --production'
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   277
	end
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   278
end
9187008b0989 More doc misc fixes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 10
diff changeset
   279
```
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   280
4
e6eb11b1e00d Refactor. Move all SNMP "sections" to their own classes.
Mahlon E. Smith <mahlon@martini.nu>
parents: 1
diff changeset
   281
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   282
## License
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   283
26
54f2f57cc0b0 Automatically clear stale mounts from node properties during disk checks.
Mahlon E. Smith <mahlon@martini.nu>
parents: 25
diff changeset
   284
Copyright (c) 2016-2020 Michael Granger and Mahlon E. Smith
0
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   285
All rights reserved.
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   286
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   287
Redistribution and use in source and binary forms, with or without
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   288
modification, are permitted provided that the following conditions are met:
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   289
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   290
* Redistributions of source code must retain the above copyright notice,
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   291
  this list of conditions and the following disclaimer.
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   292
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   293
* Redistributions in binary form must reproduce the above copyright notice,
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   294
  this list of conditions and the following disclaimer in the documentation
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   295
  and/or other materials provided with the distribution.
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   296
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   297
* Neither the name of the author/s, nor the names of the project's
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   298
  contributors may be used to endorse or promote products derived from this
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   299
  software without specific prior written permission.
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   300
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   301
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   302
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   303
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   304
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   305
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   306
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   307
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   308
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   309
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   310
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   311
8547a1ce445e Initial commit.
Mahlon E. Smith <mahlon@martini.nu>
parents:
diff changeset
   312