b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Linux中日志的详细说明以及如何使用日志对错误进行故障排除

电脑杂谈  发布时间:2020-06-29 15:01:20  来源:网络整理

linux系统启动日志_linux 系统登陆日志_linux 系统 操作日志

Linux系统日志

Linux会自动为您创建许多有价值的日志文件. 您可以在/ var / log目录中找到它们. 这是典型的Ubuntu系统中的目录:

一些最重要的Linux系统日志包括:

/ var / log / syslog或/ var / log / messages存储所有全局系统活动数据,包括引导信息. 基于Debian的系统(例如Ubuntu)将它们存储在/ var / log / syslog中,而基于RedHat的系统(例如RHEL或CentOS)将它们存储在/ var / log / messages中.

/var/log/auth.log或/ var / log / secure存储来自可插入身份验证模块(PAM)的日志,包括成功登录,失败登录尝试和身份验证方法. Ubuntu和Debian将身份验证信息存储在/var/log/auth.log中,而RedHat和CentOS将这些信息存储在/ var / log / secure中.

/ var / log / kern存储内核错误和警告数据,这对于解决与自定义内核有关的问题特别有用.

/ var / log / cron存储有关cron作业的信息. 使用此数据可确保您的cron作业成功运行.

Digital Ocean在这些文件上有完整的教程,解释了rsyslog如何在RedHat和CentOS等常见发行版中创建它们.

应用程序还将在该目录中写入日志文件. 例如,常见的服务器程序(例如Apache,Nginx,MySQL等)可以在此目录中写入日志文件. 这些日志文件中的一些是由应用程序本身创建的,其他的是由syslog创建的(请参见下文以了解详细信息).

什么是系统日志?

如何创建Linux系统日志文件?答案是通过syslog守护程序完成的,该守护程序侦听syslog套接字/ dev / log上的日志信息,然后将其写入相应的日志文件中.

“ syslog”一词代表多种含义,通常用于指代以下名称之一:

Syslog守护程序—用于接收,处理和发送syslog消息的程序. 它可以将syslog远程发送到集中式服务器或写入本地文件. 常见示例包括rsyslogd和syslog-ng. 在这种用法中,人们经常说“发送到系统日志”.

Syslog协议—一种传输协议,用于指定如何通过网络传输日志以及syslog信息的数据格式定义(有关详细信息,请参见下文). 它在RFC-5424中正式定义. 对于文本日志,标准端口是514,对于加密日志,标准端口是6514. 在这种用法中,人们经常说“通过syslog传输”.

系统日志信息—日志信息或系统日志格式的事件,其中包括带有几个标准字段的消息头. 在这种用法中,人们经常说“发送系统日志”.

Syslog消息或事件包括带有几个标准字段的消息头,这可以使分析和路由更加方便. 它们包括时间戳,应用程序名称,信息源在系统中的分类或位置以及事件的优先级.

以下显示了一条包含syslog标头的日志消息,该标头来自控制系统远程登录的sshd守护程序. 此消息描述了失败的登录尝试:

复制代码

代码如下:

<34> 1 2003-10-11T22: 14: 15.003Z server1.com sshd--pam_unix(sshd: auth): 身份验证失败; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = 10.0. 2.2

系统日志格式和字段

每条系统日志消息均包含带有字段的标头. 这些字段是结构化数据,使分析和路由事件更加容易. 以下是我们用于生成上述syslog示例的格式. 您可以将每个值匹配到特定的字段名称.

linux 系统登陆日志_linux 系统 操作日志_linux系统启动日志

复制代码

代码如下:

<%pri%>%协议版本%%timestamp ::: date-rfc3339%%HOSTNAME%%app-name%%procid%%msgid%%msg%n

下面,在搜索或进行故障排除时,您会看到一些最常用的syslog字段:

时间戳

时间戳(在上面的示例中为2003-10-11T22: 14: 15.003Z)表示在系统中发送此信息的时间和日期. 在其他系统上接收信息时,此时间可能会有所不同. 上面示例中的时间戳可以分解为:

2003-10-11,月,日.

T是时间戳记的必需元素,它分隔日期和时间.

22: 14: 15.003是24小时制,其中包括进入下一秒的毫秒数(003).

Z是表示UTC时间的可选元素. 除了Z之外,此示例还可以包含一个偏移量,例如-08: 00,这意味着该时间相对于UTC偏移了8个小时,即PST时间.

