Назад | Перейти на главную страницу

Rsyslog не может прочитать imfile из каталога perforce

Я столкнулся с проблемой на сервере Ubuntu, где Rsyslog не может читать какие-либо файлы из каталога журналов Perforce.

Я проверил, что конфигурация Rsyslog для модуля imfile работает правильно, так как он может читать из других каталогов, включая / home.

Я также добавил пользователя системного журнала в группу perforce и наоборот, но это все равно не сработало.

Я нашел один обходной путь, который явно не подходит для производства, - это сделать что-то вроде:

tail -f /perforce/logs/log.csv >> /home/monitoredlogfile

некоторая полезная информация:

drwxr----- 2 perforce perforce 4096 Jun 11 14:01 logs

id syslog uid=104(syslog) gid=108(syslog) groups=108(syslog),4(adm),1010(perforce)

id perforce uid=1010(perforce) gid=1010(perforce) groups=1010(perforce),108(syslog)

Есть идеи, что может пойти не так?

Ваша группа 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), но он сломал новые поды (у них была проблема с разрешением DNS). У меня не было другого выбора, кроме как запустить rsyslog от имени root вместо syslog