深入了解Linux主机日志,轻松排错高效维护 (linux 主机日志)

随着企业信息化建设的深入推进,Linux系统在生产环境中的应用越来越广泛。Linux系统相比其他操作系统具有更高的可靠性、更高的安全性、更高的性能等优势,因此不少企业选择了将其作为生产环境中的主要操作系统。然而,在使用Linux系统时,由于各种原因,可能会遇到各种问题,如程序崩溃、系统死机、网络故障等,这些问题往往需要依赖日志文件来进行排查。因此,就变得尤为重要。

1. 什么是Linux主机日志?

在Linux系统中,日志记录是非常重要的,它记录了系统的各种操作,包括系统启动、程序运行、系统关闭等等。这些记录保存在/var/log目录中的各个子目录下,每个子目录都对应着一种类型的日志文件。常见的日志文件类型和对应的子目录如下:

access.log:记录Apache访问日志,位于/var/log/httpd目录下。

auth.log:记录用户认证信息,包括登录、登出、passwd修改等,位于/var/log目录下。

boot.log:记录系统启动信息,有关内核的信息和用户空间的信息,位于/var/log目录下。

cron:记录计划任务信息,包括计划任务的启动和停止,位于/var/log目录下。

dmesg:记录内核信息,包括启动时的硬件检测信息,也可用于排错,位于/var/log目录下。

mllog:记录邮件信息,位于/var/log目录下。

secure:记录安全信息,包括sudo操作、登录失败等,位于/var/log目录下。

syslog:记录系统信息,包括应用程序、系统进程框架等信息,位于/var/log目录下。

2. 如何查看Linux主机日志?

在Linux系统中查看日志文件主要使用命令为“tl”和“grep”命令。其中,tl命令用于查看最新的日志信息,它能够不断地对日志文件进行监视,并输出最新的日志信息。语法如下:

tl -f 日志文件名

例如,查看Apache访问日志可以使用以下命令:

tl -f /var/log/httpd/access_log

grep命令用于根据关键字过滤日志信息,它可以根据指定的关键字从日志文件中筛选出符合条件的行。语法如下:

grep 关键字 日志文件名

例如,查看用户认证信息日志可以使用以下命令:

grep ‘login’ /var/log/auth.log

3. 如何分析Linux主机日志?

分析Linux主机日志是排查问题的关键。当出现故障时,我们需要查看日志文件,根据日志信息判断故障原因,查找解决方案。以下是一些常见的排错技巧:

①查找关键字:关键字通常是故障相关的信息,搜索关键字可以快速定位有关故障的信息。例如,如果想查找有关硬盘的信息,可以搜索关键字“disk”:

grep ‘disk’ /var/log/messages

②查看时间戳:时间戳提供了精确的时间信息,可以帮助我们确定故障出现的时间。例如,查看系统启动时间可以使用以下命令:

grep “Starting kernel” /var/log/messages

③诊断错误信息:错误信息通常是问题产生的根本原因。例如,如果Apache服务器无法启动,我们需要查看Apache错误日志,确定错误信息:

tl -n 30 /var/log/httpd/error_log

4. 如何优化Linux主机日志?

Linux主机日志是系统的重要组成部分,但也会占用大量磁盘空间和系统资源。为了优化系统性能,我们可以采取以下策略:

①限制日志文件大小:对于一些日志文件,可以通过在配置文件中增加logrotate或logadm命令的语句来限制日志文件的大小。这可以减少系统资源的占用,也可以保留某些最新的日志信息。

②优化日志输出:可以通过在程序中控制日志输出的级别,减少不必要的日志信息。例如,只记录错误信息,而不记录调试信息。

③设置日志备份:可以设置日志备份来保存日志历史信息。这可以帮助我们在出现问题时更好地了解过去的操作。

结语

通过了解Linux主机日志,我们不仅可以轻松排错,更能优化系统性能、提升系统稳定性。无论是初学者还是专业人员,掌握Linux主机日志的知识都将成为您的一项宝贵技能。

相关问题拓展阅读:

4-9 Linux 中的日志分析

日志:系统、软件 和 用户操作交互信息的记录文件。用于系统审核,日常故障快速定位和排错改指。

日志文件保存在 /var/log 和 /var/run 目录下。在 RedHat 7 中,系统日志消息由两个服务负责处理,它们是 systemd-journald 和 rsyslogd。

日志的保存时间系统默认是4周,可以通过 cat /etc/logrotate.conf 里面的一项参数查到。rotate 可以修改。

主要日志文件介绍:

/var/log/messages:系统日志,主要记录内核和公共消息。

