Я столкнулся с проблемой на сервере Ubuntu, когда Rsyslog не может прочитать ни один файл из каталога журналов Perforce.
Я проверил эту конфигурацию Rsyslog поскольку модуль imfile работает правильно, так как он может читать из других каталогов, включая /home.
Я также добавил пользователя системного журнала в группу perforce и наоборот, но он все еще не работал.
Я нашел одно обходное решение но, очевидно, не подходит для производства, это сделать что-то вроде:
tail -f /perforce/logs/log.csv >> / home / monitoredlogfile
некоторая полезная информация:
drwxr ----- 2 perforce perforce 4096 11 июня 14:01 журналы
id syslog
uid = 104 (syslog) gid = 108 (syslog) groups = 108 (syslog), 4 (adm), 1010 (perforce)
id perforce
uid = 1010 (perforce) gid = 1010 (perforce) групп = 1010 (perforce), 108 (системный журнал)
Есть идеи, что может пойти не так?
Ваша группа perforce может только читать журналы репо / perforce /, вам нужно добавить «x» в эту папку, чтобы разрешить этой группе доступ к этой папке.
Также убедитесь, что ваш / perforce папка имеет такое же разрешение. Даже если ваш / perforce / logs имеет rwxrwxrwx в качестве разрешения, если ваш / perforce - только rwx ------, тогда группа никогда не сможет получить к нему доступ.
Если вы не хотите играть с разрешение приложения, вы можете использовать ACL вместо того, чтобы предоставить пользователю syslog доступ к вашей папке
$ sudo setfacl -m u:syslog:rx -R /perforce/logs/
$ sudo getfacl /perforce/logs/
Осторожно: однажды я попробовал это с Kubernetes (давая доступ к syslog к / var / lib / docker / container), но это сломало новые pod'ы ( у них была проблема с разрешением DNS). У меня не было другого выбора, кроме как запустить rsyslog от имени пользователя root вместо syslog