深入讨论Linux系统日志管理

转载 2004年07月26日 11:56:00

深入讨论Linux系统日志管理

来源:赛迪网范志超

为了保证Linux系统正常运行、准确解决遇到的各种各样的系统问题,认真地读取日志文件是系统管理员的一项非常重要的任务。本文将简单解释什么是日志文件、在哪里可以找到日志文件以及如何处理它们。

    Linux内核由很多子系统组成,包括网络、文件访问、内存管理等。子系统需要给用户传送一些消息,这些消息内容包括消息的来源及其重要性等。所有的子系统都要把消息送到一个可以维护的公用消息区,于是,就有了一个叫Syslog的程序。

    Syslog程序有什么用

    系统核心和许多系统程序会产生错误信息、警告信息和其他信息。这些信息很重要的,所以它们应该被写到一个文件。执行这个过程的程序就是Syslog,它能设置成根据输出信息的程序或重要程度将信息排序到不同的文件。例如,由于核心信息更重要且需要有规律地阅读以确定问题出在哪里,所以要把核心信息与其他信息分开来,单独定向到一个分离的文件中。

    日志文件通常存放在“/var/log”目录下。为了查看日志文件的内容必须要有“Root”权限。日志文件中的信息很重要,只能让超级用户有访问这些文件的权限。

    查看日志文件

    日志文件其实是纯文本的文件,每一行就是一个消息。只要是在Linux下能够处理纯文本的工具都能用来查看日志文件。日志文件总是很大的,因为从你第一次启动Linux开始,消息就都累积在日志文件中。看日志文件的一个比较好的方法是用像More或Less那样的分页显示程序,或者用Grep查找特定的消息。我们先用Less显示“/var/log/messages”,可以看到从日志文件中取出来的一些消息。每一行表示一个消息,而且都由四个域的固定格式组成:

    *时间标签(Timestamp),表示消息发出的日期和时间。

    *主机名(Hostname),表示生成消息的计算机的名字。如果只有一台计算机,主机名就可能没有必要了。但是,如果在网络环境中使用Syslog,那么就可能要把不同主机的消息发送到一台服务器上集中处理。在我们的例子中主机名为lcbj。

    *生成消息的子系统的名字。可以是“Kernel”,表示消息来自内核或者是进程的名字,表示发出消息的程序的名字。在方括号里的是进程的PID。

    *消息(Message),即消息的内容。

    

020829news003.jpg

    图1中,第一行是Sendmail发出的消息,Sendmail守护进程(Daemon)负责管理收到和发出的消息。这一行是守护进程正常启动的消息。

    第二行是来自Passwd的消息,提醒用户“Progs”的口令被“Root”改变过。以后的其他消息,是向用户报告系统的运行情况。

    实际上在“/var/log/message”文件中的消息都不是特别重要或紧急的。

    有一个很有趣的消息是“MARK”消息,在默认情况下每隔20分钟就会生成一次表示系统还在正常运行的消息。“MARK”消息很像经常用来确认远程主机是否还在运行的“心跳信号”(Heartbeat)。“MARK”消息另外的一个用途是用于事后分析,能够帮助系统管理员确定系统死机发生的时间。

    配置日志

    让我们仔细地研究一下Syslog守护进程的运行情况吧。这个程序是在后台运行,从系统中获取新的消息,并把消息发送到合适的地方。每一个子系统发出日志消息的时候都会给消息指定一个类型。一个消息可以分成两个部分:“设备”和“优先级”。“设备” 表示发出消息的子系统,“优先级”表示消息的重要性,其范围从0(最重要)到7(最不重要)。请见图2。

    

020829news004.jpg

    Syslog的基本配置是很简单的,而进行一些高级特性的配置需要一些经验。我们现在看看基本的配置,也就是根据“设备”和“优先级”确定哪些文件应该收到哪些消息。可以通过编辑文件(通常是“/etc/syslog.conf”)对任务进行定制。以“#”号开头的行都是注释行。其他的一些行也很容易理解,它们是由两个域组成,分别是“选择器(Selector)”和“动作(Action)”。“选择器”用相应的“设备”和“优先级”(都可以用“*”通配符表示“任何一个”)来表示消息的类型。“动作”表示一旦有一个新的消息和“选择器”相匹配的时候要采取什么行动。

    

020829news005.jpg

    图3中,你会发现“优先级”等于“Info”和“Notice”的消息,无论它们的“设备”是什么,都发到“/usr/adm/messages”文件,因为在“选择器”中使用了通配符。同样“优先级”为“Debug”和“Err”的消息都分别送到“/usr/adm/debug”和“/usr/adm/syslog”文件。

    编辑完“/etc/syslog”文件之后,还必须运行“Killall -HUP Syslogd”,这样所做的改变才会生效。这个命令发送“HUP”信号给Syslog守护进程,通知守护进程重新读取配置文件。

    日志文件对于管理员来说很重要,通过对日志文件的管理,可以更好地维护系统,保障各种应用的正常进行。

集中化Linux日志管理系统

笔者 工作中 负责 着 60 多 台Linux服务器的运维管理工作, 初期 每台机器日志的巡查,是一件相当耗时耗力的工作。后来经过 摸索 ,整理出一个非常适合各种规模的服务器的日志集中化管理,巡查流程...
  • a727756480
  • a727756480
  • 2014年03月25日 14:30
  • 6869

Linux系统中的日志管理

日志对于安全来说,非常重要,它记录了系统每天发生的各种各样的事情,你可以通过它来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。 日志主要的功能有:审计和监测。它还可以实时的监测系统状态,监测和...
  • qq_25663723
  • qq_25663723
  • 2016年11月04日 17:15
  • 3752

深入理解Linux中内存管理

原文链接:http://kb.cn把blogs.我com/删page/1掉80830/
  • yushiyaogg
  • yushiyaogg
  • 2014年06月16日 15:25
  • 1161

系统日志管理

1、日志的查看 日志可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。 收集你想要的数据,分析...
  • u012582664
  • u012582664
  • 2017年02月22日 10:19
  • 925

学生信息管理系统问题总结(一)

学生管理系统已经敲完有两天了,
  • u013046597
  • u013046597
  • 2014年07月29日 10:13
  • 1132

日志管理方法及系统

摘要 本发明涉及应用系统日志管理技术领域,提供了一种日志管理方法和系统,所述方法包括如下步骤:S1:初始化系统业务功能列表和业务功能方法列表;S2:将业务操作中的具体操作信息与系统日志表和历史数...
  • baidu_24932821
  • baidu_24932821
  • 2016年01月16日 11:44
  • 9961

深入理解Linux内存管理-之-目录导航

日期 内核版本 架构 作者 GitHub CSDN 2016-08-31 Linux-4.7 X86 & arm gatieme LinuxDeviceDrive...
  • gatieme
  • gatieme
  • 2016年08月31日 14:45
  • 3875

Spring AOP实现后台管理系统日志管理

AOP+注解 实现后台管理系统日志管理
  • Myron_007
  • Myron_007
  • 2017年02月08日 15:31
  • 5575

linux文件与目录管理问题与回答(整理篇)

linux文件与目录管理问题与回答(整理篇)
  • seacean2000
  • seacean2000
  • 2014年09月14日 13:10
  • 1470

某大型银行深化系统之十九:日志规范

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229         在应用程序中添加程序日志记录可以跟踪代码运行时轨迹,作为日...
  • leverage_1229
  • leverage_1229
  • 2013年05月28日 13:00
  • 3264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入讨论Linux系统日志管理
举报原因:
原因补充:

(最多只允许输入30个字)