上一主题: 日志文件的格式下一主题: SEOS_AUDITLOGIN


lograpi_UnregisterTargetType 函数

lograpi_UnregisterTargetType 函数取消注册之前使用日志路由后台进程注册的目标类型。

如果函数成功,则返回 0。 如果函数失败,则返回不带符号的整数错误代码,并根据以下值表向全局变量 errno 分配值:

返回值

ERRNO

含义

LOGRAPI_E_NULLPARM

EINVAL

代码参数为 NULL。

LOGRAPI_E_NODEST

ENOENT

没有此目标类型。

重要说明! 取消注册目标类型后,无法在当前会话期间再次进行注册。 但是,所有后续记录会好像成功发送给目标一样进行标记。 请勿取消注册目标类型,除非您确实不会再使用该目标类型。

int lograpi_UnregisterTargetType (const char *name);
name

要取消注册的目标类型的名称。

lograpi_MakeStringMessage 函数

lograpi_MakeStringMessage 函数将审核日志记录转换为 seaudit 和 seauditx 实用程序使用的标准格式的单行文本字符串。‑

如果函数成功,则返回指向审核日志数据字符串的字符指针。 该字符串保留在静态内存区域中,在对函数进行后续调用时会将其覆盖。

如果函数失败,则返回 NULL。 有关详细信息,请检查 errno 的返回值。 将 NULL 指针作为输入参数传递时生成错误。 可能的错误为:

返回值

含义

EINVA

指针参数上的数据为 NULL。

char * lograpi_MakeStringMessage (LOGRECORD *plr, void *data);
plr

指向审核日志记录结构的指针,传递给 LogrApiSendFunc 函数。

data

指向未压缩审核日志记录信息的指针,传递给 LogrApiSendFunc 函数。

更多信息:

lograpi_InterpretRecord 函数

LogrApiSenseFunc 函数

LogrApiSenseFunc 是一种函数指针类型,指定在 selogrd 后台进程初始化并重新启动时,将调用的用户定义的 sense 函数。‑ 该 sense 函数确定(感应)配置文件路由条目是否有效。 sense 函数在每个配置文件行中测试目标字段条目的有效性。 例如,如果目标名称为用户 jsmith,则 LogrApiSenseFunc 应当检查实际上是否存在该名称用户。

如果函数成功,则应返回 0。 如果失败,则返回错误代码。

typedef int (*LogrApiSenseFunc) (SEOS_ROUTENTRY *pre);
pre

用于检查有效性的配置文件条目。

LogrApiSendFunc 函数

LogrApiSendFunc 是一种函数指针类型,指定用户定义的 send 函数。‑ 如果找到匹配用户选择条件的审核日志记录,send 函数会将选定审核日志记录传输(发送)给用户指定的目标。‑

如果发送操作成功,函数应返回 0。 从不将成功发送的审核日志记录再次提交给 LogrApiSendFunc。

如果发送操作失败,CA ControlMinder 会向 syslog 文件输入错误通知,并返回非零整数作为错误标志。 可以重新提交同一审核日志记录,次数不限。

typedef int (*LogrApiSendFunc) (LOGRECORD *plr, SEOS_ROUTENTRY  *pre, \
                                           int  notify,  void *data);
plr

审核日志说明文件。

pre

有关审核日志记录的审核目标的信息。

notify

指示该审核日志记录是否是通知记录的标志,如下所示:

1 (TRUE)

审核日志记录是通知记录。

0 (FALSE)

审核日志记录不是通知记录。

data

指向审核日志记录的指针。

更多信息:

LogrApiFreeFunc 函数

LogrApiFreeFunc 函数

LogrApiFreeFunc 是一种函数指针类型,指定用户定义的 free 函数。‑ selogrd 关闭或重新启动时,它会调用 free 函数,释放分配给之前注册的函数的内存。 SEOS_ROUTENTRY 结构的 SendData 成员用作目标已分配内存的占位符,如 FILE * 或 CLIENT *。 如果已注册函数未使用分配资源,指针可能为 NULL。

每次 seosd 切换日志文件时,selogrd 后台进程都会关闭并重新启动。 此情况经常发生,例如,日志文件超过指定的最大大小时。 请确保 free 函数可靠地释放所有已分配内存,否则可能会造成系统问题。

没有返回值。

如果不需要执行释放操作,请将该函数指针设置为 NULL。

typedef void (*LogrApiFreeFunc) (SEOS_ROUTENTRY *pre);
pre

要释放或关闭的目标条目。

servlog_IsThereExit 函数

servlog_IsThereExit 函数测试是否为给定审核记录类型注册了 exit 函数。 每个审核记录都定义为一个特定记录类型,如登录、审核或常规资源。 rectype 的值在与 CA ControlMinder API 一起提供的标头文件 selogtype.h 中进行定义。 rectype 的格式为 AUDIT_rectype。

如果指定记录类型存在 exit 函数,则函数返回 1;否则,返回 0。

int servlog_IsThere Exit (int rectype);
rectype

是否为该特定代码表示的记录类型注册了 exit 函数?

