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

rsyslog не имеет каталога / var / lib / rsyslog, что приводит к: «Permission denied», path: «/imjournal.state.tmp»

Детали хоста:

kkahn@host:~$ cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
kkahn@host:~$ uname -a
Linux host.example.com 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
kkahn@host:~$ ps aux | grep -i rsyslog
root       8199  0.0  0.0 224604 11456 ?        Ssl  Jun25   0:02 /usr/sbin/rsyslogd -n


kkahn@host:~$ sudo systemctl status rsyslog.service                                                                                                                                                                                                                                                                          
* rsyslog.service - System Logging Service
   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-06-25 23:30:55 EDT; 9h ago
     Docs: man:rsyslogd(8)
           http://www.rsyslog.com/doc/
 Main PID: 8199 (rsyslogd)
   CGroup: /system.slice/rsyslog.service
           `-8199 /usr/sbin/rsyslogd -n

Jun 26 08:34:40 host.example.com rsyslogd[8199]: fopen() failed: 'Permission denied', path: '/imjournal.state.tmp'  [v8.24.0 try http://www.rsyslog.com/e/2013 ]
Jun 26 08:35:01 host.example.com rsyslogd[8199]: fopen() failed: 'Permission denied', path: '/imjournal.state.tmp'  [v8.24.0 try http://www.rsyslog.com/e/2013 ]
Jun 26 08:36:01 host.example.com rsyslogd[8199]: fopen() failed: 'Permission denied', path: '/imjournal.state.tmp'  [v8.24.0 try http://www.rsyslog.com/e/2013 ]
Jun 26 08:37:01 host.example.com rsyslogd[8199]: fopen() failed: 'Permission denied', path: '/imjournal.state.tmp'  [v8.24.0 try http://www.rsyslog.com/e/2013 ]
Jun 26 08:37:40 host.example.com rsyslogd[8199]: fopen() failed: 'Permission denied', path: '/imjournal.state.tmp'  [v8.24.0 try http://www.rsyslog.com/e/2013 ]

Это меньше отказов в разрешении и тем более тот факт, что каталог /var/lib/rsyslog (где imjournal.state.tmp жил бы) не существует:

kkahn@host:~$ sudo ls -latr /var/lib/ | grep -i rsyslog
kkahn@host:~$ 

У меня есть несколько других хостов с той же ОС, но все они /var/lib/rsyslog/ и поэтому /var/lib/rsyslog/imjournal.state.tmp. Я тоже не вижу ничего анамольного в файле конфигурации, вот m5sum сравнение с сервером, который имеет /var/lib/rsyslog/:

Плохой сервер:

kkahn@host:~$ md5sum /etc/rsyslog.conf 
0dd94a0c285fb32f41fa5b226e83c26b  /etc/rsyslog.conf

Хороший сервер:

kkahn@host:~$ md5sum /etc/rsyslog.conf 
0dd94a0c285fb32f41fa5b226e83c26b  /etc/rsyslog.conf

Директива, которая будет отвечать за это, находится в /etc/rsyslog.conf даже раскомментировал хост:

# Where to place auxiliary files
$WorkDirectory /var/lib/rsyslog

Я не могу найти способ узнать, rsyslog был правильно настроен / установлен; Я не знаю, как «подправить» эту установку, чтобы убедиться, что она не сломана. Я не думаю, что просто создание каталога безопасно.

Правильно установленный rsyslog пакет имеет /var/lib/rsyslog часть пакета:

# rpm -qf /var/lib/rsyslog
rsyslog-8.24.0-52.el7_8.2.x86_64

Так что если каталог отсутствует, это аномалия и нет причин rsyslog попытается создать его, поскольку в CentOS ожидается, что он будет присутствовать как часть пакета. Вероятно, в прошлом произошла человеческая ошибка, приведшая к удалению этого каталога, что привело к rsyslog сбой при следующем перезапуске (например, при перезагрузке), а не сразу после этого.

Вы можете создать его вручную как root:

# mkdir -m 700 /var/lib/rsyslog

или если вы не доверяете способу его создания, переустановите пакет:

# yum reinstall rsyslog

Тогда просто запустите его:

# systemctl start rsyslog