# /usr/bin/last -xF | egrep "reboot|shutdown|runlevel|system"
[命令] Linux 命令 dmesg (查看开机日志)
内容一:dmesg 简介
Linux 的 kernel 会把开机日子存储在 ring buffer 和 /var/log/message 中,其中 ring buffer 里的开机日志可以使用 dmesg 来查看,如果开机时的提示信息来不及查看的话,可以通过 dmesg 命令来查看
内容二:dmesg 的选项
1) -c 显示 ring buffer 的日志后清空 ring buffer
2) -n 显示日志的层级
3) -cn 显示 ring buffer 的日志后清空 ring buffer,同时显示日志的层级
4) -s 设置缓冲区的大小,默认为 8196 与 ring buffer 的大小一样
内容三:dmesg 命令的使用案例
3.1 查看所有开机日志
# dmesg | less
3.2 查看所有日志,显示 ring buffer 的日志后清空 ring buffer,同时显示日志的层级
# dmesg -cn
3.3 查看所有失败的开机日志
# dmesg | egrep -i "fail|warn|error"
[实验] Linux 远程日志的集中管理和分文件存储 (通过 Rsyslog 实现)
步骤目录:
步骤一:规划拓扑
1.1 服务器列表
1.2 服务器列表简介
步骤二:系统环境要求
步骤三:配置 rsyslog 服务端
3.1 修改 rsyslog 配置文件的案例
3.1.1 案例一
3.1.2 案例二
3.1.3 案例三
3.1.4 案例四
3.1.5 案例五
3.2 重启 rsyslog 服务
步骤四:配置 rsyslog 客户端
4.1 修改 rsyslog 客户端的案例
4.2 重启 rsyslog 服务
步骤五:测试 rsyslog 服务
5.1 在 rsyslog 客户端上发送日志
5.2 在 rsyslog 服务端上查看日志
具体的操作步骤:
步骤一:规划拓扑
1.1 服务器列表
rsyslog 服务端 IP 地址:192.168.0.11
rsyslog 客户端 IP 地址:192.168.0.12
1.2 服务器列表简介
rsyslog 客户端将日志发送给 rsyslog 服务端,并实现分文件存储
步骤二:系统环境要求
1) 所有服务器的系统都需要是 CentOS 8 版本
2) 所有服务器都要关闭防火墙
3) 所有服务器都要关闭 SELinux
4) 需要按照拓扑图给对应的服务器配置好 IP 地址和主机名
5) 所有服务器都要可以相互 ping 通自己和对方的 IP 地址和主机名
步骤三:配置 rsyslog 服务端
3.1 修改 rsyslog 配置文件的案例
3.1.1 案例一
(只在 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 里
)
3.1.2 案例二
(只在 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/ 下的一个文件里,此文件会以其所属系统名命名
)
3.1.3 案例三
(只在 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 下的一个文件里,此文件会以其创建时间和其所属系统名命名
)
3.1.4 案例四
(只在 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 服务端的日志
)
3.1.5 案例五
(只在 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 文件里,此目录会以其所属系统名命名
)
3.2 重启 rsyslog 服务
(只在 rsyslog 服务端执行以下步骤)
# systemctl restart rsyslog
(
补充:
1) 使用 UDP 的 514 端口接收日志
2) 使用 TCP 的 514 端口接收日志
3) 需要在 3.1 修改 rsyslog 配置文件的案例中任选其一完成后在执行此步骤
)
步骤四:配置 rsyslog 客户端
4.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 传输日志
)
4.2 重启 rsyslog 服务
(只在 rsyslog 客户端执行以下步骤)
# systemctl restart rsyslog
步骤五:测试 rsyslog 服务
5.1 在 rsyslog 客户端上发送日志
(只在 rsyslog 客户端执行以下步骤)
# logger "This is our test log"
(补充:这里以发送 This is our test log 信息为例)
5.2 在 rsyslog 服务端上查看日志
(只在 rsyslog 服务端执行以下步骤)
# cat /var/log/* | grep test
[模板] Linux 日志保存时间策略的配置模板 (logrotate 的配置模板)
# vim /etc/logrotate.d/messages
/var/log/messages
/var/log/secure
/var/log/maillog
{
delaycompress
nodateext
rotate 5
missingok
notifempty
weekly
create 755 root root
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
(
补充:
1) /etc/logrotate.d/messages 这个配置文件里的设置会影响到日志文件 /var/log/messages
2) 在配置文件里添加 /var/log/secure 参数则代表会将 /var/log/secure 日志文件里的内容添加到 /var/log/messages 日志文件里
3) 在配置文件里添加 delaycompress 参数则代表会将归档的日志进行压缩
4) 在配置文件里添加 rotate 5 参数则代表只会保留最近的 5 次的日志压缩文件
5) 在配置文件里添加 weekly 参数则代表每周会压缩一次日志文件
6) 在配置文件里添加 create 755 root root 参数则代表日志文件的所属主和所属组都是 root,权限是 755
)
[内容] CentOS&RHEL 日志记录的清除 (last )
步骤目录:
步骤一:查看原来的 last 记录
步骤二:清除原来的 last 记录
2.1 确认原有 last 记录的日志文件
2.2 将原有 last 记录的日志文件移走
2.3 创建新的 last 记录的日志文件
2.4 给新创建的 last 记录的日志文件对应的权限
步骤三:查看 last 记录有没有被成功清除
具体的操作步骤:
步骤一:查看原来的 last 记录
# last
步骤二:清除原来的 last 记录
2.1 确认原有 last 记录的日志文件
# ls -arlt /var/log/wtmp
-rw-rw-r--. 1 root utmp 294920 Jul 20 09:57 lastlog
2.2 将原有 last 记录的日志文件移走
# mv /var/log/wtmp /var/log/wtmp.backup
2.3 创建新的 last 记录的日志文件
# touch /var/log/wtmp
2.4 给新创建的 last 记录的日志文件对应的权限
# chown root:utmp /var/log/wtmp
步骤三:查看 last 记录有没有被成功清除
# last
wtmp begins Mon Jul 20 10:07:11 2020