处理Linux系统出现的各种故障时,故障的症状是最先发现的,而导致这以故障的原因才是最终排除故障的关键。熟悉Linux系统的日志管理,了解常见故障的分析与解决办法,将有助于管理员快速定位故障点,“对症下药”及时解决各种系统问题。

一、主要日志文件包括以下三种类型:
a.内核及系统日志:这种日志数据由系统服务syslog统一管理,根据其主配置文件"/etc/syslog.conf"中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分程序会把自己的日志文件交由syslog管理,因而这些程序使用的日志记录也具有相似的格式。
b.用户日志:这种日志数据用于记录Linux系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
c.程序日志:有些应用程序运会选择自己来独立管理一份日志文件(而不是交给syslog服务管理),用于记录本程序运行过程中的各种事件信息。由于这些程序只负责管理自己的日志文件,因此不同的程序所使用的日志记录格式可能会存在极大差异。

#列表查看"/var/log"目录中的各种日志文件及子目录。

对于Linux系统中的一些常见日志文件,有必要熟悉其相应的用途,这样才能在需要的时候更快地找到问题所在,及时解决各种故障。如:
1. >/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该文件获得相关的事件记录信息。 
2. >/var/log/cron:记录crond计划任务产生的事件消息。 
3. >/varlog/dmesg:记录Linux系统在引导过程中的各种事件信息。 
4. >/var/log/maillog:记录进入或发出系统的电子邮件活动。 
5. >/var/log/lastlog:最近几次成功登录事件和最后一次不成功登录事件。 
6. >/var/log/rpmpkgs:记录系统中安装各rpm包列表信息。 
7. >/var/log/secure:记录用户登录认证过程中的事件信息。 
8. >/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。 
9. >/var/log/utmp:记录当前登录的每个用户的详细信息

二、日志文件分析
熟悉了系统中的主要日志,我们就针对日志文件的分析方法做了解。分析日志文件的目地在于通过浏览日志查找关键信息,对系统服务进行调试,判断发生故障的原因等。这里主要说三类日志文件的基本格式和分析方法。
对于大多数文本格式的日志格式(如内核及系统日志、大多数的程序日志),只要使用tail、more、less、cat等文本处理工具就可以查看日志内容。而对于一些二进制格式的日志文件(eg:用户日志),则需要使用相应的查询命令。
1.内核及系统日志:
内核及系统日志功能主要由默认安装的syslogd-1.4.1-39.2软件包提供,该软件包安装了klogd、syslogd两个程序,并通过syslog服务进行控制,分别用于记录系统内核的消息和各种应用程序的消息。syslog服务所使用的配置文件为"/etc/syslog.conf"。
通常情况下,内核及大多数系统消息都被记录到公共日志文件"/var/log/messages"中,而其他一些程序消息被记录到不同的文件中,日志消息还能够记录到特定的存储设备中,或者直接向用户发送。
###查看日志配置文件"/etc/syslog.conf'中的内容

2.用户日志
在wtmp、utmp、lastlog等日志文件中,保存了系统用户登录,退出等相关事件的事件消息。但是这些文件都是二进制的数据文件,不能直接使用tail、less等文本查看工具进程浏览,需要使用who、w、users、last和ac等用户查询命令来获取日志信息。
这里就不再演示。
3.程序日志
在Linux系统中,还有相当一部分应用程序并没有使用syslog服务来管理日志。而是由程序自己维护日志记录。例如,httpd网站服务程序使用两个日志文件access_log和error_log,一般存放在"/var/log/httpd“目录中,分别记录客户访问事件,错误事件,而FTP服务程序可以将与文件上传,下载事件相关的消息记录在xferlog文件中。由于不同应用程序的日志记录格式差别较大,并没有严格使用统一的格式,这里不详解!
特例:服务器日志分布管理策略:
鉴于日志数据资料的重要性,对于系统运行过程中产生的各种日志文件,必须采用有针对性的管理策略,以确保日志数据的准确性、安全性和真实性。一般来说,可以从以下几个方面进行考虑。
>:日志备份和归档:日志文件也是重要的数据资料,同样需要进行备份和归档。
>:延长日志保存期限:在存储空间富裕的情况下,日志数据保留的时间应尽可能长。
>:控制日志访问权限:日志数据中可能会包含各类敏感信息,如:账号、口令等。所以需要严格控制其访问权限。
>:集中管理日志:使用集中的日志服务器管理各服务器发送的日志记录等。其好处在于方便对日志的收集、整理和分析,杜绝意外的丢失、恶意篡改或删除等。
eg:服务器A(IP地址为173.17.17.3/24),用于集中保存日志记录。
将客户机B(IP地址为173.17.17.11/24)中crond服务产生的日志记录,统一保存到服务器A中的“/var/log/cron”文件中。
● 设置日志服务器A
在日志服务器A中,需要编辑syslog日志服务的启动参数配置文件"/etc/sysconfig/syslog",将SYSLOGD_OPTIONS变量的内容改为“-r -x -m 0”即可。其中"-r"选项表示允许接受其他主机发送过来的日志记录,"-x"选项表示不进程DNS域名解析,"-m"表示记录日志的时间标记间隔(设为0禁用该功能),这些信息可以通过查看syslogd程序的man手册页获得
*:修改日志服务器A的“/etc/sysconfig/syslog”文件,添加集中管理配置参数“-r”,并重启syslog服务。
1. vi /etc/sysconfig/syslog //修改SYSLOGD_OPTIONS行SYSLOGD_OPTIONS="-r -x -m 0" 
2. service syslog restart

