作.
AIX Error log 的错误通知机制的功能完全符合了监控自动化的要求,我们可以通过添加一个 errnotify 类实例来实现对 AIX Error log 的监控,当定义的错误发生后,errnotify 会调用相应的命令来通知系统管理员.需要注意的是只有 root 用户才能添加 errnotify 类实例.
以下是添加 errnotify 类实例以及利用 errnotify 机制自动监控 AIX Error log 的具体步骤:
- 生成一个 ODM errnotify 类实例的 stanza 文件
生成一个 ODM errnotify 类实例的 stanza 文件需要指定若干选项,各主要选项的说明如下:
en_name:errnotify 类实例的名字,名字需要全局唯一.
en_persistenceflg:在系统重新引导时是否自动删除该实例,0 为在系统重新引导时自动删除该实例,1 为在系统重新引导时不删除该实例.
en_type:指定仅监控特定严重程度的 Error log 条目如 INFO、PEND 等.
en_class:指定仅监控特定类别的 Error log 条目如 H、S 等.
en_method:定义在监测到 AIX Error log 条目后所采取的动作,动作可以为任何的脚本程序或者操作系统命令.errnotify 自动设置了关于 Error log 条目信息的变量可供监控程序使用:
$1 error log 条目的序号
$2 error log 条目的 ID
$3 error log 条目的事件类别
$4 error log 条目的事件严重程度
$5 error log 条目的 Alert flags
$6 error log 条目的产生的组件名称
$7 error log 条目的产生的组件种类 (Type)
拥有帝国一切,皆有可能。欢迎访问phome.net
$8 error log 条目的产生的组件类 (Class)
$9 error log 条目的错误标签
关于 errnotify 类实例的各字段的具体说明,请参见 AIX 文档《 General Programming Concepts: Writing and Debugging Programs 》
例如我们可以生成一个 errnotify 类实例的 stanza 如下:
清单 2. errnotify 类实例 stanza
errnotify:
en_name = "errlog_notify"
en_persistenceflg = 1
en_method = "mail -s "Events occured in Error log: sequence = $1 error_id = $2
class = $3 type = $4 alert_flags = $5 res_name = $6 res_type = $7 res_class = $8
label = $9" root"
|
该 stanza 的内容可解释为当任何的 AIX Error log 事件发生时,都会给 root 用户发送一个邮件,邮件的内容中包含了 Error log 条目的具体信息.
- 将类实例添加到 ODM 数据库
AIX 命令 odmadd 可以将 ODM 类实例添加到 ODM 数据库中.
如 : odmadd /errnotifystanza
- 验证 ODM errnotify 类实例
可以用命令 odmget 来验证 errnotify 类实例已经被正确添加.
清单 3. 使用 odmget 命令查看 errnotify 类实例
[node01][/]> odmget -q en_name="errlog_notify" errnotify
errnotify:
en_pid = 0
en_name = "errlog_notify"
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 = "mail -s "Events occured in Error log: sequence = $1 error_id = $2
class = $3 type = $4 alert_flags = $5 res_name = $6 res_type = $7 res_class = $8
label = $9 contents = n`errpt -a -l $1n" root"
|
手动生成 Error log 条目测试监控是否工作
在确认 errnotify 类实例已经被正确添加后即可以通过 errologger 手动生成 Error log 条目测试监控是否工作.如:
拥有帝国一切,皆有可能。欢迎访问phome.net
清单 4. 使用 errlogger 命令生成测试日志
errlogger "this is a test for Error log monitoring"
|
|