AIX提供了error logging集中式错误日志设施,可以记录任何软件、硬件方面的故障信息或操作信息、提示信息等等,以便于故障检测、错误纠正,提高维护效率。是AIX上不可或缺的重要问题诊断工具。
AIX error logging设备驱动使用errsave内核服务,将错误记录添加到/dev/error特殊设备文件中。而errdemon守护进程将获取错误记录并创建一个错误日志条目。通过SMIT或errpt命令访问错误日志时,错误记录将根据错误模板存储库中的模板进行格式化,并以摘要或详细报告的形式显示错误信息。
由于目前许多客户需要实现跨平台监控,因此需要一种将errpt日志自动转储的方法。本文介绍一种自动将所有errpt日志转储到syslog日志的方法,以便于实现跨平台监控以及错误日志传输。
编辑/etc/syslog.conf文件,增加如下项 (循环使用8个文件,每个文1MB,采用压缩方式存储):
#vi /etc/syslog.conf:
daemon.notice /var/log/syslog.notice rotate size 1m files 8 compress
生成syslog.notice文件,并更新syslogd
#touch /var/log/syslog.notice
#refresh -s syslogd
在系统中注册errnotify方法,当errlog有日志生成时,会自动触发errnotify方法运行指定动作。
编写errnotify方法:
]#cat errnotify.add
errnotify:
en_name = "syslog1"
en_persistenceflg = 1
en_method = "errpt -l $1 | tail -1 | logger -t errpt -p daemon.notice"
注册errnotify方法:
#odmadd errnotify.add
检查确认errnotify方法已生效(注意系统中默认有自带的errnotify方法,请注意避免误操作,勿随意修改或删除):
#odmget -q "en_name=syslog1" errnotify
errnotify:
en_pid = 0
en_name = "syslog1"
en_persistenceflg = 1
en_label = ""
en_crcid = 0
en_class = ""
en_type = ""
en_alertflg = ""
en_resource = ""
en_rtype = ""
en_rclass = ""
en_symptom = ""
en_err64 = ""
en_dup = ""
en_method = "errpt -l $1 | tail -1 | logger -t errpt -p daemon.notice"
说明,如果需要odmdelete回退上述修改时,请使用-q指定条件,避免误删除系统自带的errnotify方法:
#odmdelete -o errnotify -q "en_name=syslog1"
生成一条errlog测试操作记录,然后查看syslog日志:
#errlogger test
#cat /var/log/syslog.notice
Apr 28 14:03:04 racnode1 daemon:notice errpt: AA8AB241 0428140322 T O OPERATOR OPERATOR NOTIFICATION
运行sleep 3600,然后按Ctrl 键加上\\键触发core dump:
#sleep 3600
Quit(coredump)
[root@racnode1:/var/log]#cat /var/log/syslog.notice
Apr 28 14:03:04 racnode1 daemon:notice errpt: AA8AB241 0428140322 T O OPERATOR OPERATOR NOTIFICATION
Apr 28 14:05:31 racnode1 daemon:notice errpt: A924A5FC 0428140522 P S SYSPROC SOFTWARE PROGRAM ABNORMALLY TERMINATED
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论