简介

在Centos 7.x / RHEL 7.x 的版本,系统日志是由一个名为 rsyslog的服务管理的,默认的日志守护进程为 rsyslog , rsyslog 是 syslog 的升级版本,默认安装,随机启动。

主配置文件:

/etc/rsyslog.conf

Linux系统日志的重要性无需多言,日志对管理员来说,是了解系统运行的主要途径,因此需要对 Linux 日志系统有个详细的了解。

Linux 系统内核和许多程序会产生各种错误信息、告警信息和其他的提示信息,这些各种信息都应该记录到日志文件中,完成这个过程的程序就是 rsyslog,rsyslog 可以根据日志的类别和优先级将日志保存到不同的文件中。

日志类型

常见的日志类型:

日志的优先级

常见的日志优先级:

常见的日志文件

系统日志一般存储于 /var/log 目录下,查看 rsyslog.conf:

通过查看 rsyslog.conf 可以总结出部分日志文件记录的信息。

/var/log/message:记录Linux操作系统常见的系统和服务错误信息
/var/log/boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
/var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息(一般通过命令 lastlog 查看)
/var/log/secure :Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况
/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址
/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看

/var/log/message

记录了系统日常的一些操作,内核态和用户态的信息都有,对于这个文件,我们日常只需要关注一些错误和告警信息:

[root@192.168.118.15 ~]#egrep -ri 'error|warn' /var/log/messages

这里有必要记录下最近查看 messsage 遇到的问题:

查看 message 时,发现了大量 类似 开启 session 会话的东西,一看是 root 立刻提高警惕。查看时间,发现规律:每 10 分钟执行一次,因此怀疑是 crond 计划任务,转而查看 /var/log/cron 日志:

查看后,发现时间刚好能匹配上。分析:

  1. cron 每小时默认每小时执行的任务在 /etc/cron.hourly/ 目录下
  2. 每十分钟执行的命令: /usr/lib64/sa/sa1 1 1

归根到底,我们发现原来是 sysstat 包生成的这个计划任务,每10分钟就会去执行一次,这个命令是为了收集系统运行数据,以供 sar 命令使用。

该疑问解除,又产生了疑问:

  1.   为什么会产生这样的 session 日志?
  2.   如果正常登录系统,会怎么记录 session

第一个问题:

   经过测试,这种会话的产生是系统执行了一个 bash脚本,查看了一个新的bash环境。执行完毕就退出了,关键字(starting、started)

如下的日志,表示运行了一个shell脚本,starting开启一个shell,started的时候结束一个shell

而真正登录一个会话,会有一个 logind 的过程记录:

因此不要胡乱猜测是谁在不停的扫描或者在不停的通过 root 登录。

/var/log/boot.log

该日志记录的是系统启动的过程

可以通过该日志,查看某些服务启动成功或者失败。

 /var/log/lastlog

不用直接查看该日志文件,通过命令:lastlog 查看:

查看的某系统用户最后一次登录的记录,一些系统用户从来不登录最后一次就是 **Never logged in**

通过 last 可以查看那些会话在线,什么时候重启。记录了登录会话的时间,但是无法查看是哪个用户执行了重启的操作。

/var/log/secure

主要记录用户登录认证。

如果出现大量: authentication failure;   就表示有程序或者人为在尝试登录。可以通过加强 ssh 或者 iptables 来管控登录次数。

/var/log/btmp

记录Linux登陆失败的用户、时间以及远程IP地址

该文件是一个二进制保存的文件,直接使用 lastb 命令查看。如果该日志文件过大,可以清空该文件。

上图所有记录的信息都是尝试登录失败的记录。

/var/log/wtmp

该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看

直接使用 last 命令查看:

