Когда-то, при обновлении с p9 на p10, перестал работать плагин rrdcached. В p11 проблема не исправилась: collectd[2376958]: rrdcached plugin: rrdc_update (/var/lib/collectd/rrd/localhost/interface-ether3.401/if_dropped.rrd, [1771839921.964168:9:0], 1) failed: rrdcached@unix:/run/rrdcached.sock: /var/lib/collectd/rrd/localhost/interface-ether3.401/if_dropped.rrd: Permission denied (status=-1) LoadPlugin rrdcached #LoadPlugin rrdtool <Plugin rrdcached> DaemonAddress "unix:/run/rrdcached.sock" DataDir "/var/lib/collectd/rrd" CreateFiles true CreateFilesAsync false CollectStatistics true </Plugin> rrdcached запущен с настройками по умолчанию. Если сделать "rm -rf /var/lib/collectd/rrd", то вся иерархия по хосту создаётся вместе с rrd-файлами, но ошибка остаётся.
В основном проверялось с sysvinit и в p10, и в p11, но сегодня посмотрел в p10/systemd. Всё так же.
rrdcached запускается с флагами -b /var/lib/rrdcached/db/ -B. Флаг -B ограничивает все файловые операции только /var/lib/rrdcached/db/. collectd просит rrdcached обновить файлы в /var/lib/collectd/rrd/, rrdcached отказывает "Permission denied". Т.е. - банальная ошибка конфигурации. сейчас поменяем путь к данным в collectd и станет работать.
(In reply to Anton Farygin from comment #2) > Т.е. - банальная ошибка конфигурации. сейчас поменяем путь к данным в > collectd и станет работать. А всего-то надо было мне rrdcached --help запустить. Нда, не ожидал. Так, но вопрос, а как конфигурацию менять предполагается? С одной стороны, collectd - основой пользователь наверное, с другой - и другие тоже могут быть. И, вроде, не написано, что несколько "-b" может быть, а -B убирать как-то уже и не очень хочется...
Я исправлю в collectd в новой сборке.
я перенесу данные collectd в /var/lib/rrdcached/db/collectd и всё заработает. Точнее попробую сделать симлинк /var/lib/rrdcached/db/collectd -> /var/lib/collectd/rrd Попробуй, если заработает - отпишись пожалуйста.
(In reply to Anton Farygin from comment #5) > Попробуй, если заработает - отпишись пожалуйста. Попробовал, не обманывается. rrdcached plugin: rrdc_update (/var/lib/rrdcached/db/collectd/book2/memory/memory-cached.rrd, [1771879408.559853:4342919168.000000], 1) failed: rrdcached@unix:/run/rrdcached.sock: /var/lib/collectd/rrd/book2/memory/memory-cached.rrd: Permission denied (status=-1) /var/lib/rrdcached/db/collectd -> /var/lib/collectd/rrd И DataDir "/var/lib/rrdcached/db/collectd" соответственно у <Plugin rrdcached>. Да и пишут -B Only permit writes into the base directory specified in -b (and any sub-directories). This does NOT detect symbolic links. Paths containing "../" will also be blocked.
(In reply to Sergey Y. Afonin from comment #6) > /var/lib/rrdcached/db/collectd -> /var/lib/collectd/rrd Так вот работает: mount -o bind /var/lib/collectd/rrd /var/lib/rrdcached/db/collectd Но это не сильно понятно, как пакетить.
тогда симлинк должен быть обратный ;(
(Ответ для Anton Farygin на комментарий #8) > тогда симлинк должен быть обратный ;( А обратный тоже не сильно хорошо: вдруг без rrdcached установка? Может оставить, как есть, а описание в комментарии к плагину добавить? Как-нибудь так: #<Plugin rrdcached> ## You should check rrdcached configuration for -b and -B options or use ## mount -o bind /var/lib/collectd/rrd /var/lib/rrdcached/db/collectd # DaemonAddress "unix:/run/rrdcached.sock" # DataDir "/var/lib/rrdcached/db/collectd" # CreateFiles true # CreateFilesAsync false # CollectStatistics true #</Plugin>
https://github.com/oetiker/rrdtool-1.x/issues/1305
collectd-5.12.0-alt9 -> sisyphus: Tue Feb 24 2026 Anton Farygin <rider@altlinux> 5.12.0-alt9 - used /run/rrdcached.sock instead of /tmp and /var/run paths (ALT#57971) - notify_email: replaced libesmtp with libcurl for TLS/SSL support (ALT#49531) - added connectivity and mqtt plugins as subpackages (ALT#39459) - added CAP_NET_RAW capability for ping plugin via systemd drop-in (ALT#37710) - fixed rrdcached plugin permission denied due to -B flag restriction (ALT#57972) - commented out LoadPlugin rrdtool in default config (ALT#36950)