syslogサーバーを構築し、ログが数日分溜まるのを待っていたのですが、ログファイルが途中から書き込みされなくなりました。
初めはsyslogが受信されなくなったのかと思いましたが、違いました。
原因
/etc/rsyslog.confのsyslogファイルの権限が不適切だったことが原因でした。
rsyslogのサービスステータスを確認すると以下のようなメッセージが表示されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# systemctl status rsyslog ● rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-01-15 09:28:49 JST; 53s ago TriggeredBy: ● syslog.socket Docs: man:rsyslogd(8) https://www.rsyslog.com/doc/ Main PID: 532 (rsyslogd) Tasks: 5 (limit: 4642) Memory: 4.0M CGroup: /system.slice/rsyslog.service └─532 /usr/sbin/rsyslogd -n -iNONE 1月 15 09:29:39 np15 rsyslogd[532]: error during config processing: Could not open dynamic file '/var/log/syslog/NP15/message_NP15_20210115.log' [state -3000] - discarding message [v8.2001.0 try > 1月 15 09:29:39 np15 rsyslogd[532]: error during config processing: omfile: creating parent directories for file '/var/log/syslog/NP15/message_NP15_20210115.log' failed: Permission denied [v8.20> 1月 15 09:29:39 np15 rsyslogd[532]: error during config processing: Could not open dynamic file '/var/log/syslog/NP15/message_NP15_20210115.log' [state -3000] - discarding message [v8.2001.0 try > 1月 15 09:29:39 np15 rsyslogd[532]: error during config processing: omfile: creating parent directories for file '/var/log/syslog/NP15/message_NP15_20210115.log' failed: Permission denied [v8.20> 1月 15 09:29:39 np15 rsyslogd[532]: error during config processing: Could not open dynamic file '/var/log/syslog/NP15/message_NP15_20210115.log' [state -3000] - discarding message [v8.2001.0 try > 1月 15 09:29:39 np15 rsyslogd[532]: error during config processing: omfile: creating parent directories for file '/var/log/syslog/NP15/message_NP15_20210115.log' failed: Permission denied [v8.20> 1月 15 09:29:39 np15 rsyslogd[532]: error during config processing: Could not open dynamic file '/var/log/syslog/NP15/message_NP15_20210115.log' [state -3000] - discarding message [v8.2001.0 try > 1月 15 09:29:39 np15 rsyslogd[532]: error during config processing: omfile: creating parent directories for file '/var/log/syslog/NP15/message_NP15_20210115.log' failed: Permission denied [v8.20> 1月 15 09:29:39 np15 rsyslogd[532]: error during config processing: Could not open dynamic file '/var/log/syslog/NP15/message_NP15_20210115.log' [state -3000] - discarding message [v8.2001.0 try > 1月 15 09:29:39 np15 rsyslogd[532]: error during config processing: omfile: creating parent directories for file '/var/log/syslog/NP15/message_NP15_20210115.log' failed: Permission denied [v8.20> |
このエラーメッセージから、syslogファイルに対しての権限設定が適切ではないことが分かります。
syslogは受信できているものの、ファイルに書き込みor読み込みが出来ずにエラーとなっている状態でした。
対処
syslogファイルの書き込み権限を適切なものに設定する必要があります。
この設定は/ect/rsyslog.confで行っています。
/ect/rsyslog.confの以下部分を変更します。
変更前
1 2 |
$PrivDropToUser syslog $PrivDropToGroup syslog |
変更後
1 2 |
$PrivDropToUser adm $PrivDropToGroup adm |
それぞれの変数(ディレクティブと呼ぶのが正しいようです)の説明は以下の通りです。
$PrivDropToUser
Name of the user rsyslog should run under after startup. Please note that this user is looked up in the system tables. If the lookup fails, privileges are NOT dropped. Thus it is advisable to use the less convenient $PrivDropToUserID directive. If the user id can be looked up, but can not be set, rsyslog aborts.
$PrivDropToGroupName of the group rsyslog should run under after startup. Please note that this user is looked up in the system tables. If the lookup fails, privileges are NOT dropped. Thus it is advisable to use the less convenient $PrivDropToGroupID directive. Note that all supplementary groups are removed from the process if $PrivDropToGroup is specified. If the group id can be looked up, but can not be set, rsyslog aborts.
引用元:https://www.rsyslog.com/doc/master/configuration/droppriv.html
/etc/rsyslog.confの変更後、
rsyslogを再起動すると、ログの書き込みがされます。
1 |
systemctl restart rsyslog |
サービスのステータス見ると先ほどのエラーが発生しなくなりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
systemctl status rsyslog ● rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-01-15 10:24:21 JST; 44min ago TriggeredBy: ● syslog.socket Docs: man:rsyslogd(8) https://www.rsyslog.com/doc/ Main PID: 1614 (rsyslogd) Tasks: 5 (limit: 4642) Memory: 2.9M CGroup: /system.slice/rsyslog.service └─1614 /usr/sbin/rsyslogd -n -iNONE 1月 15 10:24:21 np15 systemd[1]: Starting System Logging Service... 1月 15 10:24:21 np15 rsyslogd[1614]: ID for user 'adm' could not be found or error [v8.2001.0 try https://www.rsyslog.com/e/3003 ] 1月 15 10:24:21 np15 rsyslogd[1614]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.2001.0] 1月 15 10:24:21 np15 rsyslogd[1614]: rsyslogd's groupid changed to 4 1月 15 10:24:21 np15 rsyslogd[1614]: [origin software="rsyslogd" swVersion="8.2001.0" x-pid="1614" x-info="https://www.rsyslog.com"] start 1月 15 10:24:21 np15 systemd[1]: Started System Logging Service. |
admというユーザーがないので、そのエラーは出てしまいました。
これでsyslogファイルに書き込みされるようになったのでログファイルがたまるのを待っていようと思います。
コメント