Linux 日志系统及分析的更多相关文章

  1. Android应用程序框架层和系统运行库层日志系统源代码分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6598703 在开发Android应用程序时,少 ...

  2. Linux日志 系统日志及分析

    Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息. 大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 / ...

  3. Linux日志系统

    常见的日志 常见的日志一般存储在/var/log中.常见的日志查看使用:ls/ll,cat/more/less查看即可:wtmp,lastlog使用last和lastlog提取其信息即可 配置日志 较 ...

  4. linux日志朔源分析记录

    lastlog 记录用户最后一次登录情况 只有root最近登录过 lastlog -u 用户名或者uid uid 直接在passwd文件中的低三位可以看到 lastb 记录用户用户登录失败的用户记录, ...

  5. 升级你的Linux日志系统

    650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" ...

  6. Linux日志分析的实战专题

      来自 日志也是用户应该注意的地方之一.不要低估日志文件对网络安全的重要作用,因为日志文件能够详细记录系统每天发生的各种各样的事件.用户可以通过日志文件 检查错误产生的原因,或者在受到攻击和黑客入侵 ...

  7. Android日志系统Logcat源代码简要分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6606957 在前面两篇文章Android日志系 ...

  8. Linux系统级日志系统

    linux日志系统,在不同的发行版本名字不同.本质一样都是对系统运行非正常状态的记录... rhel5.x    syslogrhel6.x    rsyslog service rsyslog st ...

  9. Linux - 日志文件

    Linux日志文件绝大多数存放在/var/log目录,其中一些日志文件由应用程序创建,其他的则通过syslog来创建. Linux系统日志文件通过syslog守护程序在syslog套接字/dev/lo ...

随机推荐

  1. [LouguT30212]玩游戏

    题面在这里 description 对于\(k=1,2,...,t\),求\[\frac{1}{nm}\sum_{i=1}^{n}\sum_{j=1}^{m}(a_i+b_j)^k\] 对\(9982 ...

  2. 【BZOJ1941】Hide and Seek(KD-Tree)

    [BZOJ1941]Hide and Seek(KD-Tree) 题面 BZOJ 洛谷 题解 \(KD-Tree\)对于每个点搜一下最近点和最远点就好了 #include<iostream> ...

  3. MySQL中数据表的基本操纵

    本文基于对国家863中部软件孵化器编著的<MySQL从入门到精通>一书的操作实践.  一.创建数据表 数据表属于数据库,在创建数据表之前,应该使用语句 USE 数据库名  指定操作是在那个 ...

  4. 20165218 预备作业3 Linux安装及学习

    Linux安装及学习 第二节 基本概念及操作 1. 关于图形界面 Linux本身是没有图形界面的,对于初学者来说,这或许是其与Windows系统最直观的差别.Linux所呈现给用户的实际上是一个实现图 ...

  5. YBT 5.3 数位动态规划

    记忆化搜索的专题 题解在代码中 Amount of Degrees[loj 10163] /* 此题可以转换成将10进制转成b进制后有k个1其他都为0的个数 所以用记忆化dfs dp[pos][sum ...

  6. 【套题】qbxt国庆刷题班D1

    Day1 事实上D1的题目还是比较简单的= =然而D1T2爆炸了就十分尴尬--错失一波键盘 看题 T1 传送门 Description 现在你手里有一个计算器,上面显示了一个数\(S\),这个计算器十 ...

  7. Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().

    解决方法: audio.load() let playPromise = audio.play() if (playPromise !== undefined) { playPromise.then( ...

  8. mongo日常操作备忘

    修改 普通修改 插入数据: db.students.insert({ "name":"swrd", "age":32, "grad ...

  9. PostgreSQL主键索引膨胀的重建方法

    普通的索引膨胀处理比较简单,主键的索引膨胀也不复杂,只是在新旧索引交替时有一些小处理.本试验在primary key上通过CONCURRENTLY建立第二索引来解决索引膨胀问题,适用9.3.9.4,其 ...

  10. 洛谷P3065 [USACO12DEC]第一!First!(Trie树+拓扑排序)

    P3065 [USACO12DEC]第一!First! 题目链接:https://www.luogu.org/problemnew/show/P3065 题目描述 Bessie一直在研究字符串.她发现 ...