Linux高级之日志管理
- 1.系统常用日志
- 2.日志服务的稳定性
- 3.自定义日志服务
- 4.日志轮替
- 5.内存日志
1.系统常用日志
日志文件用于记录linux系统的各种运行信息的文件,相当于linux主机的日记,不同的日志文件记载了不同类型的信息,如Linux内核消息、用户登录事件、程序错误等。日志文件对于诊断和解决问题很有帮助,因为linux运行的程序通常把系统的消息和错误写入对应的日志文件,这样系统可以有据可查, 此外,当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹
Linux系统本身和大部分服务器程序的日志文件默认放在
/var/log/
下
案例:secure日志记录演示:
我们先看一下secure日志的内容:
sudo cat secure
可以看到很多的登录内容:
为了方便演示,我们先将此日志文件里面的内容清空:
sudo chmod 777 secure
sudo echo '' > secure
接着使用Xshell连接虚拟机,故意输错两次密码,随后输入正确密码连接,我们看secure日志能否记录:
[centos@centtos7 log]$ cat secure
Dec 27 08:04:54 centtos7 unix_chkpwd[3261]: password check failed for user (centos)
Dec 27 08:04:54 centtos7 sshd[3225]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.192.1 user=centos
Dec 27 08:04:56 centtos7 sshd[3225]: Failed password for centos from 192.168.192.1 port 55502 ssh2
Dec 27 08:05:00 centtos7 unix_chkpwd[3262]: password check failed for user (centos)
Dec 27 08:05:02 centtos7 sshd[3225]: Failed password for centos from 192.168.192.1 port 55502 ssh2
Dec 27 08:05:04 centtos7 sshd[3225]: Accepted password for centos from 192.168.192.1 port 55502 ssh2
Dec 27 08:05:04 centtos7 sshd[3225]: pam_unix(sshd:session): session opened for user centos by (uid=0)
果不其然!日志记录了我们成功登录和失败登录的详细信息!
案例:lastlog演示:
查看所有用户上次的系统登录时间:
[centos@centtos7 log]$ lastlog
Username Port From Latest
root **Never logged in**
...
qemu **Never logged in**
gluster **Never logged in**
gdm :0 Tue Dec 27 07:57:51 -0500 2022
rpcuser **Never logged in**
nfsnobody **Never logged in**
gnome-initial-setup **Never logged in**
sshd **Never logged in**
avahi **Never logged in**
postfix **Never logged in**
ntp **Never logged in**
tcpdump **Never logged in**
centos pts/1 192.168.192.1 Tue Dec 27 08:05:04 -0500 2022
2.日志服务的稳定性
rsyslogd
服务是处理日志的核心服务,为了防止日志服务出现问题,请确保下面两项:
rsyslogd
服务处在启动状态
sudo ps -aux | grep "rsyslog" | grep -v "grep"
rsyslogd
服务可以自启动(处在enabled
状态)
systemctl is-enabled rsyslog
3.自定义日志服务
我们可以根据自己的需求,增加自定义性质的日志:
修改日志配置文件:
sudo vim /etc/rsyslog.conf
新增自定义日志,该例会记录系统所有的操作内容到dahe.log中:
# add dahe log
*.* /var/log/dahe.log
之后创建属于我们自己的日志文件:
sudo touch /var/log/dahe.log
之后重启系统,看下我们自定义的日志是否会记录:
cat /var/log/dahe.log
记录成功!
4.日志轮替
日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围之后,就会进行删除
日志轮替文件命名:🙌
- centos7使用logrotate进行日志轮替管理,要想改变日志轮替文件名字,通过
/etc/logrotate.conf
配置文件中“dateext
”参数: - 如果配置文件中有"
dateext
”参数,那么日志会用日期来作为日志文件的后缀,例如"secure-20201010
"。这样日志文件名不会重叠,也就不需要日志文件的改名,只需要指定保存日志个数,删除多余的日志文件即可。 - 如果配置文件中没有"
dateext
’”参数,日志文件就需要进行改名了。当第一次进行日志轮替时,当前的secure
日志会自动改名为secure.1
,然后新建secure
日志,用来保存新的日志。当第二次进行日志轮替时,secure.1
会自动改名为secure.2
,当前的secure
日志会自动改名为secure.1
,然后也会新secure
日志,用来保存新的日志,以此类推。
自定义日志轮替参数:🥯
案例:加入自己定义的日志文件到日志轮替机制中:🛹
我们先看一下/etc/logrotate.d/
中的轮替文件都有哪些:
[centos@centtos7 logrotate.d]$ ll
total 56
-rw-r--r--. 1 root root 91 Sep 30 2020 bootlog
-rw-r--r--. 1 root root 160 Sep 19 2018 chrony
-rw-r--r--. 1 root root 71 Sep 30 2020 cups
-rw-r--r--. 1 root root 93 Apr 28 2021 firewalld
-rw-r--r--. 1 root root 172 Sep 29 2016 iscsiuiolog
-rw-r--r--. 1 root root 165 Nov 16 2020 libvirtd
-rw-r--r--. 1 root root 142 Nov 16 2020 libvirtd.qemu
-rw-r--r--. 1 root root 106 Apr 10 2018 numad
-rw-r--r--. 1 root root 136 Feb 27 2020 ppp
-rw-r--r--. 1 root root 408 Aug 3 2017 psacct
-rw-r--r--. 1 root root 115 Sep 30 2020 samba
-rw-r--r--. 1 root root 224 Sep 30 2020 syslog
-rw-r--r--. 1 root root 100 Oct 30 2018 wpa_supplicant
-rw-r--r--. 1 root root 103 Oct 1 2020 yum
新增我们自己的日志的日志轮替文件:
sudo vim dahelog
编写轮替文件的配置信息:(如下是一个实例)
/var/log/dahe.log
{
missingok
daily
copytruncate
rotate 7
notifempty
}
如下:加入成功!
5.内存日志
注意:系统的内存日志,重启之后就会清空
常用关于内存日志的命令:
案例:查看最近3条的内存日志:
sudo journalctl -n 3