日志文件简易说明
Linux在后台工作的进程总是会显示一些重要的信息,然后这些信息会被记录到日志文件中。所以日志文件对于开发者和系统管理员来说都是非常重要的。
日志的产生大体可以分为两种。
一种是linux发行版提供的日志管理服务来统一管理,这些日志记录的都是linux系统下的一些日志信息,如lastlog记录最后一次登录,maillog记录邮件来往信息,这些日志文件存放在/var/log下。
另一种则是软件开发商自行定义写入的日志文件,如apache,这些软件上定义的日志文件相对来说是开发测试需要重点关注的日志文件。
日志文件可以帮助我们解决一下问题:
- 解决系统方面的错误
像是硬件无法识别,服务无法启动等等错误,这些过程都会记录在日志文件内,通过查询日志文件我们就能了解到系统做了什么 - 解决网络服务的问题
如果在做完了一些网络服务的设置后,却一直无法顺利启动该服务,可以查看日志,网络服务的各种问题都会被刺蛾如特别的日志文件 - 过往事件记事本
这个东西相当重要。如果发现某个WWW服务在某个时刻流量特别大,可以通过日志文件去找出有那些IP连接与查询的网页数据是什么,就可以知道原因。
日志文件的格式与记录日志文件的服务
日志文件一般每条信息会记录一下内容:
1.事件发生的日期与时间
2.发生此事件的主机名
3.启动此事件的服务名称(如systemd,crond)或者命令函数(如su,login)
4.信息的实际内容
Linux的日志文件主要由rsyslog.service负责,这是个daemon(一段连续运行的程序)。
日志文件分析
可以用vim,journalctl,more/less,tail,head等多种命令来查看日志文件
journalctl的用法:
journalctl [-nrpf] [–since TIME] [–until TIME] _optinonal
默认会显示全部的log内容,从旧到新显示
-n 显示最近几行的信息
-r 反向输出,从新到旧显示信息
-p 显示后续信息的重要性
-f 类似tail -f 持续显示log的最新内容(实时监控)
–since --until 筛选日志时间段
_SYSTEMD_UNIT = unit.service 只输出unit.service的相关内容
_COMM = bash 只输出bash相关的内容
_PID = pid 只输出pid相关的内容
_UID = uid 只输出uid相关的内容
工具logwatch:
这个工具是CenterOS自带的工具,感觉更偏向于运维。
这个工具会每天自动分析一遍日志文件,然后将邮件发送给root