Appreciate you have removed cmon and solved the problem; however, in having a more leisurely look at the cmon source I see there already s the ability for the user to add mounts to the ignore list via the ignored_mounts config option. If the ignore list is not specified by the user the default ignore list (hard coded in cmon.py) is used, ignored_mounts is specified then that list is used in lieu of the default. Furthermore, when checking a given mount point against the ignore list, the check used is whether the mount point in question starts with any of the entries in the ignore list. So using '/var/lib/docker' in the ignore list *should* work and cause all docker overlays to be ignored (the source used by cmon as the mount points universe on a system is the contents of /proc/mounts with the mount points being the second entry on each line). For info, the entries in the default ignore list are '/lib/init/rw', '/proc', '/sys', '/dev', '/afs', '/mit', '/run', '/var/lib/nfs'. So something like:
[ComputerMonitor] .... ignored_mounts = '/lib/init/rw', '/proc', '/sys', '/dev', '/afs', '/mit', '/run', '/var/lib/nfs', '/var/lib/docker' should work. Note, the apostrophes should not be required but leaving them in won't hurt. My apologies for the earlier mis-information. Gary On Thursday 15 February 2024 at 22:47:17 UTC+10 valken...@gmail.com wrote: > Thanx Gary! > It didn't cross my mind that cmon scans for mounted file systems. I added > /var/lib/docker/overlay2 to the ignore list, but the error persisted. To > save me from further troubles I just removed the cmon extension for the > time being. I will inform Matthew. > > Op donderdag 15 februari 2024 om 02:03:10 UTC+1 schreef gjr80: > >> Correct. Cmon will try to scan all mounted file systems except for those >> in an ignore list. Problem is the ignore list is not user configurable via >> a config file, rather it is hard coded in cmon.py. You have a few >> options; (1) raise an issue against the weewx-cmon repo and ask for Matthew >> to make the ignore list user configurable, (2) drop cmon from your system >> or (3) manually change the ignore list in cmon.py to exclude your docker >> overlays. I'd suggest a combination of (3) and (1). >> >> Have a look at line 266 in cmon.py >> <https://github.com/matthewwall/weewx-cmon/blob/master/bin/user/cmon.py#L266>, >> >> just add your docker overlay to the list. Not sure you can add one wildcard >> entry for all docker overlays but a bit of experimentation will get you >> there. >> >> Gary >> >> And do raise an issue for when Matthew does get some time for cmon. >> >> On Thursday 15 February 2024 at 02:14:31 UTC+10 valken...@gmail.com >> wrote: >> >>> Since upgrading to weewx 5.02 on ubuntue 22.04, deb instaal. I had some >>> issues becuase weewx does not run as root user anymore. Most of the were >>> easy to solve. However on this ubuntu also a docker instance is running for >>> another application. >>> My syslog now tells me this: >>> >>> INFO weewx.engine: Main loop exiting. Shutting engine down. >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: INFO weewx.engine: Shutting >>> down StdReport thread >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: Caught >>> OSError: [Errno 13] Toegang geweigerd: >>> '/var/lib/docker/overlay2/f40006ded3b1ca4e49c40cb408c89374b8b4a067f4de13711cf4be188137d355/merged' >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> Traceback (most recent call last): >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewx/engine.py", line 210, in run >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> self.dispatchEvent(weewx.Event(weewx.CHECK_LOOP, packet=packet)) >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> callback(event) >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewx/engine.py", line 660, in check_loop >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> raise BreakLoop >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> weewx.engine.BreakLoop >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> During handling of the above exception, another exception occurred: >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> Traceback (most recent call last): >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewx/engine.py", line 676, in post_loop >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> self._catchup(self.engine.console.genArchiveRecords) >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewx/engine.py", line 723, in _catchup >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> for record in generator(lastgood_ts): >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewx/drivers/__init__.py", line 31, in >>> genArchiveRecords >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> raise NotImplementedError("Method 'genArchiveRecords' not implemented") >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> NotImplementedError: Method 'genArchiveRecords' not implemented >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> During handling of the above exception, another exception occurred: >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> Traceback (most recent call last): >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewxd.py", line 166, in main >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> engine.run() >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewx/engine.py", line 217, in run >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> self.dispatchEvent(weewx.Event(weewx.POST_LOOP)) >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> callback(event) >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewx/engine.py", line 678, in post_loop >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> self._software_catchup() >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewx/engine.py", line 741, in _software_catchup >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> self.engine.dispatchEvent(weewx.Event(weewx.NEW_ARCHIVE_RECORD, >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> callback(event) >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/etc/weewx/bin/user/cmon.py", line 723, in new_archive_record >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> self.save_data(self.get_data(now, self.last_ts)) >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/etc/weewx/bin/user/cmon.py", line 743, in get_data >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> record = self.collector.get_data(now_ts) >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> File "/etc/weewx/bin/user/cmon.py", line 551, in get_data >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> st = os.statvfs(disk) >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> PermissionError: [Errno 13] Toegang geweigerd: >>> '/var/lib/docker/overlay2/f40006ded3b1ca4e49c40cb408c89374b8b4a067f4de13711cf4be188137d355/merged' >>> Feb 14 16:55:15 kwsweerstation weewxd[9005]: CRITICAL __main__: **** >>> Waiting 10 seconds then retrying... >>> Feb 14 16:55:25 kwsweerstation weewxd[9005]: INFO __main__: retrying... >>> >>> As far as I understand it appears weewx is trying to access a docker >>> overlay file, and doesn´t have the appropriate rights. Now I don't >>> understand what weewx has to do with my docker installation? Or am I totaly >>> missing the point of the issue here? I'm not sure how to fix this one. >>> Stopping docker seems to resolve the issue. >>> >> -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/40844796-54ee-43fd-873d-7d9319f50f7bn%40googlegroups.com.