Bug 57972 - rrdcached plugin: rrdc_update Permission denied
Summary: rrdcached plugin: rrdc_update Permission denied
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: collectd (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-02-23 13:02 MSK by Sergey Y. Afonin
Modified: 2026-02-24 16:30 MSK (History)
12 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Y. Afonin 2026-02-23 13:02:47 MSK
Когда-то, при обновлении с 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-файлами, но ошибка остаётся.
Comment 1 Sergey Y. Afonin 2026-02-23 13:51:28 MSK
В основном проверялось с sysvinit и в p10, и в p11, но сегодня посмотрел в p10/systemd. Всё так же.
Comment 2 Anton Farygin 2026-02-23 20:42:36 MSK
rrdcached запускается с флагами -b /var/lib/rrdcached/db/ -B. Флаг -B ограничивает все файловые операции только /var/lib/rrdcached/db/. collectd просит rrdcached обновить файлы в /var/lib/collectd/rrd/, rrdcached отказывает "Permission denied".

Т.е. - банальная ошибка конфигурации. сейчас поменяем путь к данным в collectd и станет работать.
Comment 3 Sergey Y. Afonin 2026-02-23 21:05:24 MSK
(In reply to Anton Farygin from comment #2)

> Т.е. - банальная ошибка конфигурации. сейчас поменяем путь к данным в
> collectd и станет работать.

А всего-то надо было мне rrdcached --help запустить. Нда, не ожидал.

Так, но вопрос, а как конфигурацию менять предполагается? С одной стороны, collectd - основой пользователь наверное, с другой - и другие тоже могут быть. И, вроде, не написано, что несколько "-b" может быть, а -B убирать как-то уже и не очень хочется...
Comment 4 Anton Farygin 2026-02-23 22:09:12 MSK
Я исправлю в collectd в новой сборке.
Comment 5 Anton Farygin 2026-02-23 22:11:55 MSK
я перенесу данные collectd в /var/lib/rrdcached/db/collectd и всё заработает.
Точнее попробую сделать симлинк /var/lib/rrdcached/db/collectd -> /var/lib/collectd/rrd

Попробуй, если заработает - отпишись пожалуйста.
Comment 6 Sergey Y. Afonin 2026-02-23 23:53:33 MSK
(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.
Comment 7 Sergey Y. Afonin 2026-02-23 23:59:05 MSK
(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

Но это не сильно понятно, как пакетить.
Comment 8 Anton Farygin 2026-02-24 07:31:51 MSK
тогда симлинк должен быть обратный ;(
Comment 9 Sergey Y. Afonin 2026-02-24 09:27:00 MSK
(Ответ для 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>
Comment 10 Sergey Y. Afonin 2026-02-24 10:58:18 MSK
https://github.com/oetiker/rrdtool-1.x/issues/1305
Comment 11 Repository Robot 2026-02-24 16:30:02 MSK
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)