如果是 Rocky Linux & RHEL:
/var/log/cron
如果是 openSUSE & SLES:
/var/spool/mail/<user>
如果是 Rocky Linux & RHEL:
/var/log/cron
如果是 openSUSE & SLES:
/var/spool/mail/<user>
# /usr/bin/last -xF | egrep "reboot|shutdown|runlevel|system"
Linux 的 kernel 会把开机日子存储在 ring buffer 和 /var/log/message 中,其中 ring buffer 里的开机日志可以使用 dmesg 来显示,如果开机时的提示信息来不及阅读的话,可以通过 dmesg 命令来显示
1) -c 显示 ring buffer 的日志后清空 ring buffer
2) -n 显示日志的层级
3) -cn 显示 ring buffer 的日志后清空 ring buffer,同时显示日志的层级
4) -s 设置缓冲区的大小,默认为 8196 与 ring buffer 的大小一样
# dmesg | less
# dmesg -cn
# dmesg | egrep -i "fail|warn|error"
rsyslog 服务端 IP 地址:192.168.0.11
rsyslog 客户端 IP 地址:192.168.0.12
rsyslog 客户端将日志发送给 rsyslog 服务端,并实现分文件存储
1) 所有服务器的系统都需要是 CentOS 8 版本
2) 所有服务器都要关闭防火墙
3) 所有服务器都要关闭 SELinux
4) 需要按照拓扑图给对应的服务器配置好 IP 地址和主机名
5) 所有服务器都要可以相互 ping 通自己和对方的 IP 地址和主机名
(只在 rsyslog 服务端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
(
补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 此配置会将所有 rsyslog 客户端的日志存储在 rsyslog 服务端的 /var/log/message 里
)
(只在 rsyslog 服务端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
$template DynFile,"/var/log/%HOSTNAME%.log"
*.* -?DynFile
& ~
(
补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/ 下的一个文件里,此文件会以其所属系统名命名
)
(只在 rsyslog 服务端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
$template DynFile,"/var/log/remotelog/%HOSTNAME%-%$YEAR%-%$MONTH%-%$DAY%-messages.log"
*.* -?DynFile
& ~
(
补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/remotelog 下的一个文件里,此文件会以其创建时间和其所属系统名命名
)
(只在 rsyslog 服务端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
$template DynFile,"/var/log/remotelog/%HOSTNAME%-%$YEAR%-%$MONTH%-%$DAY%-messages.log"
:fromhost-ip,!isequal,"127.0.0.1" -?DynFile
& ~
(
补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/ 下的一个文件里,此文件会以其创建时间和其所属系统名命名
4) 此配置不会单独存储 rsyslog 服务端的日志
)
(只在 rsyslog 服务端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
$template DynFile,"/var/log/syslog/system-%HOSTNAME%/messages.log"
*.* -?DynFile
& ~
(
补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 此配置会将每个 rsyslog 客户端的日志单独存储在 /var/log/ 下某个目录的 messages 文件里,此目录会以其所属系统名命名
)
(只在 rsyslog 服务端执行以下步骤)
# systemctl restart rsyslog
(
补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 需要在 3.1 修改 rsyslog 配置文件的案例中任选其一完成后在执行此步骤
)
(只在 rsyslog 客户端执行以下步骤)
# vim /etc/rsyslog.conf
添加以下内容:
......
*.emerg;*.alert;*.crit;*.err;*.warning;*.notice;*.info @192.168.0.11
或者:
......
*.emerg;*.alert;*.crit;*.err;*.warning;*.notice;*.info @@192.168.0.11
(
补充:
1) 这里的 192.168.0.11 是指 rsyslog 服务端的 IP 地址
2) IP 地址前一个 “@” 符后是指使用 UDP 端口 514 传输日志
3) IP 地址前两个 “@” 符后是指使用 TCP 端口 514 传输日志
)
(只在 rsyslog 客户端执行以下步骤)
# systemctl restart rsyslog
(只在 rsyslog 客户端执行以下步骤)
# logger "This is our test log"
(补充:这里以发送 This is our test log 信息为例)
(只在 rsyslog 服务端执行以下步骤)
# cat /var/log/* | grep test
# rpm -qa | grep crash || zypper install crash ; rpm -qa | grep kernel-debug || zypper install kernel-debug
(注意:此方法只有 openSUSE & SLES 可以使用)
# vim /etc/default/grub
在这一行里:
.....
GRUB_CMDLINE_LINUX_DEFAULT="......"
.....
确保有:
.....
GRUB_CMDLINE_LINUX="crashkernel=auto......"
.....
并确保此文件其他地方没有和 crashkernel= 相关的参数
(
补充:这里的 auto 代表系统会根据内存大小自动设置一个值,也可以指定一个值,例如:crashkernel=128M,high、crashkernel=256M,high 等等。如果设置成一个固定值,建议
1) 1 GB 到 4 GB 内存设置成 160 M
2) 4 GB 到 64 GB 内存设置成 192 M
3) 64 GB 到 1 TB 内存设置成 256 M
4) 大于 1 TB 内存设置成 512 M
)
# grub2-mkconfig -o /boot/grub2/grub.cfg
# yast kdump
之后将 –Start-Up 中的 Kdump Low Memory [MiB] (72 – 3069) 修改为 256,将 –Start-Up 中的 Kdump High Memory [MiB] (0 – 7168) 修改为 512,之后再选择 [ OK ]
(补充:当 Kdump Low Memory 设置为 256,Kdump High Memory 设置为 512 时更易触发 Kdump)
(注意:此方法只有 openSUSE & SLES 可以使用)
# reboot
# makedumpfile --mem-usage /proc/kcore
# vim /etc/kdump.conf
将以下内容:
......
path /var/crash
core_collector makedumpfile -l --message-level 1 -d 31
......
修改为:
......
path /var/crash
core_collector makedumpfile -c -l --message-level 1 -d 31
default reboot
......
(
补充:
1) path /var/crash
2) -c 参数会对搜集的内核崩溃时的信息进行压缩
3) default reboot 参数会让 KDUMP 收集完内核崩溃时的信息后重启
)
# systemctl enable kdump.service ; systemctl restart kdump.service
# echo 1 > /proc/sys/kernel/sysrq ; echo c > /proc/sysrq-trigger
(注意:此时系统会自动崩溃并重启)
# ls /var/crash/<date>/vmcore
(补充:这里的内核崩溃信息存放目录 /var/crash/,是刚刚在 /etc/kdump.conf 文件里指定的)