servlog_RegisterExit 函数

在接收到特定审核记录类型时,servlog_RegisterExit 函数注册 selogrcd 后台进程将调用的 exit 函数。 CA ControlMinder 中的每个审核记录都标识为一个特定记录类型,如登录、审核或常规资源。 rectype 的值在与 CA ControlMinder API 一起提供的标头文件 selogtype.h 中进行定义。 rectype 的格式为 AUDIT_rectype

可以为每个记录类型注册多个 exit 函数;CA ControlMinder 最多允许为每个记录类型注册 16 个 exit 函数。 注册函数时,将针对特定类型为其分配 exit 函数列表中的一个序号。

退出初始化期间应调用此函数以注册 exit 函数。 通常从 driver_Register 函数调用此函数。

如果函数成功,则返回 0;如果失败,则返回错误代码。

int servlog_RegisterExit (int rectype, collectexitf func, int *chain);
rectype

必须调用 exit 函数的记录类型的代码。

func

指向用户函数的指针,在接收到 rectype 审核记录时应该获得其控制权。

chain

指定记录类型的 exit 函数链中的编号。

servlog_UnRegisterExit 函数

servlog_UnRegisterExit 函数取消注册之前通过调用 servlog_RegisterExit 注册的 exit 函数。 取消注册 exit 函数后,不能再调用该函数。

如果函数成功,则返回 0;如果失败,则返回错误代码。

int servlog_UnRegisterExit (int rectype, int *chain);
rectype

审核记录类型的代码。

chain

要取消注册的 exit 函数的编号(在指定记录类型的 exit 函数链中的编号)。 在注册函数时,向其分配了该编号。

结构和数据类型

本部分介绍 LogRoute API 函数用于在函数以及 CA ControlMinder 后台进程(UNIX 中)和服务(Windows 中)之间来回传递信息的数据结构。 对每个数据结构的每个字段都进行了说明。

LogRoute API 函数访问两种类型的数据结构:审核日志记录结构和信息传递结构。‑

审核日志记录结构

有八种类型的审核日志记录,每种类型都有其自己的结构格式。 可以在源文件 selogtype.h 中找到这些结构。 LogRoute API 中包含以下审核日志记录结构:

SEOS_AUDITADMIN

用于数据库更新事件

SEOS_AUDITDOWN

用于后台进程关闭事件

SEOS_AUDITGENR

用于常规资源检查事件

SEOS_AUDITINWARN

用于 TCP/IP 请求事件

SEOS_AUDITLOGIN

用于登录事件

SEOS_AUDITSTART

用于后台进程启动事件

SEOS_AUDITUSER

用于用户跟踪事件

SEOS_AUDITWDWARN

用于 Watchdog 事件

LogRoute API 包括用于在 CA ControlMinder 后台进程与 LogRoute API 函数之间传递审核日志记录、配置文件信息和 LogRoute API 函数指针的数据结构。 本部分的下半部分提供用于在函数之间传递信息的四个数据结构的详细信息。 可以在源文件 lograpi.h 中找到这些结构。 这四个信息传递结构如下所示:‑

LOGRECHDR

存储审核日志记录标头

LOGRECORD

存储审核日志记录数据

SEOS_ROUTENTRY

存储配置文件条目

LOGRAPI_FUNCS

包含 LogRoute API 实施函数

通知审核日志记录

CA ControlMinder 允许您将通知信息作为与用户或资源记录关联的字符串存储在数据库中。 管理员可以指定每次尝试访问资源时要通知的邮件地址。 通知请求作为特殊审核日志记录存储在审核日志文件中。 selogrd 将通知请求路由到审核日志记录中指定的目标的邮件或屏幕地址。

给定事件的通知记录与该事件关联的标准审核日志记录相同,只是通知记录还将其目标存储在审核日志记录的开头。 通知记录的日志代码就是偏移的常规审核日志记录的日志代码,偏移量为 2048。 例如,正常的登录审核日志记录的日志类型代码为 1。 则通知日志类型代码为 2049。 请注意,审核日志记录可以显示在审核日志文件中,后接同一事件的通知记录。

通知记录结构名称以 SEOSNF_AUDIT 开头。 确切名称与匹配的审核日志记录名称相对应:

SEOSNF_AUDITADMIN

SEOS_AUDITADMIN

SEOSNF_AUDITDOWN

SEOS_AUDITDOWN

SEOSNF_AUDITGENR

SEOS_AUDITGENR

SEOSNF_AUDITINWARN

SEOS_AUDITINWARN

SEOSNF_AUDITLOGIN

SEOS_AUDITLOGIN

SEOSNF_AUDITSTART

SEOS_AUDITSTART

SEOSNF_AUDITUSER

SEOS_AUDITUSER

SEOSNF_AUDITWDWARN

SEOS_AUDITWDWARN

在每个结构中,第一个字段都是 SEOS_NOTIFYSTR(最大 30 字节的缓冲区),用于保留从数据库调用的目标字符串。 第二个字段是对应于该通知记录的审核日志记录。