相关部分:
anisha@linux-trra~> sudo cat /var/log/messages
Aug 29 13:04:22 linux kernel: imklog 5.6.3, log source = /proc/kmsg started.
Aug 29 13:04:22 linux rsyslogd: [origin software="rsyslogd" swVersion="5.6.3" x-pid="1879" x-info="http://www.rsyslog.com"] start
Aug 29 13:04:22 linux kernel: [7.585951] type=1400 audit(1346225659.436:4): apparmor="STATUS" operation="profile_load" name="/sbin/syslog-ng" pid=807 comm="apparmor_parser" Aug 29 13:04:22 linux kernel: [7.667712] type=1400 audit(1346225659.518:5): apparmor="STATUS" operation="profile_load" name="/sbin/syslogd" pid=830 comm="apparmor_parser"
我无法通过ps -el
.
节目如何进行自动地知道他们必须向 RSyslog 发送消息吗?
是否所有程序都将其消息转储到一处,然后 RSyslog 拾取相关消息?
Syslog 的手册页显示 Syslog 从 /dev 中的套接字读取其消息。那么,它与上述两点有何关联呢?
答案1
默认情况下,所有 syslog 守护进程都从以下位置读取传入消息:
/dev/log
此外,syslog 可以绑定到端口 514 上的 UDP 套接字。请参阅 /etc/services::
$ cat /etc/services | grep syslog
syslog 514/udp
第二个主要用于在系统日志守护程序之间传递日志。即每个集群一台日志服务器。
作为程序员,您不会直接写入 /dev/log ,而是调用 posix 函数syslog
::
#include <syslog.h>
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);
事实上,所有高级语言都在这些函数之上提供了一个抽象层。