ログ管理のツール
と
の組み合わせでログの書き出し場所を定められる。また他の計算機へのログ転送も出来る。
下記はrockylinux9の/etc/rsyslog.confから一部分。
[root@rockylinux9~]# cat /etc/rsyslog.conf
:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
:
authpriv.* /var/log/secure
:
cron.* /var/log/cron
;
local7.* /var/log/boot.log
:
[root@rockylinux9~]#と「*.info」は全てのファシリティーでプライオリティ「info」なものは「/var/log/messages」へ
でも「mail.none;authpriv.none;cron.none」と「mail」「authpriv」「cron」に関連するものは除外って感じですね。
「authpriv.*」とauthpriv、認証に関係するものは全て「/var/log/secure」へ
cron関係は全て/var/log/cronへって感じです。
sshでログイン成功/失敗とかの記録は「/var/log/secure」に集まる。これを別のファイルに起きたいなら
まず器を用意します
「/etc/rsyslog.conf」を
*.info;mail.none;authpriv.none;cron.none /var/log/messages
↓
*.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages
local0.* /var/log/ssh <-- 新規追加として「systemctl restart rsyslog」。これで local0 に集まるデータは「/var/log/ssh」に書かれます。
っでログの発生元で、書き出し先を変更させます。設定ファイル「/etc/ssh/sshd_config」を下記のように修正して「systemctl restart sshd」を実施
# Logging
#SyslogFacility AUTH
#LogLevel INFO
↓
SyslogFacility LOCAL0
LogLevel INFOこうすればsshdに掛かる話は全て /var/log/ssh に集まる.
rsyslogに器を用意します
「/etc/rsyslog.conf」で
*.info;mail.none;authpriv.none;cron.none;local0.none;local1.none /var/log/messages <-- local1.noneを追加
local1.* /var/log/dnsmasq.log <-- 新規追加として、「systemctl restart rsyslog」
次に「/etc/dnsmasq.conf」にて
log-facility=local1を追記して「systemctl restart dnsmasq」
これで dnsmasq 関係は全て /var/log/dnsmasq.log に集まります
使い方は要注意です。ログが残らないので。
例えば「podman」関係のメッセージをログがから除くには
「/etc/rsyslog.d/10-drop-podman.conf」
if $programname == 'podman' then stopとして保存して「systemctl restart rsyslog」を行うとプログラム podman のメッセージが残らなくなります。
加えて例えば文字列「libpod」を含む文字列も残さないとなれば
「/etc/rsyslog.d/10-drop-podman.conf」
if $programname == 'podman' then stop
if $msg contains 'libpod' then stopとして「systemctl restart rsyslog」すればメッセージには残りません
上記の「/var/log/ssh」や「/var/log/dnsmasq.log」は時間経過とともに肥大します.
それをそのログファイルのサイズや、一定時間の経過で別名のバックアップを取って圧縮して、さらに0からログ開始を行うのがこの logrotate 。
今回の「/var/log/ssh」や「/var/log/dnsmasq.log」はrsyslog経由からのログで、
すでにlogrotateにはrsyslogが対象となっております。
[root@rockylinux9 ~]# ls -l /etc/logrotate.d/
total 52
-rw-r--r--. 1 root root 91 Apr 1 2021 bootlog
-rw-r--r--. 1 root root 130 Oct 14 2019 btmp
-rw-r--r--. 1 root root 160 Oct 8 2024 chrony
-rw-r--r--. 1 root root 88 Sep 9 2022 dnf
-rw-r--r--. 1 root root 93 Feb 4 2025 firewalld
-rw-r--r--. 1 root root 172 Oct 26 2023 iscsiuiolog
-rw-r--r--. 1 root root 162 Jul 31 01:29 kvm_stat
-rw-r--r--. 1 root root 312 May 16 2022 psacct
-rw-r--r--. 1 root root 226 May 3 03:55 rsyslog <--- ここ
-rw-r--r--. 1 root root 155 Jul 9 04:06 samba
-rw-r--r--. 1 root root 289 May 14 02:53 sssd
-rw-r--r--. 1 root root 100 May 5 09:13 wpa_supplicant
-rw-r--r--. 1 root root 145 Oct 14 2019 wtmp
[root@rockylinux9 ~]#中身は
[root@rockylinux9 ~]# cat /etc/logrotate.d/rsyslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/usr/bin/systemctl -s HUP kill rsyslog.service >/dev/null 2>&1 || true
endscript
}
[root@rockylinux9 ~]#ファイル前半に対象となるファイルに「/var/log/ssh」と「/var/log/dnsmasq.log」を入れます
/var/log/ssh
/var/log/dnsmasq.log
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/usr/bin/systemctl -s HUP kill rsyslog.service >/dev/null 2>&1 || true
endscript
}これで肥大化を防げます.
手動で一回実行します
[root@rockylinux9 ~]# logrotate -f /etc/logrotate.d/rsyslogその後、「/var/lib/logrotate/logrotate.status」を確認して目的のlogファイルが入ったか確認します。
そして再度
[root@rockylinux9 ~]# logrotate -f /etc/logrotate.d/rsyslogでlogrotateが行われます。