@@ -34,10 +34,9 @@ def do_monitor(self, args, repository):
3434 series) or --command (e.g. create or prune). Neither the repository passphrase nor
3535 the borg key is needed for reading.
3636
37- Reports accumulate as append-only objects; --keep=N deletes all but the N newest
38- after reading (this needs delete permission on the monitoring namespace).
37+ Reports accumulate over time; --keep=N deletes all but the N newest after reading.
3938
40- With --key (which does need the borg key) it instead derives and prints the
39+ With --key (which does need the borg key), it derives and prints the
4140 BORG_MONITORING_KEY value for this repository, to be configured on the monitoring
4241 host. The printed value only allows verifying and decrypting reports, not creating
4342 them.
@@ -138,21 +137,19 @@ def build_parser_monitor(self, subparsers, common_parser, mid_common_parser):
138137
139138 monitor_epilog = process_epilog (
140139 """
141- Read or export trusted monitoring state of a repository.
140+ Read trusted monitoring state of a repository.
142141
143- Backup-side commands publish a small signed-and-encrypted state report into the
144- repository after each run. Because each report is signed with a key derived from
145- the borg key, the (untrusted) repository server can neither forge nor read it - it
146- can only relay it. A monitoring system can therefore pull and verify the reports
147- from the same server without the repository passphrase.
142+ Borg client commands publish a signed-and-encrypted state report into the
143+ repository after each run. Only borg monitor can read these reports using
144+ the monitoring key.
148145
149146 Setup (once, on a host that has the borg key)::
150147
151- BORG_MONITORING_KEY=$( borg monitor --key)
148+ borg monitor --key # this outputs the monitoring key
152149
153- Then, on the monitoring host, with that value exported as BORG_MONITORING_KEY ::
150+ Then, on the monitoring host::
154151
155- borg monitor
152+ BORG_MONITORING_KEY=<that key> borg monitor
156153
157154 This verifies and decrypts the reports and prints, per archive series (and per
158155 maintenance command), the latest status and its age. It exits with a non-zero code
@@ -199,6 +196,6 @@ def build_parser_monitor(self, subparsers, common_parser, mid_common_parser):
199196 default = monitoring .DEFAULT_KEEP ,
200197 metavar = "N" ,
201198 help = "after reading, delete all but the N newest report objects "
202- f"(needs delete permission; 0 = do not clean up; default: { monitoring .DEFAULT_KEEP } )" ,
199+ f"(0 = do not clean up; default: { monitoring .DEFAULT_KEEP } )" ,
203200 )
204201 subparser .add_argument ("--json" , action = "store_true" , help = "format output as JSON" )
0 commit comments