阿铭linux近16年的IT从业经验,6年+鹅厂运维经验,6年+创业公司经验错误 系统 日志 linux,熟悉大厂运维体系linux教程,有从零搭建运维体系的实战经验。关注我,学习主流运维技能,让你比他人提高更快,涨薪更多!
日志记录了系统每晚发生的各类各样的事情错误 系统 日志 linux,例如检测系统状况、排查系统故障等。你可以通过日志来检测错误发生的诱因,或则遭到功击时功击者留下的痕迹。日志的主要功能是审计和检测,还可以实时地检测系统状态,检测和追踪侵入者等。
在RockyLinux8系统里,以下几个日志默认是不存在的,须要安装rsyslog包,命令如下:
yum install -y rsyslog
systemctl start syslog
systemctl enable syslog
14.8.1/var/log/messages
阿铭常查看的日志文件为/var/log/messages,它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态消息。I/O错误、网络错误和其他系统错误就会记录到这个文件中。其他信息,例如某个人的身分切换为root,以及用户自定义安装的软件(如,Apache)的日志也会在这儿列举。
一般情况下,/var/log/messages是做故障确诊时首先要查看的文件。那你肯定会说,那么多日志都记录到这个文件中,假如服务器上有好多服务,岂不是这个文件很快还会写得很大?没错,并且系统有一个日志协程的机制,每礼拜切换一个日志,切换后的日志名子类似于messages-20200301,会储存在/var/log/目录下边,连同messages一共有5个这样的日志文件。这儿的20200301就是日期,它表示日志切割的年月日。这是通过logrotate工具的控制来实现的,它的配置文件是/etc/logrotate.conf(假如没有特殊需求,请不要更改这个配置文件)。
# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# system-specific logs may be also be configured here.
这个配置文件上面的内容还是很容易明白的,都带有解释。不仅logrotate.conf外,在/etc/logrotate.d/下边还有一些子配置文件。
# ls /etc/logrotate.d
bootlog btmp chrony dnf sssd syslog up2date wtmp.
# cat /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
endscript
}
其中syslog就是messages日志相关的配置文件了。/var/log/messages是由rsyslogd这个守护进程形成的,其服务为rsyslog.service,假如停止这个服务则系统不会形成/var/log/messages,所以这个服务不要停止。rsyslog服务的配置文件为/etc/rsyslog.conf,这个文件定义了日志的级别。若没有特殊需求,这个配置文件是不须要更改的,详尽内容阿铭不再详述。假如你感兴趣硬盘安装linux,请使用命令manrsyslog.conf获得更多关于它的信息。
14.8.2dmesg
不仅关注/var/log/messages外,你还应当多关注一下dmesg这个命令,它可以显示硬件(如,c盘、网卡等)相关信息。假如你的某个硬件有问题(例如网卡),用这个命令也是可以见到的:
# dmesg |tail
[ 8.671924] RAPL PMU: hw unit of domain pp0-core 2^-0 Joules
[ 8.671925] RAPL PMU: hw unit of domain package 2^-0 Joules
[ 8.671926] RAPL PMU: hw unit of domain dram 2^-0 Joules
[ 8.671927] RAPL PMU: hw unit of domain pp1-gpu 2^-0 Joules
[ 10.555690] NET: Registered protocol family 40
[ 14.545496] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
[ 14.551791] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[ 14.557466] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
[ 14.557477] IPv6: ADDRCONF(NETDEV_CHANGE): ens33: link becomes ready
[ 4202.922934] hrtimer: interrupt took 19983639 ns
14.8.3安全日志
关于安全方面的日志,阿铭简单介绍几个命令或则日志。
last命令拿来查看登陆Linux的历史信息,具体用法如下:
# last |head
root pts/1 192.168.72.128 Fri Jun 26 17:41 still logged in
root pts/0 192.168.72.1 Fri Jun 26 15:46 still logged in
reboot system boot 4.18.0-147.3.1.e Fri Jun 26 15:41 still running
root pts/3 192.168.72.1 Fri Jun 26 15:33 - 15:40 (00:06)
root pts/2 192.168.72.1 Fri Jun 26 15:30 - 15:40 (00:10)
root pts/0 192.168.72.1 Fri Jun 26 15:13 - 15:40 (00:27)
root pts/2 192.168.72.1 Fri Jun 26 15:07 - 15:13 (00:05)
root pts/1 192.168.72.1 Fri Jun 26 09:39 - 15:40 (06:01)
root pts/0 192.168.120.106 Fri Jun 26 08:54 - 15:08 (06:14)
root tty1 Fri Jun 26 08:33 - 15:40 (07:07)
上例中,从左至右依次为帐户名称、登录终端、登录顾客端IP、登录日期及时长。last命令输出的信息实际上是读取了二补码日志文件/var/log/wtmp,只是这个文件不能直接使用cat、Vim、head、tail等工具查看。
另外/var/log/secure也是和登陆信息有关的日志文件。该日志文件记录验证和授权等方面的信息,例如ssh登陆系统成功或则失败时,相关的信息就会记录在这个日志里。
最后,阿铭建议你之后在日常的管理工作中,要养成多看日志的习惯,尤其是一些应用软件的日志。例如Nginx、MySQL、Redis(后续内容会提到)等常用的软件,看它们的错误日志,可以帮助你排查问题以及监控它们的运行状况是否良好。
14.8.4journal日志
假如不安装rsyslog包,系统就没有/var/log/messages日志,那系统有问题我们如何看日志呢?可以通过jounalctl来查看:
jounalctl
常用选项有:
具体示例,如下:
查看sshd服务日志
journalctl -u sshd
2.查看系统内核日志
journalctl -k
3.动态查看sshd服务日志
journalctl -u sshd -f
4.直接复印全部,不让它分页
journalctl --no-page