原文:https://stackify.com/linux-logs/
**
linux 日志的定义
**
linux日志是以时间线-事件来记录操作系统,应用的信息,并且日志也是一个很好查看和解决的问题的有效方法。实际上,当系统发生问题时,管理员首先要做的事就是去分析日志文件。
对于一般桌面应用的问题,日志文件都会被写在不同的地方。例如谷歌浏览器Chrome 将奔溃报告写在“~/.chrome/Crash Reports”, 桌面应用的日志会被写在哪里取决于它的开发人员,或者有些软件允许配置日志管理。
日志文件以纯文本形式都储存在“/var/log”文件夹或者它的子文件夹。这里有linux一切的日志,包括:系统,内核,包管理,启动日志,Xorg,Apache,MySQL。但是这篇文章中,我们主要讲linux的系统日志。
你可以用 cd 命令进入到这个目录。当然首先你要是root用户登录一台linux或者类Unix系统。
怎么查看 Linux 日志
使用以下命令去查看日志文件:
你可以先使用 cd /var/log 进入到存放log的目录,然后执行 ls查看这个目录下面所有的日志文件,其中有一个很重要的日志 syslog,它包含linux系统中除了用户相关信息的所有日志。
当你使用 vim syslog 查看日志时,可能需要花些时间去定位到某个问题,因为这个文件一般都很大。你可以使用 Shift+G 来移动到文件的最底端来查看。
你也可以通过使用 dmesg 来查看日志,它可以打印出内核缓冲信息。它将所有信息写到文件的末端。通过这点,你可以使用命令 dmesg |less 来滚动查看日志输出。如果你想查看用户设备的所有日志,你需要使用 dmesg –facility=user
最后你可以使用 tail 命令 来查看日志文件。这是在linux中你所有能使用的查看日志最简便的方法了,因为这个命令只查看往往问题存在的日志文件的最后几行。你可以使用 tail /var/log/syslog 或者 tail -f /var/log/syslog. tail 命令会持续不断查看日志文件,并且将接下来的信息打印出来,所以你可以实时查看当前往日志文件中写的日子都是那些。
如果你想查看某几行日志(例如:最后五行)可以使用 tail -f -n 5 /var/log/syslog, 这样只会打印日志文件的最后五行,当有新的日志写进文件时,老的日志会被去掉。取消 tail 可以使用 Ctrl+x。
重要的linux日志
所有的日志大都可以分为以下四类:
- 应用日志
- 事件日志
- 服务日志
- 系统日志
监控所有的日志是一件了不起的事情, 开发像Retrace这样的工具,支持APM的日志集中管理,让你能够在一个目录收集所有的日志–主要是为了开发者。这些监控的日志取决于的目标或者其他用途,但是有些日志是被一致认为需要的。例如:
- /var/log/syslog 或者 /var/log/messages:日常信息,一般都是系统相关的提示。实际上,这个日志包含系统所有的动 作信息。在Redhat-based
系统,如CentOS 或者 Redhat,都是放在 messages 里面,而 Ubuntu 等 Debian-based 系统都是放在
syslog里面。 - /var/log/auth.log 或则 /var/log/secure:
存放系统认证信息,包括每次成功或者失败的登录,以及认证方式。Redhat-based 系统存放在 secure
里面,Debian-base的系统存放在auth.log里面 - /var/log/boot.log:一些系统启动的日志。
- /var/log/maillog 或者 /var/log/mail.log: 邮件服务有关的日志。
- /var/log/kern:内核日志和警告信息,通常用来调试定制内核
- /var/log/dmesg:有关设备驱动的日子,命令dmesg可以直接查看
- /var/log/faillog:失败的登录尝试信息,一般用于检查系统安全。
- /var/log/cron:用来收集定时任务信息的。
- /var/log/yum.log: 用yum对包的操作都会记录在这里。
- /var/log/httpd/:文件夹中包含
error_log,access_log收集httpd线程的信息。error_log,包含httpd线程错误以及一些内存系统相关的错误。access_log,记录所有通过http的请求 - /var/log/mysqld.log 或者 /var/log/mysql.log:
MySQL的日志文件,包含mysql所有的调试,成功,失败的信息。包含mysql启动关闭信息。Redhat-based:mysqld.log;Debian-based:mysql.log - /var/log/daemon.log:跟踪收集后端服务的信息,但是没有图解的输出。
- /var/log/btmp:记录失败的登录尝试
- /var/log/utmp:现在的登录状态,用户决定
- /var/log/wtmp:登入,登出记录
- /var/log/lastlog:最后一次登录的信息,对所有用户都适用。这是一个二进制文件可以时候lastlog查看
- /var/log/pureftp.log:如果设备上跑了pureftp进程来监听所有的ftp连接。所有的连接信息,认证,失败信息都会记录
- /var/log/spooler:很少使用,一般为空。一旦使用,信息都是来自USENET
- /var/log/xferlog:包含所有FTP文件传送的会话信息,包含文件名,哪个用户传送的。
了解linux日志的用途以及局限对使用linux的专业人员来说格外重要。
可以参考的文档:
An Introduction To Linux Log Files
Linux Log Files Location And How Do I View Logs Files on Linux?
How To View and Configure Linux Logs on Ubuntu and Centos
Syslog Better Logging Tutorial
System Logging explained in Linux
Ubuntu Documentation – LinuxLogFiles
Logging, Log File Rotation, and Syslog Tutorial