Linux认识和分析日志文件


前言

唉,这周本来想彻底研究一下树的数据结构,结果搭建了基于nginx+php-fpm的web server运行模式,回到宿舍就太累没心思再思考数据结构和算法,就这样吧,这周就只搞运维了,虽然之间也写了点php代码学了点设计模式

syslogd:记录日志文件的服务

日志内容的一般格式

一般来说,系统产生的信息经过syslog而记录下来的数据中,每条信息均会记录下面几个重要数据:

(1)事件发生的日期与时间

(2)发生此事件的主机名

(3)启动此时间的服务名称

(4)该信息的实际数据内容

举个例子如下:

解释一下其中一条数据:在2012年11月15日的10:13:34秒,错误信息是php-fpm绑定的ip地址被使用了,主机名和服务名称是我自己设置没加上

syslog的配置文件

Ubuntu 10.04之后,syslog的配置文件在

/etc/rsyslog.conf 

配置文件的内容可以简单分为三部分说明:

服务名称

auth : 主要与认证有关的机制 
cron : 就是例行性工作调度crontab等生成信息日志的地方 
daemon : 就是各个daemon有关的信息 
kern : 就是内核(kernel)产生信息的地方 
lpr : 打印相关信息 
mail : 只要与邮件收发有关的信息记录在此 
news :  与新闻组服务器有关的东西 

信息等级

info : 一些基本的信息说明 
notice : 除了info还需要注意的一些信息内容 
warning : 警示的信息,可能有问题,但是不至于影响到某个daemon的运行 
error : 一些重大的错误信息 
crit : 比error还要严重的错误信息 
alert : 警告,已经很有问题的等级 
emerg : “疼痛”等级,意指系统已经几乎要死机状态! 

链接符号[.|.=|.!]

. : 代表比后面还要高的等级(含该等级)都被记录下来的意思。例如:news.err 代表只要是news的信息,而且该信息的等级大于等于error级别就会被记录下来的意思 
.= : 代表所需要的等级==后面链接的等级,其它的不要 
.! : 代表不等于,即除了该等级之外的等级都记录下来 

说下题外话:

一个程序员一般会尽全力消除程序中所有的notice,因此到现在我也是仅仅见过error级别的,error之上的我觉得可能需要更大并发量的时候才能遇到
  • 1
  • 2
  • 3
  • 下一页

相关内容