/var/log/cron:计划执行任务日志。

/var/log/dmesg:系统引导日志。

/var/log/maillog:邮件日志。

/var/log/lastlog:用户登录日志。(用 lastlog 命令)

/var/log/boot.log:系统启动日志。

/var/log/secure:安全和身份验证日志 。

/var/log/wtmp:记录所有用户登录的详细信息。(用 last 命令)

/var/log/btmp:记录失败的登录记录(用 lastb 命令)

/var/族仿run/utmp:用户登录、注销及系统开、关等事件。(用 w / who 命令)

(wtmp、btmp 和 utmp 是二进制文件,不能用cat、vi、tail、more这些命令打开查看)

1、/var/log/messages:系统日志,主要记录内核和公共消息。

1)、messages 信息项包括:事件发生的日期和时间、主机,终端名、进程 和 事件日志。

2)、红色下划线:systemctl restart sshd 重启 sshd 服务。

黄色下划线:tail /var/log/messages 查看 messages 日志。

蓝色方框:messages 日志已经可以查到重启 sshd 服务的记录。

绿色下划线:每个动作都记录得很清楚。暂停中(Stopping)、已暂停(Stopped)、启动中(Starting) 和 已启动(Started)

2、/var/log/cron:计划执行任务日志。

1)、cron 信息项包括:事件发生的日期和时间、主机,终端名、进程 和 事件日志。

2)、cron 保存的是计划任务的日志,我们也可以通过特定输出查看计划进程的一些规律。从中也可以梳理一下计划任务的概念。好像 run-parts(/etc/cron.hourly) 进程,基本都是从开机开始,整点 1 个小时就执行一次。一次由两个事件为一组核穗配,一条 starting 0anacron ,另一条 finished 0anacron。

输入 grep run-parts'(‘/etc/cron.hourly’)’ 的时候,()括号需要用单引号引起来。 

CROND进程,基本上也是从开机开始,整点 1 个小时就执行一次。

run-parts(/etc/cron.daily) 进程每天开机执行一次。一次由四个事件为一组,四个事件里面有两个事件是对应关系。starting man-db.cron 对应 finished man-db.cron,starting logrotate 对应 finished logrotate。

从 cron 日志知道系统的计划任务什么时候触发,执行了什么事件,产生了什么信息。 

3、/var/log/dmesg:系统引导日志,显示硬件相关的信息。

head -20 dmesg | nl 列出开头 20 行信息。

4、/var/log/maillog:邮件日志。

红色下划线:tail maillog 查看 maillog 后 10 行信息。

黄色下划线:starting the Postfix mail system 启动 Postfix 邮件系统。daemon started 守护进程启动完成。

maillog 记录的信息都是和邮件有关。

5、/var/log/lastlog:记录所有用户登录最后一次登录本系统的时间信息。用 lastlog 读取信息。lastlog 的几列内容:Username(用户名)、Port(端口)、From(登录IP)、Latest(最后登录时间)。

系统用户是调用系统当中一些特殊服务的用户,不能登录系统(所以它们的登录状态都是显示“**Never logged in**”从来没有登录)。能够登录系统的只有 root 和 新建的普通用户。

6、/var/log/boot.log:系统启动日志。

head /var/log/boot.log 列出头 10 条系统启动的信息(内容较长,里面记录了多次启动的信息)。

通过 3 次的重启,查看 boot.log 大小。每重启一次文件的容量就会增大。也证明了每次启动都会往 boot.log 这个文件写信息。

7、/var/log/secure:安全和身份验证日志 。

tail secure 列出 secure 文件最后 10 行信息。通过 secure 的信息可以发现记录的是安全相关的信息,记录最多的是哪些用户登录服务器的相关日志。

黄色下划线:Failed password for root —— root 的密码错误。

红色下划线:Accepted password for root —— 密码正确,root 用户接受的密码。

绿色下划线:pam_unix(sshd:session): session opened for user root  —— 为 root 用户建立会话。

8、/var/log/wtmp:记录所有用户登录的详细信息。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看。用 last 命令查看。last 作用是显示近期用户或终端登录的情况(包括:登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,)

last -n 10 —— -n 跟一个数字,指定显示最近登录的数据。(或者 last -10 一样效果)

显示的内容有六列:

之一列:用户名。

第二列:终端位置。(pts/0 伪终端,SSH 或 telnet 等工具远程连接的用户,tty0 直接连接到计算机或本地连接的用户,后面的数字代表连接编号)。

第三列:登录 IP 或 内核。(如果是 0.0 或者 什么都没有,意味着用户通过本地终端连接,除了启动活动,内核版本会显示在状态中)。

