处理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. ssl加密

    握手前使用非对称加密, 握手后使用对称加密 前期握手就是用来协商对称加密算法的

  2. python3 no module named PIL

    sudo apt-get install python3-imaging

  3. Unity MonoBehaviour.Invoke 调用

    使用 Invoke() 方法需要注意 3点: 1 :它应该在 脚本的生命周期里的(Start.Update.OnGUI.FixedUpdate.LateUpdate)中被调用: 2:Invoke(); ...

  4. Java面向对象_包装类访问修饰符

    在java中有一个设计的原则"一切皆对象",java中的基本数据类型就完全不符合这种设计思想,因为八种基本数据类型并不是引用数据类型,所以java中为了解决这样的问题,jdk1.5 ...

  5. linux 编程笔记1 crusher for linux

    1.反显示字符crusher #include <stdio.h> int main (int argc, char *argv[]) { printf("\033[7m mor ...

  6. Storm概念学习系列之Storm与Hadoop的角色和组件比较

    不多说,直接上干货! Storm与Hadoop的角色和组件比较 Storm 集群和 Hadoop 集群表面上看很类似.但是 Hadoop 上运行的是 MapReduce 作业,而在 Storm 上运行 ...

  7. nginx中文手册内容说明

    1.什么是nginx? Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接, ...

  8. MyEclipse8.5配置struts等框架

    开发环境:MyEclipse8.5+Tomcat6.5+MySql5.5配置环境:Struts2+Spring2+Hibernate3.1 1.首先创建Java-Web Project工程,选择J2E ...

  9. JDK工具

    在之前的教程中,我曾介绍过 这些工具.现在,我向大家介绍其中最重要的5个工具. 1.javap javap是一个Java类文件反汇编程序,可以查看Java编译器生成的字节码,是分析代码的一个好工具.让 ...

  10. android读写SD卡封装的类

    参考了网上的一些资源代码,FileUtils.java: package com.example.test; import java.io.BufferedInputStream; import ja ...