主机名

主机名字段(在上例中对应于server1.com)是指主机或发送信息的系统的名称.

应用名称

应用程序名称字段(对应于上例中的sshd: auth)是指发送消息的程序的名称.

优先级

优先级字段或缩写的pri(与上例相对应)告诉我们此事件的紧急程度或严重程度. 它由两个数字字段组成: 设备字段和紧急程度字段. 紧急字段的范围从代表调试事件的数字7到代表紧急事件的数字0. 设备字段描述了哪个进程创建了事件. 从内核信息的0到本地应用程序的23.

Pri有两种输出方法. 第一个由单个数字表示,可以按如下方式计算: 首先将设备字段的值乘以8,然后将紧急字段的值相加: (设备字段)(8)+(紧急字段). 第二种类型是pri文本,将以“设备字段. 紧急字段”的格式输出. 后一种格式更易于阅读和搜索,但会占用更多存储空间.

使用日志在Linux中进行故障排除

登录失败原因

如果要检查系统是否安全,可以在验证日志中检查登录失败和登录成功但可疑的用户. 当某人使用不正确或无效的凭据登录时,将发生身份验证失败,通常在使用SSH进行远程登录或使用su到其他本地用户进行访问时发生. 这些由插件身份验证模块(PAM)记录. 您将在日志中看到诸如密码失败和未知用户之类的字符串. 成功的身份验证记录将包含诸如“接受的密码”和“打开的会话”之类的字符串.

失败示例:

复制代码

代码如下:

linux系统启动日志_linux 系统登陆日志_linux 系统 操作日志

pam_unix(sshd: auth): 身份验证失败; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = 10.0.2.2

从10.0.2.2端口4791 ssh2进行无效的用户悬停时密码失败

pam_unix(sshd: auth): 检查通过;用户未知

PAM服务(sshd)忽略最大重试次数; 6> 3

成功的例子:

复制代码

代码如下:

从10.0.2.2端口4792 ssh2处获得的停留密码

pam_unix(sshd: session): 会话由(uid = 0)用户悬停打开

pam_unix(sshd: session): 会话因用户悬停而关闭

您可以使用grep查找哪些用户登录失败最多. 这些是潜在攻击者正在尝试和访问的帐户. 这是一个在ubuntu系统上的例子.

复制代码

代码如下:

$ grep“无效的用户” /var/log/auth.log |切-d''-f 10 |排序uniq -c |排序-nr

23甲骨文

18个postgres

17名海军上将

10个zabbix

6次测试

由于没有标准格式,因此您需要为每个应用程序日志使用不同的命令. 日志管理系统可以自动分析日志并对其进行有效地分类,以帮助您提取诸如用户名之类的关键字.

日志管理系统可以使用自动解析从Linux日志中提取用户名. 这使您可以查看用户信息并通过单击对其进行过滤. 在下面的示例中,我们可以看到root用户已登录2700次以上,因为我们过滤的日志仅显示root用户的登录尝试.

日志管理系统还允许您以时间为坐标轴查看图表,从而更轻松地发现异常. 如果某人在几分钟内未能登录一次或两次,则可能是真实用户,并且忘记了密码. 但是,如果有数百个使用不同用户名的失败登录,则更有可能尝试攻击系统. 在这里,您可以看到3月12日linux系统启动日志,有人试图登录Nagios数百次. 这显然不是合法的系统用户.

linux 系统登陆日志_linux系统启动日志_linux 系统 操作日志

重启原因

有时,服务器由于系统崩溃或重新启动而关闭. 您怎么知道它何时发生以及是谁做的?

关机命令

如果有人手动运行shutdown命令,则可以在验证日志文件中看到它. 在这里,您可以看到有人以ubuntu用户身份从IP 50.0.134.125远程登录,然后关闭了系统.

复制代码

代码如下:

3月19日18:36:41 ip-172-31-11-231 sshd [23437]: 从50.0.134.125端口52538 ssh接受了ubuntu的公钥