● 设置客户机B
在客户机B中,需要修改"/etc/syslog.conf"配置文件,设置将cron计划任务的日志消息写入到服务器A的"/var/log/cron"文件中。指定写入日志的主机地址时,采用“@173.17.17.3”的格式即可。
*:修改客户机B的"/etc/syslog.conf"文件,找到cron日志的配置行,将日志发送位置改为“@173.17.17.3”,并重启syslog服务。
1. vi /etc/syslog.conf 
2. cron.* @173.17.17.3 
3. service syslog restart

● 验证日志集中管理功能
在客户机B中执行"crontab -e"命令,随便编写一条计划任务信息并保存退出,然后查看本机中的"/var/log/cron"日志文件,将发现没有任何新的记录。

Linux系统故障分析与排查--日志分析的更多相关文章

  1. linux系统故障分析与排查

    在处理Linux系统出现的各种故障时,故障的症状是最先发现的,而导致这以故障的原因才是最终排除故障的关键.熟悉Linux系统的日志管理,了解常见故障的分析与解决办法,将有助于管理员快速定位故障点.“对 ...

  2. 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全

    日志分类: 1. 连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这 两个文件无法直接cat查看,并且该文件由系统自动更新,可以通过如下: ...

  3. Linux系统实战项目——sudo日志审计

    Linux系统实战项目——sudo日志审计   由于企业内部权限管理启用了sudo权限管理,但是还是有一定的风险因素,毕竟运维.开发等各个人员技术水平.操作习惯都不相同,也会因一时失误造成误操作,从而 ...

  4. Linux系统下分割tomcat日志

    在Linux系统下,tomcat日志catalina.out并不会像window系统下,按日期进行重写备份,因此在Linux系统下会造成日志文件过大的情况,本文介绍采用 cronolog工具进行如在w ...

  5. Django项目:堡垒机(Linux服务器主机管理系统)--03--03堡垒机在Linux系统里记录会话日志02/02

    #main.py #本文件写所有的连接交互动作程序 # ————————————————03堡垒机在Linux系统里记录会话日志 开始———————————————— from Fortress im ...

  6. Linux 系统中如何查看日志 (常用命令) tail -f

    Linux 系统中如何查看日志 (常用命令)  tail -f 日志文件 日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日 ...

  7. LInux系统木马植入排查分析 及 应用漏洞修复配置(隐藏bannner版本等)

    在日常繁琐的运维工作中,对linux服务器进行安全检查是一个非常重要的环节.今天,分享一下如何检查linux系统是否遭受了入侵? 一.是否入侵检查 1)检查系统日志 检查系统错误登陆日志,统计IP重试 ...

  8. 【夯实Mysql基础】MySQL在Linux系统下配置文件及日志详解

    本文地址 分享提纲: 1. 概述 2. 详解配置文件 3. 详解日志 1.概述 MySQL配置文件在Windows下叫my.ini,在MySQL的安装根目录下:在Linux下叫my.cnf,该文件位于 ...

  9. linux 系统 UDP 丢包问题分析思路

    转自:http://cizixs.com/2018/01/13/linux-udp-packet-drop-debug?hmsr=toutiao.io&utm_medium=toutiao.i ...

随机推荐

  1. 08.Spring Bean 解析 - BeanDefinitionDocumentReader

    基本概念 BeanDefinitionDocumentReader ,该类的作用有两个,完成 BeanDefinition 的解析和注册 . 解析:其实是解析 Ddocument 的内容并将其添加到  ...

  2. LeetCode 137 Single Number II 数组中除了一个数外,其他的数都出现了三次,找出这个只出现一次的数

    Given an array of integers, every element appears three times except for one, which appears exactly ...

  3. jstl core and jstl fn

    jstl标签使用时必须加taglib:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core&quo ...

  4. java常见数据结构举例

    1. ArrayList(参考) import java.util.*; public class Test{ public static void main(String [] args){ Arr ...

  5. Visual Studio中的引用项目和直接引用DLL文件

    在VS中引用类库时有多种方法,其中用的最多的就是在引用时选择项目选项卡引用本解决方案下的类库项目和选择浏览选项卡直接引用类库DLL文件,实际上这两种引用方式略有不同,今天就为大家总结下. C#本地项目 ...

  6. MVC中 Remote的用法

    一.web.config加入  <appSettings>    <add key="ClientValidationEnabled" value="t ...

  7. IDEA/AS快捷键收集&习惯

    1.Alt+Enter单包引入 2.Ctrl+O (在类中)快速重写父类方法 3.Ctrl+F12显示类结构 4.代码提示 -Ctrl+Alt+空格 代码提示 -Ctrl+Shift+回车 在末尾自动 ...

  8. 分享几道经典的javascript面试题

    这几道题目还是有一点意思的,大家可以研究一番,对自己的技能提升绝对有帮助. 1.调用过程中输出的内容是什么 function fun(n, o) { console.log(o); return { ...

  9. Vue通过状态为页面切换添加loading、为ajax加载添加loading

    以下方法需要引入vuex,另使用了vux的UI框架,ajax添加loading还引入了axios. 一.为页面切换添加loading. loading.js: import Vue from 'vue ...

  10. WebAPI项目添加定时服务

    开发平台: VS2019 背景: 在开发小程序的API服务的时候,由于access_token的有效期为7200秒,也就是2小时,这就需要后端定时的去更新这个access_token,便于调用小程序的 ...