背景介绍:
在日常使用linux系统的过程中,经常会有一些“诡异”的现象,让人百思不得其解。。。
比如我前几天装了个Centos7 Minimal,装完后sshd服务设为自启动,然后也没有关机操作。。。
连续两天,给我发现整这出。。。
纳尼???被牛鬼蛇神控制了???
经过一些列的排查后,我发现是waf对sshd服务做了一些更改。。。
这里我收获了一个比较清晰的思路:
源码--->tar(安装前)--->service(安装后)
总之就是从这两天的系统日志里定位到了:
1、从中作梗的“服务名称”
2、服务进程关闭的时间,是否有规律?
然后就是根据这个去深入定位,是哪一段的代码或者配置文件在“作祟”???编译前的代码段是哪些???编译后的配置参数在哪里控制???
做到有条理的去排查问题,思路很重要!!!
正文:
一、Linux系统日志的三种类型
1.内核及系统日志
这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分程序会把日志文件交由rsyslog管理,因而这些程序使用的日志记录也具有相似的格式。
2.用户日志
这种日志数据用于记录Linux操作系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
3.程序日志
有些应用程序会选择由自己独立管理一份日志文件,用于记录本程序运行过程中的各种事件信息,而不是交给rsyslog服务管理。由于这些程序只负责管理自己的日志文件,因此不同程序所使用的日志记录格式可能会存在较大的差异。
二、Linux系统常见的日志文件
路径1:/var/log/messages:记录 Linux 内核消息及各种应用程序的公共日志信息 路径2:/var/log/cron:记录 crond 计划任务产生的事件信息 路径3:/var/log/dmesg:记录 Linux 操作系统在引导过程中的各种事件信息 路径4:/var/log/maillog:记录进入或发出系统的电子邮件活动 路径5:/var/log/lastlog:记录每个用户最近的登录事件 路径6:/var/log/secure:记录用户认证相关的安全事件信息 路径7:/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件 路径8:/var/log/btmp:记录失败的、错误的登录尝试及验证事件
三、Linux系统日志的优先级别
数字等级越小,优先级越高,消息越重要。
四、补充:查看使用systemctl启动日志
1、查看启动日志
journalctl -f或者 journalctl -xe
2、查看所有已启动服务
systemctl list-units --type=service