什么是日志文件

news/2025/2/22 6:01:55/

文章目录

  • 什么是日志文件
    • Centos 7 日志文件简易说明
      • 日志文件的重要性
      • Linux常见的日志文件文件名
        • /var/log/boot.log
        • /var/log/cron
        • /var/log/dmesg
        • /var/log/lastlog
        • /var/log/maillog或 /var/log/mail/*
        • /var/log/messages
        • /var/log/secure
        • /var/log/wtmp、/var/log/faillog
        • /var/log/httpd/ *、/var/log/samba/ *
      • 日志文件所需相关服务(daemon)与程序
      • Centos 7.x 使用systemd提供的journalctl日志管理
    • 日志文件内容的一般格式

什么是日志文件

【仔细而确实地分析以及备份系统的日志文件】是一个系统管理员应该要进行的任务之一。那么是是日志文件呢?简单来说,就是记录系统活动信息的几个文件,例如:何时、何地(来源 IP)、何人(什么服务名称)、做什么什么操作(信息登录)。

Centos 7 日志文件简易说明

要知道的是,我们的Linux主机在后台有相当多的daemons同时在工作,这些工作中的进程总是会显示一些信息,这些显示的信息最终会被记录到日志文件中。也就是是说,记录这些系统的重要信息就是日志文件的工作。

日志文件的重要性

为什么说日志文件很重要,重要到系统管理员需要随时要注意它?我们可以这么说:

日志文件是记录系统运行过程中发生的事件和错误的文件。系统管理员需要随时注意它,因为通过查询日志文件,可以解决系统错误、网络服务问题以及了解过往事件的记录。比如,如果系统出现问题,管理员可以查询日志文件了解具体原因;如果网络服务无法启动,管理员可以查询特定的日志文件解决问题;而且日志文件还可以记录系统中的重要事件,例如网络攻击等。因此,日志文件对于系统管理员来说,是非常重要的工具。

Linux常见的日志文件文件名

日志文件可以帮助我们了解很多系统重要的事件,包括登录者的部分信息,因此日志文件的权限通常是仅设置为仅有root能够读取而已。而由于日志文件可以记录系统这么多的详细信息,所以,一个有经验的主机管理员会随时地查看自己的日志文件,以随时掌握系统的最新动态。

常见的日志文件有如下几个:

/var/log/boot.log

/var/log/boot.log 是Linux系统在引导时记录的日志文件,它包含了系统启动期间所有的启动信息和错误信息。在系统启动过程中,Linux会执行一系列的启动脚本,包括加载内核、初始化硬件、挂载文件系统、启动服务等。这些启动过程中的信息会被记录到/var/log/boot.log文件中,方便系统管理员在系统启动时分析和解决问题。通常,这个文件会在每次系统启动时被更新。
/var/log/boot.log文件中的信息通常是以时间戳和进程ID(PID)为标识进行记录的,方便系统管理员进行问题定位和分析。在这个文件中,可以找到很多有用的信息,例如硬件检测信息、文件系统挂载信息、网络配置信息、启动服务信息以及错误信息等。通常情况下,这些信息可以帮助系统管理员快速识别系统启动过程中的问题,并加以解决。

/var/log/cron

/var/log/cron日志文件是Linux系统中记录cron作业执行情况的日志文件。cron是一个Linux系统中用于定时执行任务的工具,它可以让用户在指定的时间和频率自动执行一些操作,例如备份数据、执行脚本等。当cron作业执行时,它会将执行结果写入/var/log/cron文件中,方便用户查看作业执行情况以及排查问题。
/var/log/cron日志文件中记录了每个cron作业的执行时间、执行结果以及执行命令等信息。每条记录通常包括以下几个字段:

  1. 时间戳:记录作业执行时间的时间戳。
  2. 主机名:执行作业的主机名。
  3. cron作业执行用户:执行作业的用户。
  4. 执行命令:执行的命令或脚本。
  5. 执行结果:执行命令的结果,包括标准输出和错误输出。
    /var/log/cron日志文件可以帮助系统管理员追踪cron作业的执行情况,当作业无法正常执行或者出现错误时,管理员可以通过查看日志文件来定位问题并进行排查。此外,管理员还可以通过配置logrotate等工具来定期轮换/var/log/cron日志文件,以免日志文件过大影响系统性能。

/var/log/dmesg

/var/log/dmesg是Linux系统中记录内核启动信息的日志文件。在Linux系统引导时,内核会执行一系列的操作,例如检测硬件、加载驱动程序、初始化系统等。在这个过程中,内核会输出一些信息,包括硬件信息、驱动程序信息、系统参数等。这些信息会被记录到/var/log/dmesg文件中,以便管理员进行查看和分析。
/var/log/dmesg文件中的信息通常是内核输出的最新信息,包括一些重要的信息,例如内核版本、CPU信息、内存信息、硬盘信息、设备驱动信息、系统参数等。这些信息对于系统管理员来说是非常有用的,可以帮助管理员快速了解系统的硬件配置和系统参数,以及在系统启动过程中出现的问题。
需要注意的是,/var/log/dmesg文件通常只记录内核启动时的信息。如果需要查看完整的系统日志,应该查看其他日志文件,例如/var/log/messages/var/log/syslog等。同时,/var/log/dmesg文件的大小是有限制的,当文件大小达到一定值时,系统会自动清除旧的记录,以腾出空间记录新的日志信息。

/var/log/lastlog

/var/log/lastlog 日志文件是一个系统日志文件,用于记录用户最后一次登录的相关信息。它记录了每个用户最后一次登录系统的时间、来源IP地址和登录方式等信息。
当一个用户成功登录到系统时,系统会记录该用户的登录信息到 /var/log/lastlog 日志文件中。如果该用户之前从未登录过系统,那么 /var/log/lastlog 文件中将没有该用户的记录。
需要注意的是,/var/log/lastlog 日志文件只能由 root 用户或者有权限的用户才能访问和查看。同时,该文件的格式是二进制格式,无法直接查看。如果需要查看该文件的内容,需要使用特定的工具,如 lastlog 命令。
/var/log/lastlog 日志文件对于系统管理员来说非常有用,可以帮助他们追踪用户的登录历史和行为,进一步保障系统的安全性。

/var/log/maillog或 /var/log/mail/*

/var/log/maillog/var/log/mail/* 日志文件是用于记录邮件系统的日志文件。邮件系统通常包括邮件服务器、邮件代理、邮件客户端等组件,这些组件会在邮件的发送、接收和传递过程中产生大量的日志信息。
/var/log/maillog 文件是一个主要的邮件系统日志文件,它记录了邮件系统的各种操作事件,如邮件的发送、接收、投递、转发、垃圾邮件过滤等等。该文件中的日志信息可以帮助系统管理员了解邮件系统的运行状况、排查邮件系统的故障以及监控邮件的安全性。
/var/log/mail/* 目录包含了一些其他的邮件系统日志文件,如 mail.errmail.infomail.warn 等。这些文件包含了不同级别的邮件系统日志信息,可以根据需要进行查看。例如,mail.err 文件记录了邮件系统的错误信息,而 mail.info 文件记录了一般的信息。
需要注意的是,邮件系统日志文件可能会非常庞大,因此系统管理员需要定期对其进行清理和归档,以避免占用过多的磁盘空间。同时,为了保障邮件系统的安全性,这些日志文件只能由 root 用户或者有权限的用户才能访问和查看。

/var/log/messages

/var/log/messages 日志文件是一个系统日志文件,用于记录系统各个组件的日志信息,如内核、系统服务、应用程序等。它包含了系统的各种操作事件,如启动、关机、用户登录、系统错误等等。
/var/log/messages 文件中的日志信息非常丰富,可以帮助系统管理员了解系统的运行状况和问题。例如,该文件中的错误信息可以帮助管理员快速定位系统故障,而登录信息可以帮助管理员追踪用户的登录历史和行为。
需要注意的是,/var/log/messages 文件是一个非常重要的系统日志文件,因此需要定期备份和归档,以避免日志文件过大导致系统性能下降。同时,为了保障系统的安全性,该文件只能由 root 用户或者有权限的用户才能访问和查看。
除了 /var/log/messages 文件之外,不同的 Linux 发行版还可能有其他的系统日志文件,如 Red Hat 系统中的 /var/log/secure 文件用于记录安全相关的日志信息。系统管理员需要根据实际情况选择查看不同的系统日志文件来了解系统的运行状况。

/var/log/secure

/var/log/secure 日志文件是一个系统日志文件,主要用于记录与系统安全相关的信息,如用户登录、认证、授权、sudo 使用等等。该日志文件包含了系统的安全事件,可以帮助系统管理员了解系统的安全状况和监控系统的安全性。
/var/log/secure 文件通常包含了以下类型的安全事件信息:

  • 用户登录和注销事件,包括登录方式、来源 IP 地址、登录时间等信息;
  • 用户密码认证事件,包括密码认证成功或失败、认证方式、用户名称等信息;
  • sudo 使用事件,包括执行的命令、执行用户、执行时间等信息;
  • PAM 认证事件,包括 PAM 模块名称、认证结果等信息;
  • SELinux 安全事件,包括 SELinux 策略的执行结果等信息。
    需要注意的是,/var/log/secure 文件是一个非常重要的系统日志文件,其中的安全事件信息可以帮助管理员了解系统的安全状况并及时发现潜在的安全威胁。因此,该日志文件只能由 root 用户或者有权限的用户才能访问和查看。

/var/log/wtmp、/var/log/faillog

/var/log/wtmp 日志文件是一个系统日志文件,用于记录系统中所有用户的登录和注销事件。该日志文件包含了用户登录和注销的时间、源 IP 地址、登录方式等信息,可以帮助系统管理员追踪用户的登录历史和行为,以及监控系统的安全状况。
/var/log/wtmp 文件通常包含了以下类型的登录事件信息:

  • 用户登录和注销事件,包括登录方式、来源 IP 地址、登录时间等信息;
  • 远程登录事件,包括 SSH、telnet 等远程登录方式的登录事件信息;
  • 控制台登录事件,包括本地终端登录方式的登录事件信息。
    需要注意的是,/var/log/wtmp 文件是一个非常重要的系统日志文件,其中包含了非常敏感的用户登录信息,因此只能由 root 用户或者有权限的用户才能访问和查看。
    /var/log/faillog 日志文件是一个系统日志文件,用于记录系统中用户登录认证失败的事件。该日志文件包含了用户登录失败的次数、时间、来源 IP 地址等信息,可以帮助系统管理员了解系统的安全状况和监控用户的登录行为。
    /var/log/faillog 文件通常包含了以下类型的登录失败事件信息:
  • 用户密码认证失败事件,包括密码认证失败的次数、时间、来源 IP 地址等信息;
  • PAM 认证失败事件,包括 PAM 模块名称、认证结果等信息;
  • SSH 登录失败事件,包括 SSH 认证失败的次数、时间、来源 IP 地址等信息。
    需要注意的是,/var/log/faillog 文件是一个非常重要的系统日志文件,其中包含了用户的登录认证失败信息,可以帮助管理员发现潜在的安全威胁和密码暴力破解行为。因此,该日志文件只能由 root 用户或者有权限的用户才能访问和查看。

/var/log/httpd/ *、/var/log/samba/ *

/var/log/httpd/* 日志文件是一个系统日志文件,用于记录 Apache HTTP 服务器的访问日志和错误日志信息。该日志文件包含了 HTTP 请求的详细信息、响应代码、来源 IP 地址等信息,可以帮助系统管理员了解服务器的访问情况,以及排查 HTTP 请求的问题和错误。

/var/log/samba/* 日志文件是一个系统日志文件,用于记录 Samba 服务器的访问日志和错误日志信息。该日志文件包含了 Samba 服务器的访问情况、用户登录信息、文件和目录操作信息等,可以帮助管理员了解 Samba 服务器的使用情况和排查访问问题。

日志文件所需相关服务(daemon)与程序

产生日志文件的方式有两种,一种是软件开发商自行定义写入的日志文件,另一种是由Linux发行版提供的日志文件管理服务。Centos提供了rsyslog.service服务来统一管理日志文件。

如果任由日志文件持续记录,将会导致日志文件容量变大,影响大文件读写效率。因此,需要对日志文件进行备份和更新。可以使用logrotate工具来自动化处理日志文件容量和更新的问题。logrotate会将旧的日志文件更改名称并建立一个新的空日志文件,达到轮替的目的。同时,如果旧的记录保存了一段时间没有问题,系统会自动删除旧的日志文件,以免占用过多磁盘空间。

总结一下,针对日志文件所需的功能,我们需要的服务与程序有:

  • systemd-journald.service:最主要的信息记录者,由systemd提供
  • rsyslog.service:主要收集登录系统与网络等服务的信息。
  • logrotate:主要在进行日志文件的轮循功能。

Centos 7.x 使用systemd提供的journalctl日志管理

systemd-journald.servicesystemd 系统日志管理服务。它负责收集、存储和管理系统日志信息,可以将日志信息写入二进制文件或者提供一个日志消息总线,使得其他进程或者用户可以获取和使用这些日志信息。与传统的日志文件不同,systemd-journald.service 采用了二进制日志文件格式,能够提供更高效、更完整的日志记录和查询功能。此外,systemd-journald.service 还可以实时监控系统日志信息,支持日志信息的自动转发、压缩、加密和签名等功能,可以更好地保护系统安全和稳定。通过使用journalctl命令,我们可以很方便地查看系统日志信息,而不必手动打开和搜索传统的日志文件。

日志文件内容的一般格式

一般来说,系统产生的信息并记录下来的内容中,每条信息均会记录下面几个重要内容:

  • 事件发生的日期与时间

  • 发生此事件的主机名

  • 启动此事件的服务名称(如 systemd、cron等)或命令与函数名称(如 su、login…)

  • 该信息的实际内容

    当然这些信息【详细度】是可以修改的,而且这些信息可以作为系统除错之用。我们来拿登录时一定会记录账户信息的 /var/log/secure为例:

    使用cat /var/log/secure

image-20230516164832684

我们拿第一条数据(共两行)来说明,该数据是说:【在5月16日 的14:26分左右,在名为localhost主机登录,由login这个程序产生的信息,内容显示root 在tty1登录了,而相关的权限设置是通过pam_unix模块处理(共两行内容)】后面的信息说明可以自行翻译一下

其实还有很多的信息值得查看,尤其是/var/log/messages的内容。记得常常去【巡视】日志文件的内容。尤其是下面几种情况

  • 当你觉得系统似乎不太正常时
  • 某个daemon老是无法正常启动时
  • 某个用户老是无法登录时
  • 某个daemon执行过程老是不顺畅时

还有很多,反正觉得系统不太正常,就得要查询查询日志文件了。


http://www.ppmy.cn/news/71606.html

相关文章

Go语言网络编程:TCP、HTTP、Gin、WebSocket、RPC、gRPC入门实例

Go语言网络编程:TCP、HTTP、Gin、WebSocket、RPC、gRPC入门实例 在本文中,我们将介绍Go语言中的网络编程的不同方式,包括TCP、HTTP、Gin框架、WebSocket、RPC、gRPC的介绍与连接实例,并对所有示例代码都给出了详细的注释&#xf…

BoostSearch搜索引擎

今天讲的项目是基于C的Boost库的站内搜索引擎。因为Boost库内没有搜索关键字功能,所以在这里我们来手动实现一个这样的搜索引擎。当用户在输入框输入要查询的关键字后,就会快速查询出相关的 boost 库中的文档,弥补 boost 在线文档没有搜索功能…

使用 VS Code 快速搭建 ESP-IDF 开发环境 (Windows、Linux、MacOS)

ESP-IDF 是乐鑫官方的物联网开发框架,适用于 ESP32、ESP32-S、ESP32-C 和 ESP32-H 系列 SoC。它基于 C/C 语言提供了一个自给自足的 SDK,方便用户在这些平台上开发通用应用程序,并集成了大量的软件组件,包括 RTOS、外设驱动程序、…

SpringMVC简介、请求与响应、REST风格、SSM整合、拦截器

目录 SpringMVC简介 SpringMVC概述 入门案例 入门案例工作流程分析 Controller加载控制 PostMan 请求与响应 设置请求映射路径 五种类型参数传递 JSON数据传输参数 JSON对象数据 JSON对象数组 日期类型参数传递 响应 REST风格 REST风格简介 RESTful入门案例…

【分布式】一致性哈希和哈希槽

当我们拥有了多台存储服务器之后,现在有多个key,希望可以将这些个key均匀的缓存到这些服务器上,可以使用哪些方案呢? 1. 普通哈希取模法 1.1 直接哈希取模 这是一种最容易想到的方法,使用取模算法hash(k…

SpringBoot中使用lombok

1.添加依赖 在项目的根目录中找到pom.xml&#xff0c;在dependencies下复制这段代码 <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifac…

10个高质量的简历制作网站推荐

刚经历完有金三银四&#xff0c;有没有因为简历不行&#xff0c;面试少的可怜的同学。 今天推荐10个高质量的简历制作网站&#xff0c;包括可以在线免费生成设计简历的网站。 1.即时设计资源社区 即时设计是国内首款专业级的 UI 设计工具&#xff0c;像 PC 端的网页&#xf…

一条查询语句在MySQL的处理过程

例如查询语句&#xff1a; select user_id、username from t_user where username "张三" and sex 1; 其在MySQL的执行流程如下&#xff1a; 客户端发起查询请求&#xff0c;与SQL 接口建立连接&#xff0c;SQL 接口确定用户是否有查询权限&#xff0c;没有权限…