位置: 编程技术 - 正文

详解Linux中的日志及用日志来排查错误的方法(linux的日志文件)

编辑:rootadmin

推荐整理分享详解Linux中的日志及用日志来排查错误的方法(linux的日志文件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux日期,linux常用日志命令,linux常用日志命令,linux的日期命令,linux常用日志命令,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 (具体见下文)来创建。

什么是 Syslog?Linux 系统日志文件是如何创建的呢?答案是通过 syslog 守护程序,它在 syslog 套接字 /dev/log 上监听日志信息,然后将它们写入适当的日志文件中。

单词“syslog” 代表几个意思,并经常被用来简称如下的几个名称之一:

Syslog 守护进程 — 一个用来接收、处理和发送 syslog 信息的程序。它可以远程发送 syslog 到一个集中式的服务器或写入到一个本地文件。常见的例子包括 rsyslogd 和 syslog-ng。在这种使用方式中,人们常说“发送到 syslog”。Syslog 协议 — 一个指定日志如何通过网络来传送的传输协议和一个针对 syslog 信息(具体见下文) 的数据格式的定义。它在 RFC- 中被正式定义。对于文本日志,标准的端口是 ,对于加密日志,端口是 。在这种使用方式中,人们常说“通过 syslog 传送”。Syslog 信息 — syslog 格式的日志信息或事件,它包括一个带有几个标准字段的消息头。在这种使用方式中,人们常说“发送 syslog”。Syslog 信息或事件包括一个带有几个标准字段的消息头,可以使分析和路由更方便。它们包括时间戳、应用程序的名称、在系统中信息来源的分类或位置、以及事件的优先级。

下面展示的是一个包含 syslog 消息头的日志信息,它来自于控制着到该系统的远程登录的 sshd 守护进程,这个信息描述的是一次失败的登录尝试:复制代码代码如下:<>1 --T::.Z server1.com sshd - - pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=.0.2.2Syslog 格式和字段每条 syslog 信息包含一个带有字段的信息头,这些字段是结构化的数据,使得分析和路由事件更加容易。下面是我们使用的用来产生上面的 syslog 例子的格式,你可以将每个值匹配到一个特定的字段的名称上。复制代码代码如下:<%pri%>%protocol-version% %timestamp:::date-rfc% %HOSTNAME% %app-name% %procid% %msgid% %msg%n下面,你将看到一些在查找或排错时最常使用的 syslog 字段:

时间戳时间戳 (上面的例子为 --T::.Z) 暗示了在系统中发送该信息的时间和日期。这个时间在另一系统上接收该信息时可能会有所不同。上面例子中的时间戳可以分解为:

-- 年,月,日。T 为时间戳的必需元素,它将日期和时间分隔开。::. 是 小时制的时间,包括进入下一秒的毫秒数()。Z 是一个可选元素,指的是 UTC 时间,除了 Z,这个例子还可以包括一个偏移量,例如 -:,这意味着时间从 UTC 偏移 8 小时,即 PST 时间。主机名主机名 字段(在上面的例子中对应 server1.com) 指的是主机的名称或发送信息的系统.

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

详解Linux中的日志及用日志来排查错误的方法(linux的日志文件)

优先级优先级字段或缩写为 pri (在上面的例子中对应 ) 告诉我们这个事件有多紧急或多严峻。它由两个数字字段组成:设备字段和紧急性字段。紧急性字段从代表 debug 类事件的数字 7 一直到代表紧急事件的数字 0 。设备字段描述了哪个进程创建了该事件。它从代表内核信息的数字 0 到代表本地应用使用的 。

Pri 有两种输出方式。第一种是以一个单独的数字表示,可以这样计算:先用设备字段的值乘以 8,再加上紧急性字段的值:(设备字段)(8) + (紧急性字段)。第二种是 pri 文本,将以“设备字段.紧急性字段” 的字符串格式输出。后一种格式更方便阅读和搜索,但占据更多的存储空间。

在 Linux 中使用日志来排错登录失败原因如果你想检查你的系统是否安全,你可以在验证日志中检查登录失败的和登录成功但可疑的用户。当有人通过不正当或无效的凭据来登录时会出现认证失败,这通常发生在使用 SSH 进行远程登录或 su 到本地其他用户来进行访问权时。这些是由插入式验证模块(PAM)来记录的。在你的日志中会看到像 Failed password 和 user unknown 这样的字符串。而成功认证记录则会包括像 Accepted password 和 session opened 这样的字符串。

失败的例子:复制代码代码如下:pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=.0.2.2Failed password for invalid user hoover from .0.2.2 port ssh2pam_unix(sshd:auth): check pass; user unknownPAM service(sshd) ignoring max retries; 6 > 3成功的例子:复制代码代码如下:Accepted password for hoover from .0.2.2 port ssh2pam_unix(sshd:session): session opened for user hoover by (uid=0)pam_unix(sshd:session): session closed for user hoover你可以使用 grep 来查找哪些用户失败登录的次数最多。这些都是潜在的攻击者正在尝试和访问失败的账户。这是一个在 ubuntu 系统上的例子。复制代码代码如下:$ grep "invalid user" /var/log/auth.log | cut -d ' ' -f | sort | uniq -c | sort -nr oracle postgres nagios zabbix6 test由于没有标准格式,所以你需要为每个应用程序的日志使用不同的命令。日志管理系统,可以自动分析日志,将它们有效的归类,帮助你提取关键字,如用户名。

日志管理系统可以使用自动解析功能从 Linux 日志中提取用户名。这使你可以看到用户的信息,并能通过点击过滤。在下面这个例子中,我们可以看到,root 用户登录了 次之多,因为我们筛选的日志仅显示 root 用户的尝试登录记录。日志管理系统也可以让你以时间为做坐标轴的图表来查看,使你更容易发现异常。如果有人在几分钟内登录失败一次或两次,它可能是一个真正的用户而忘记了密码。但是,如果有几百个失败的登录并且使用的都是不同的用户名,它更可能是在试图攻击系统。在这里,你可以看到在3月日,有人试图登录 Nagios 几百次。这显然&#;&#;不是一个合法的系统用户。重启的原因有时候,一台服务器由于系统崩溃或重启而宕机。你怎么知道它何时发生,是谁做的?

关机命令如果有人手动运行 shutdown 命令,你可以在验证日志文件中看到它。在这里,你可以看到,有人从 IP .0.. 上作为 ubuntu 的用户远程登录了,然后关闭了系统。复制代码代码如下:Mar :: ip---- sshd[]: Accepted publickey for ubuntu from .0.. port sshMar :: ip---- ]:sshd[ pam_unix(sshd:session): session opened for user ubuntu by (uid=0)Mar :: ip---- sudo: ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/sbin/shutdown -r now内核初始化如果你想看看服务器重新启动的所有原因(包括崩溃),你可以从内核初始化日志中寻找。你需要搜索内核类(kernel)和 cpu 初始化(Initializing)的信息。复制代码代码如下:Mar :: ip---- kernel: [ 0.] Initializing cgroup subsys cpusetMar :: ip---- kernel: [ 0.] Initializing cgroup subsys cpuMar :: ip---- kernel: [ 0.] Linux version 3.8.0--generic (buildd@tipua) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #~precise1-Ubuntu SMP Tue Jul :: UTC (Ubuntu 3.8.0-.~precise1-generic 3.8..)检测内存问题有很多原因可能导致服务器崩溃,但一个常见的原因是内存用尽。

当你系统的内存不足时,进程会被杀死,通常会杀死使用最多资源的进程。当系统使用了所有内存,而新的或现有的进程试图使用更多的内存时就会出现错误。在你的日志文件查找像 Out of Memory 这样的字符串或类似 kill 这样的内核警告信息。这些信息表明系统故意杀死进程或应用程序,而不是允许进程崩溃。

例如:复制代码代码如下:[.] Out of memory: Kill process (firefox) score or sacrifice child[.] select (docker), adj 0, size , to kill你可以使用像 grep 这样的工具找到这些日志。这个例子是在 ubuntu 中:复制代码代码如下:$ grep “Out of memory” /var/log/syslog [.] Out of memory: Kill process (firefox) score or sacrifice child请记住,grep 也要使用内存,所以只是运行 grep 也可能导致内存不足的错误。这是另一个你应该中央化存储日志的原因!

定时任务错误日志cron 守护程序是一个调度器,可以在指定的日期和时间运行进程。如果进程运行失败或无法完成,那么 cron 的错误出现在你的日志文件中。具体取决于你的发行版,你可以在 /var/log/cron,/var/log/messages,和 /var/log/syslog 几个位置找到这个日志。cron 任务失败原因有很多。通常情况下,问题出在进程中而不是 cron 守护进程本身。

默认情况下,cron 任务的输出会通过 postfix 发送电子邮件。这是一个显示了该邮件已经发送的日志。不幸的是,你不能在这里看到邮件的内容。复制代码代码如下:Mar :: PSQ postfix/pickup[]: C3EDCB4: uid= from=<hoover>Mar :: PSQ postfix/cleanup[]: C3EDCB4: message-id=<.C3EDCB4@PSQ>Mar :: PSQ postfix/qmgr[]: C3EDCB4: from=<hoover@loggly.com>, size=, nrcpt=1 (queue active)Mar :: PSQ postfix/smtp[]: C3EDCB4: to=<hoover@loggly.com>, relay=gmail-smtp-in.l.google.com[...]:, delay=4.1, delays=0./0/2.2/1.7, dsn=2.0.0, status=sent ( 2.0.0 OK fsipdj.5 - gsmtp)你可以考虑将 cron 的标准输出记录到日志中,以帮助你定位问题。这是一个你怎样使用 logger 命令重定向 cron 标准输出到 syslog的例子。用你的脚本来代替 echo 命令,helloCron 可以设置为任何你想要的应用程序的名字。

*/5 * * * * echo ‘Hello World’ 2>&1 | /usr/bin/logger -t helloCron它创建的日志条目:复制代码代码如下:Apr :: ip---- CRON[]: (ubuntu) CMD (echo 'Hello World!' 2>&1 | /usr/bin/logger -t helloCron)Apr :: ip---- helloCron: Hello World! 每个 cron 任务将根据任务的具体类型以及如何输出数据来记录不同的日志。

希望在日志中有问题根源的线索,也可以根据需要添加额外的日志记录。

Linux系统中清理文件和清理环境变量的方法 使用Find命令来帮你找到那些需要清理的文件一个问题几乎困扰着所有的文件系统--包括Unix和其他的--那就是文件的不断积累。几乎没有人愿意花时间清

Linux系统中使用fdupes来查找并删除重复文件 对于大多数计算机用户而言,查找并替换重复的文件是一个常见的需求。查找并移除重复文件真是一项令人不胜其烦的工作,它耗时又耗力。但如果你

腾讯云 阿里云 挂载硬盘方法(数据盘) 腾讯云阿里云一般都是两个盘数据盘需要分区挂在一下先检查下数据盘在不在命令复制代码代码如下:fdisk-l对数据盘分区复制代码代码如下:fdisk/dev/xvdb格

标签: linux的日志文件

本文链接地址:https://www.jiuchutong.com/biancheng/350461.html 转载请保留说明!

上一篇:详解Linux系统下的/dev目录(请问linux)

下一篇:Linux系统中清理文件和清理环境变量的方法(linux系统清理磁盘空间)

  • 赠送客户的产品计入销售费用的二级科目
  • 金税盘发票打印不全
  • 已上传的红字发票怎么打印
  • 小额贷款公司的钱从哪里来
  • 房地产公司固定资产管理制度
  • 企业存款利息计入什么科目
  • 公司购入汽车分录
  • 企业代办业务有哪些
  • 收到货款确认收入但是后期开票了怎么做分录
  • 交易性金融资产的交易费用计入哪里
  • 工程款发票遗失怎么处理
  • 一般纳税人企业所得税政策最新2023
  • 个税抵扣换工作未及时修改
  • 劳务费开发票还要代扣代缴吗?
  • 国税申报纳税调整项目怎么填的?
  • 免征文化事业建设费条件的销售额标准
  • 如何看云空间的内容
  • 使用ps能完成的操作有哪些
  • 发票金额大于报销金额可以吗
  • windows 11预览版
  • 公司购消防器材会计分录
  • 如何关闭开始菜单快捷键
  • linux root没有权限
  • win10ie浏览器打开就崩溃
  • windows11怎么设置锁屏时间
  • 库房存货标准
  • php实验报告
  • 会计人员准则
  • vue封装组建
  • 全局平均池化(GAP)层
  • php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
  • repo命令详解
  • java泛型方法的使用
  • 土石方工程的税费缴纳方法
  • 基于法律行为的物权变动模式包括
  • 安装sql server 2008硬件要求
  • 小规模增值税纳税人优惠政策
  • 车子上公司户和个人户哪个更好
  • 建筑工程机械设备租赁属于什么行业
  • 用评估增值的资产增资
  • 企业法人名下的产业多了是好事吗
  • 无形资产分期付款会计分录?
  • 个人工资税收怎么计算年收入
  • 公司为小规模纳税人
  • 应交增值税进项税额月底怎么处理
  • 员工 成本
  • 防洪费的税率是多少
  • 以前年度损益调整借贷方向
  • 企业年初借的
  • mysql5.7压缩包
  • centos 安装
  • linux常用的几种压缩工具
  • centos6基础命令
  • mac文件怎么用
  • airplay macbook
  • 有没有win8系统
  • Linux rpm包中的64位、32位、i386、i586、Noarch名词解释
  • css教程实例
  • cocos2dx ccbreader内存泄露
  • cocos2djs
  • 每天看30分钟手机可以吗
  • JavaScript事件代理和委托详解
  • jquery easy ui
  • relative absolute无法冲破的等级问题解决第1/3页
  • oracle批处理语句
  • nodejs微信公众号开发
  • jquery自定义表单
  • javascript例题
  • public services翻译
  • javascript 对象的this指向
  • 亮屏功能
  • 中通快递广东省内收费标准
  • 税务局要求补上年房租开票
  • 福建省国税局领导班子介绍
  • 上海国家税务局官网发票查验平台
  • 法制建设包括哪三个方面
  • 代理业如何缴纳印花税
  • 承租房变更承租人申请怎么写
  • 南京市高新园区
  • 税控盘在哪领取
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设