日志系统领域这种基本的知识还是需要好好学习的

Posted twt企业IT社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日志系统领域这种基本的知识还是需要好好学习的相关的知识,希望对你有一定的参考价值。

【AIX高手挑战赛2014年赛-GPFS方向】日志系统是企业必备的系统,该系统收集了用户的各种行为日志或系统日志(数据量通常非常大,TB级甚至PB级)。通过这些日志,企业可以通过数据挖掘算法或者推荐算法,得出一些规律或者对用户进行产品推荐或者广告推荐,进而提高用户体验,此外,通过日志系统可获取一些统计信息,生成报表。 日志系统通常由以下4个模块组成:日志收集模块,存储系统,日志分析模块和分析结果展示模块。以下哪些软件可以作为存储系统与日志分析模块的大数据解决方案:

A. GPFS-FPO +Platform Symphony

B. SPSS + Cognos

C. Data Stage

D. InforSphere Streams


哪个是正确答案?

更多GPFS方向技能提升/知识学习,欢迎访问社区,加入AIX高手挑战赛2014年赛之旅,挑战高手,成为高手。


下面分享《理解和使用AIX的日志系统》资料一篇


通常我们在进行服务器的健康性检查,和在出现问题的时候都会去考虑查看系统的日志。

  我在学习AIX的过程中发现,AIX的日志跟Solaris或Linux的日志存储和查看的方式有着相当大的区别,为了使自己对AIX的日志认识的更系统就总结了一下。

  一部分是参考的 于宁斌《AIX 5L系统管理技术》

  1.一旦系统的某个功能模块检测到一个错误或定义的需要记录日志的事件,则记录到/dev/error设备,把它保存在NVRAM中,这样可以保证即使在系统崩溃的情况下也不会丢失最新的错误日志。

  2.同时,错误日志进程errdemon从/dev/error文件中读取错误日志,然后根据错误模版库(/var/adm/ras /errtmpit)和错误消息库(/usr/lib/nls/msg/$LANGcodepoint.cat) 对其进行处理后写入系统的错误日志/var/adm/ras/errlog中。

  错误日志进程由/usr/lib/errdemon命令启动,/usr/lib/errstop停止,默认是启动的。

  以上并不是重点,了解过程而已

  errdemon进程:

  从/dev/error逻辑设备文件中读取纪录,然后在系统错误日志中创建错误日志纪录,显然这才是重点。

  Errdemon的配置:

  /usr/lib/errdemon 命令可以启动errdemon进程,同样我们也可以通过使用参数来修改我们的errdemon,显然如果我们不是太了解还是系统初始的配置更适合我们!

  例如:

  /usr/lib/errdemon –s 20000 设定我们的日志文件大小为20000bytes

  最可能用到的可能就是-l参数了

  /usr/lib/errdemon –l

  # /usr/lib/errdemon -l

  Error Log Attributes

  --------------------------------------------

  Log File        /var/adm/ras/errlog

  Log Size        1048576 bytes

  Memory Buffer Size   16384 bytes

  Duplicate Removal    true

  Duplicate Interval   100 milliseconds

  Duplicate Error Maximum 1000

  上面显示我的错误日志文件是/var/adm/ras/errlog,这也是系统默认的错误日志的存放位置。

  具体其他的参数可以参看man 手册。

  查看错误日志:errpt命令

  用more或者其他文本的查看命令来打开errlog文件我们看到的只是一对乱码,为了能够查看错误日志文件需要使用AIX的errpt命令。

  使用errpt命令查看日志,可能根据使用的参数来确定输出什么样的日志,甚至排序的方式,这是使用纯文本的日志不能做到的,或者说不能轻易做到的。

  下面我们来看errpt命令的使用。

  # errpt

  IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION

  9DBCFDEE  0109034400 T O errdemon    ERROR LOGGING TURNED ON

  192AC071  0109034300 T O errdemon    ERROR LOGGING TURNED OFF

  C092AFE4  0109033500 I O ctcasd     ctcasd Daemon Started

  A6DF45AA  0109033500 I O RMCdaemon   The daemon is started.

  9DBCFDEE  0109033400 T O errdemon    ERROR LOGGING TURNED ON

  192AC071  0106130900 T O errdemon    ERROR LOGGING TURNED OFF

  369D049B  0106082400 I O SYSPFS     UNABLE TO ALLOCATE SPACE IN FILE SYSTE

  这里的输出分为六列依次为:

  1.错误标示符IDENTIFIER:并不唯一,由它来确定使用的错误模板,显然同一种错误的IDENTIFIER是相同的。

  2.时间戳TIMESTAMP:错误发生的时间,MMDDhhmmYY,依次表示月日时分年。

   3.类型TYPE:错误的类型,或者说严重的程度。

  分为6个:

  PEND 设备或功能组件可能丢失 简写P

  PERF 性能严重下降 P

  PERM 硬件设备或软件模块损坏,确诊了的 P

  TEMP 临时性错误,经过重试后已经恢复正常 T

  INFO 一般消息,不是错误 I

  UNKN 不能确定错误的严重性 U

  4.种类CLASS c:指出错误源

  H 硬件或介质故障

  S 软件故障

  O 人为错误

  U 不能确定

  5. 资源名RESOURCE_NAME

  最初检测到错误的资源名软件或者硬件,并不代表这个资源有问题,而只是最先在它发现的。

  6.描述

  显示详细的日志信息

  # errpt -a|more

  Standard input

   ---------------------------------------------------------------------------

  Standard input

  LABEL:     ERRLOG_ON

  IDENTIFIER:   9DBCFDEE

  Date/Time:    Sun Jan 9 03:44:04 BEIS

  Sequence Number: 309

  Machine Id:   004250B94C00

  Node Id:     ibm-5L

  Class:      O

  Type:      TEMP

  Resource Name:  errdemon

  Description

  ERROR LOGGING TURNED ON

  Probable Causes

  ERRDEMON STARTED AUTOMATICALLY

  User Causes

  /USR/LIB/ERRDEMON COMMAND

  Recommended Actions

  NONE

  其它

  指定日志文件 –I可以用来查看一个非errdemon指定位置的日志文件,例如某个日志文件备份。

  -t 参数,只显示-t参数指定的错误类型TYPE。

  -s 显示指定时间之后的日志文件.

  -d 指定种类CLASS

  详细的参数只能看man 手册了

  # errpt -a -j 74533D1A

  # errpt -s 0108100100

  IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION

  9DBCFDEE  0109034400 T O errdemon    ERROR LOGGING TURNED ON

  192AC071  0109034300 T O errdemon    ERROR LOGGING TURNED OFF

  C092AFE4  0109033500 I O ctcasd     ctcasd Daemon Started

  A6DF45AA  0109033500 I O RMCdaemon   The daemon is started.

  9DBCFDEE  0109033400 T O errdemon    ERROR LOGGING TURNED ON

  日志的清理

  errclear命令可以用来清理错误日志

  并且默认情况下cron会每天清理错误日志

  # crontab -l

  0 11 * * * /usr/bin/errclear -d S,O 30

  0 12 * * * /usr/bin/errclear -d H 90

  0 15 * * * /usr/lib/ras/dumpcheck >;/dev/null 2>;&1

  显然,找上面的例子,S,O 类的错误会保留30天,而H的错误会保留90天

  errclear 0  删除多有记录

  errclear 7 删除7天以前的记录

  smit errclear

  syslogd

  Unix普遍用到的日志系统,配置文件/etc/syslog.conf

  没有什么多说的,比较普遍,定义的话是修改syslog.conf,保存的日志为文本格式

  syslog.conf配置文件格式

  信息类别.错误等级 记录的位置

  其中,各项的含义

  信息类别

  auth    used by authorization systems (login) 

  cron    used for the cron and at systems

  daemon   system/netWord daemon

  kern    produced by kernel messages 

  lpr     printing system 

  mail    mail system 

  mark    internally used for time stamps 

  news    reserved for the news system 

  user    default facility, used for any program 

  uucp    reserved for the uucp system 

  错误等级

  debug    normally used for debugging 

  info    informational messages 

  notice conditions that may require attention 

  Warning any warnings 

  err     any errors 

  crit     critical conditions like hardware problems 

  Alert any condition that demand immediate attention

  emerg    any emergency condition

  none     Do not send messages from the indicated f

  acility to the selected file. 

  记录的位置

  可以是本地的文件(包括设备文件如/dev/console)或远程syslog日志服务器。

  假如我要记录cron的所有错误信息,则可以在/etc/syslog.conf加入下面一行

  cron.err   /var/cronerr.log

  定义记录cron的err信息到/var/cronerr.log文件

  


以上是关于日志系统领域这种基本的知识还是需要好好学习的的主要内容,如果未能解决你的问题,请参考以下文章

学习Linux课程第八天

读书笔记-《好好学习》

C++日志系统如何设计

Java Web学习日志(HTTP基础知识)

技术干货日志系统的 AIOps 应用,及日志易智能日志中心运营之道

荐读!微博大规模分布式 AIOps 系统探索与实践