文章目录
1. 前言
The GNU C Library Reference Manual for version 2.35
2. 系统日志
Syslog
本章描述了用于发布和记录系统管理感兴趣的消息的工具。本章与向自己的用户发布消息或保留私人日志的程序无关(通常会使用输入/输出流中描述的工具来做到这一点)。
大多数系统都有一个称为“Syslog”的工具,它允许程序向系统管理员提交感兴趣的消息,并且可以配置为以各种方式传递这些消息,例如在控制台上打印、邮寄给特定的人或记录在 日志文件以供将来参考。
程序使用本章中的工具来提交此类消息。
2.1. Syslog概述
Overview of Syslog
系统管理员必须处理来自每个系统内大量子系统的大量不同类型的消息,而且通常还有很多系统。例如,FTP 服务器可能会报告它获得的每个连接。内核可能会报告磁盘驱动器上的硬件故障。DNS 服务器可能会定期报告使用情况统计信息。
其中一些消息需要立即引起系统管理员的注意。它可能不仅仅是任何系统管理员——可能有一个特定的系统管理员来处理特定类型的消息。如果出现问题,只需记录其他消息以备将来参考。还有一些人可能需要通过自动生成月度报告的过程从中提取信息。
为了处理这些消息,大多数 Unix 系统都有一个称为“Syslog”的工具。它通常基于一个名为“Syslogd”的守护进程,Syslogd 在名为 /dev/log 的 Unix 域套接字上侦听消息。根据消息中的分类信息及其配置文件(通常是 /etc/syslog.conf),Syslogd 以各种方式路由它们。一些流行的路由是:
- 写入系统控制台
- 给特定用户的邮件
- 写入日志文件
- 传递给另一个守护进程
- 丢弃
Syslogd 还可以处理来自其他系统的消息。它在 syslog UDP 端口以及本地套接字上侦听消息。
Syslog 可以处理来自内核本身的消息。但是内核不写入/dev/log;相反,另一个守护进程(有时称为“Klogd”)从内核中提取消息并将它们传递给 Syslog,就像任何其他进程一样(并将它们正确识别为来自内核的消息)。
Syslog 甚至可以处理内核在 Syslogd 或 Klogd 运行之前发出的消息。例如,Linux 内核将启动消息存储在内核消息环中,并且当 Klogd 稍后启动时它们通常仍然存在。假设 Syslogd 在 Klogd 启动时正在运行,然后 Klogd 会将消息环中的所有内容传递给它。
为了对消息进行分类以进行处置,Syslog 要求任何向其提交消息的进程提供两条分类信息:
facility
这标识了谁提交了消息。定义了少量设施。内核、邮件子系统和 FTP 服务器是公认设施的示例。有关完整列表,请参阅 syslog、vsyslog。请记住,这些本质上是任意分类。“邮件子系统”没有系统管理员赋予它的任何意义。
priority
这说明了消息内容的重要性。定义的优先级值的示例有:调试、信息、警告和关键。有关完整列表,请参阅 syslog、vsyslog。除了优先级有明确的顺序之外,每个优先级的含义完全由系统管理员决定。
“facility/priority”是表示设施和优先级的数字。
警告:这个术语并不通用。有些人用“级别”来指代优先级,用“优先级”来指代设施和优先级的组合。Linux 内核有一个消息“级别”的概念,它对应于 Syslog 优先级和 Syslog 设施/优先级(这可能是因为内核的设施代码为零,这使得优先级和设施/优先级相同的值)。
GNU C 库提供了向 Syslog 提交消息的函数。他们通过写入 /dev/log 套接字来做到这一点。请参阅提交系统日志消息。
GNU C 库函数仅用于向同一系统上的 Syslog 工具提交消息。要将消息提交到另一个系统上的 Syslog 工具,请使用套接字 I/O 功能将 UDP 数据报写入该系统上的 syslog UDP 端口。请参阅套接字。
2.2. 提交系统日志消息
Submitting Syslog Messages
GNU C 库提供了将消息提交到 Syslog 工具的函数:
这些功能仅用于将消息提交到同一系统上的 Syslog 工具。要将消息提交到另一个系统上的 Syslog 工具,请使用套接字 I/O 功能将 UDP 数据报写入该系统上的 syslog UDP 端口。请参阅套接字。
2.2.1. 打开日志
openlog
本节中提到的符号在文件 syslog.h 中声明。
函数:void openlog (const char *ident, int option, int facility)
Preliminary: | MT-Safe | AS-Unsafe lock | AC-Unsafe lock fd | See

本文详细介绍了Syslog工具,用于系统管理和记录重要消息。Syslog允许程序向系统管理员发送消息,并可配置为通过不同方式传递,如控制台打印、邮件通知或日志文件存储。它基于Syslogd守护进程,监听/dev/log套接字。文章涵盖了 Syslog的基本概念、消息提交、日志掩码设置以及相关函数的使用,如openlog、syslog和closelog。此外,还讨论了如何通过facility和priority对消息进行分类和处理。
最低0.47元/天 解锁文章
1232

被折叠的 条评论
为什么被折叠?