第四列:开始时间。

第五列:结束时间。(still、login in 尚未推出,down 直到正常关机,crash 直到强制关机)。

第六列:持续时间。

9、/var/log/btmp:记录失败的登录记录,主要查看错误的登录信息。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看。用 lastb 命令查看。

lastb -n 10 —— -n 跟一个数字,指定显示最近登录的数据。(或者 lastb -10 一样效果)

显示的内容有六列:

之一列:用户名。

第二列:终端位置。(连接失败:notty)。

第三列:登录 IP。

第四列:开始时间。

第五列:结束时间。

第六列:持续时间。

10、/var/run/utmp:用户登录、注销及系统开、关等事件。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看。用 w / who 命令查看。

w 命令:查看登录者的信息及行为。

之一行:系统当前时间、系统没有中断持续性的运行时间、当前登录用户数、CPU在之前 1 分钟、5分钟、15分钟的平均负载。

USER: 登录用户名。

TTY:登录后系统分配的终端号。(tty:物理机本机终端、pts:远程终端) 

 FROM:远程主机名 IP。(tty 物理机本机不显示、pts 远程终端会显示 IP) 

 LOGIN@ :登录时间。

 IDLE:用户闲置时间 。这是个计时器,用户执行任何操作,计时器就会被重置。(这里显示的时间是距离上次命令操作后多久没有进行操作的闲置时间)

 JCPU:执行命令进程所消耗的总时间。 终端连接的所有进程占用时间,包括当前正在运行作业占用的时间。

 PCPU:当前进程所消耗 CPU 的时间。 

WHAT:用户正在运行的进程 或 命令。(-bash 进程是终端进程)

who 命令:显示关于当前在本地系统上的所有用户信息。who 和 w 差不多,who 显示的内容更为简洁。who 命令显示以下内容:登录名、tty、登录日期 和 时间。如果用户是从远程终端登录的,那么该终端的 IP 也会显示出来。

11、whoami:显示自己的登录用户。

linux查看日志的命令是?具体怎么用

要看你想查什么样的日志了,linux下面日志有很多,有系统的,有应用冲判枣的。如果是系统下面的日志,一般都在/var/log下面。

如果是看应用日志,那就到应用日志所在目录去看,这个要看具冲漏体应用,每个的路径都不一样。

一般查看日志,可以看静态日志,也就是用’vi 日志文件名’,或者散拆用more之类的工具查看。

还可以看动态日志,用’tail -f 日志文件名’,可以实时查看打命令之后产生的所有新日志。

tail -f 日志文件路径主要用于查看实时的日志记录,属于动态记录查看。

cat日志路径主要用于查看静态的历史日志记录,一般跟路径名称,常见的这周类型的日志记录一般用管道符进行过滤筛选自己所需的记录。

dmesg主要用于调试脚本或者命令,出现异常中断来排查错误原因显示的。

tail  -n  10  test.log,查询日志尾部最后10行的日志。

tail -n +10 test.log,查询10行之后的所有日志。

head -n 10  test.log,查询日志文腊帆清件中的头10行日志。

head -n -10  test.log,查询日志文件除了最后10行的其他所有日志。

操作命令

首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令。

例如dos命令就是控制台命令。要了解的是基于Linux操作系统的基本控制台命令。有一点一定要注意,和dos命令不同的是,Linux的命轮前令(也轿拦包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。

Linux查看日志的命令有很多,比如tail、cat、tac、head、echo等,今天给大家介绍几种常用的方法:

1、腊李tail-实时查看变化的日志

命令格式:tail

-f:循环读取

-q:不显示处理信息

-v:显示详细的处理信息

-c:显示的字节数

-n:显示行数

-q, –quiet, –silent:从不输出给出文件名的首部

-s, –sleep-interval=S:与-f合用,表示在每次反复的间隔休眠S秒

2、head

跟tail相反,head是看日志的前多少行

head -n 10 test.log:查询日志文件中的前10行日志;

head -n -10 test.log:查询日志文件除了最后10行的其他所有日志;

3、cat-搜索关键掘派字附近的日志

cat是由之一行到最后一行连续显示在屏幕上

最常用的命令:cat -n filename | grep “关键字”

cat app.log | grep -C 5 ‘关键字’:显示日志里匹配字串那行判局贺以及前后5行;

cat app.log | grep -B 5 ‘关键字’:显示匹配字串及前5行;

cat app.log | grep -A 5 ‘关键字’:显示匹配字串及后5行;

4、more

more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。

关于linux 主机日志的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 深入了解Linux主机日志,轻松排错高效维护 (linux 主机日志)