3月19日18:36:41 ip-172-31-11-231 23437]: sshd [pam_unix(sshd: session): 由(uid = 0)为用户ubuntu打开的会话

3月19日18:37:09 ip-172-31-11-231 sudo: ubuntu: TTY = pts / 1; PWD = / home / ubuntu; USER =根; COMMAND = / sbin / shutdown -r now <

内核初始化

如果要查看服务器重新启动的所有原因(包括崩溃),可以在内核初始化日志中找到它. 您需要搜索有关内核类(内核)和CPU初始化(初始化)的信息.

复制代码

代码如下:

3月19日18:39:30 ip-172-31-11-231内核: [0.000000]初始化cgroup子系统cpuset

3月19日18:39:30 ip-172-31-11-231内核: [0.000000]初始化cgroup子系统cpu

3月19日18:39:30 ip-172-31-11-231内核: [0.000000] Linux版本3.8.0-44-generic(内置@tipua)(gcc版本4.6.3(Ubuntu / Linaro 4.6. 3-1ubuntu5))#66〜precise1-Ubuntu SMP Tue Jul 15 04:01:04 UTC 2014(Ubuntu 3.8.0-44.66〜precise1-generic 3.8.13.25)

检测内存问题

有很多原因可能导致服务器崩溃,但是常见原因是内存不足.

当系统内存不足时,该进程将被杀死,通常会杀死使用最多资源的进程. 当系统使用所有内存,并且新的或现有的进程尝试使用更多的内存时,将发生错误. 在日志文件中查找“内存不足”之类的字符串或“ kill”之类的内核警告消息. 此信息表明系统故意杀死了进程或应用程序,而不是使进程崩溃.

示例:

复制代码

代码如下:

linux系统启动日志_linux 系统登陆日志_linux 系统 操作日志

[33238.178288]内存不足: 杀死进程6230(firefox)得分53或牺牲孩子

[29923450.995084]选择5230(泊坞窗),调整0,大小708,以杀死

您可以使用grep之类的工具来查找这些日志. 此示例在ubuntu中:

复制代码

代码如下:

$ grep“内存不足” / var / log / syslog

[33238.178288]内存不足: 杀死进程6230(firefox)得分53或牺牲孩子

请记住,grep也使用内存,因此仅运行grep也可能会导致内存不足错误. 这是为什么您应该集中存储日志的另一个原因!

计划的任务错误日志

cron守护程序是一个调度程序,可以在指定的日期和时间运行进程. 如果该过程失败或无法完成,则cron错误会出现在您的日志文件中. 根据您的分布,您可以在/ var / log / cron,/ var / log / messages和/ var / log / syslog中找到此日志. Cron任务失败的原因很多. 通常,问题出在进程而不是cron守护程序本身.

默认情况下,cron任务的输出通过后缀发送. 这是显示电子邮件已发送的日志. 不幸的是,您在这里看不到电子邮件的内容.

复制代码

代码如下:

3月13日16:35:01 PSQ110后缀/提取[15158]: C3EDC5800B4: uid = 1001 from =

3月13日16:35:01 PSQ110后缀/清理[15727]: C3EDC5800B4: message-id = <20150310110501.C3EDC5800B4@PSQ110>

Mar 13 16:35:01 PSQ110 postfix / qmgr [15159]: C3EDC5800B4: from = ,大小= 607,nrcpt = 1(队列处于活动状态)

3月13日16:35:05 PSQ110 postfix / smtp [15729]: C3EDC5800B4: to = ,relay = gmail-smtp-in.l.google.com [74.125.130.26]: 25 ,延迟= 4.1linux系统启动日志,延迟= 0.26 / 0 / 2.2 / 1.7,dsn = 2.0.0,状态=已发送(250 2.0.0 OK 1425985505 f16si501651pdj.5-gsmtp)

您可以考虑将cron的标准输出记录到日志中,以帮助您找到问题所在. 这是如何使用logger命令将cron标准输出重定向到syslog的示例. 可以将helloCron设置为所需的任何应用程序名称,而不是使用脚本的echo命令.

* / 5 * * * *回显“ Hello World” 2>&1 | / usr / bin / logger -t helloCron

它创建的日志条目:

复制代码

代码如下:

4月28日22:20:01 ip-172-31-11-231 CRON [15296]: (ubuntu)CMD(echo'Hello World!'2>&1 | / usr / bin / logger -t helloCron)<

4月28日22:20:01 ip-172-31-11-231 helloCron: 世界您好!

每个cron任务都会根据任务的特定类型以及如何输出数据来记录不同的日志.

我希望日志中可以找到问题根源的线索,并且您可以根据需要添加其他日志记录.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-262469-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...