linux运维之日志文件——常见日志文件、管理日志文件的服务

对于linux上的服务几乎都会有日志文件,日志文件是来记录软件运行状态。通过日志文件,我们可以获取许多有用的信息,比如通过nginx的日志文件,我们可以统计网站每日IP数量、pv数等。另外,如果软件运行出问题,我们也可以通过日志文件信息来定位错误来源。所以说,日志文件也是软件的重要组成部分。

常见日志文件

linux系统中,在/var/log/目录下记录着许多有用的日志文件。

  • /var/log/cron 记录与定时任务相关的信息
  • /var/log/dmesg 开机内核信息
  • /var/log/btmp 记录错误登陆的信息,这个文件不能通过vi来查看,可以用lastb命令查看。
  • /var/log/lastlog 记录每个用户最后一次登陆情况,这个文件不能通过vi查看,使用lastlog命令查看
  • /var/log/maillog 记录邮件信息
  • /var/log/message 记录系统重要的信息
  • /var/log/recure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录
  • /var/log/wtmp 永久记录用户的登陆、退出信息,除此之外还会记录关机、重启、开机信息。使用last命令查看
  • /var/log/ulmp 记录当前登陆用户信息。可以用w、who命令查看

与日志文件相关的服务

关于日志文件的产生,主要分为两种方式,一种是软件自身生成日志信息,比如apache、nginx软件,另一种是通过linux系统的日志相关服务来生成日志信息的。对于系统管理日志的软件,主要有三个:

  • systemd-journald.service
  • rsyslog.service
  • logrotate

基本上,有systemd管理的服务,启动过程及运行过程中产生的一些信息会被systemd-journald以二进制格式记录下来(存放在内存中),之后再将信息发给rsyslog进行进一步记录。而对于logrotate服务,它是用来对日志进行切割和轮替的,防止单个日志文件过大,以及日志文件过多的问题。

所以,对于以上三个服务的分工是这样的,首先systemd-journald获取信息并记录到内存中,之后将信息发送给rsyslog,rsyslog会将信息存放在日志文件中,最后,使用logrotate对日志文件进行轮替管理。