linux syslog详解 转 (3)

2.3、MSG部分 
    MSG部分又分为两个部分,TAG和Content。其中TAG部分是可选的。
    在前面的例子中(“<30>Oct 9 22:33:20 hlfedora auditd[1787]: The audit daemon is exiting.”),“auditd[1787]”是TAG部分,包含了进程名称和进程PID。PID可以没有,这个时候中括号也是没有的。
    进程PID有时甚至不是一个数字,例如“root-1787”,解析程序要做好容错准备。

TAG后面用一个冒号隔开Content部分,这部分的内容是应用程序自定义的。


3、RFC3195 
    BSD syslog协议使用UDP协议在网络中传递,然而UDP是一个不可靠的协议,并且syslog也没有要求接收方有所反馈。为了解决这个问题,RFC又定义了一个新的规范来可靠的传递syslog消息,它使用TCP协议:

    不过大多数情况下,使用UDP发送不需要确认的syslog消息,已经能够满足要求了,并且这样做非常简单。因此到目前为止,RFC3195的应用还是很少见的。

二、syslog函数

Linux C中提供一套系统日记写入接口,包括三个函数:openlog,syslog和closelog。

调用openlog是可选择的。如果不调用openlog,则在第一次调用syslog时,自动调用openlog。调用closelog也是可选择的,它只是关闭被用于与syslog守护进程通信的描述符。

#include //头文件

void openlog (char*ident, int option, int facility); 

void closelog(); 

void syslog(int priority, char*format,……);

priority参数的格式(severity level|facility code)

示例:

LOG_ERR|LOG_USER

severity level:

Priority Level               Description

LOG_EMERG                    An emergency situation

LOG_ALERT                    High-priority problem, such as database corruption

LOG_CRIT                     Critical error, such as hardware failure

LOG_ERR                      Errors

LOG_WARNING                  Warning

LOG_NOTICE                   Special conditions requiring attention

LOG_INFO                     Informational messages

LOG_DEBUG                    Debug messages 

facility value(转自syslog.h头文件):

#define LOG_KERN        (0<<3)  

#define LOG_USER        (1<<3)  

#define LOG_MAIL        (2<<3)  

#define LOG_DAEMON      (3<<3)  

#define LOG_AUTH        (4<<3)  

#define LOG_SYSLOG      (5<<3)  

#define LOG_LPR         (6<<3)  

#define LOG_NEWS        (7<<3)  

#define LOG_UUCP        (8<<3)  

#define LOG_CRON        (9<<3)  

#define LOG_AUTHPRIV    (10<<3)

#define LOG_FTP         (11<<3)

三、linux syslog配置

1)、syslog日志服务:

1、守护进程:syslog

2、端口:514

3、配置文件:/etc/syslog.conf

4、常见日志文件:

/var/log/dmesg      内核引导信息日志

/var/log/message    标准系统错误信息日志

/var/log/maillog    邮件系统信息日志

/var/log/cron       计划任务日志

/var/log/secure     安全信息日志

2)、 配置文件:

syslog配置文件如下

-----------------------------------------------------------------

[root@server ~]# vim /etc/syslog.conf

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.

# Don\'t log private authentication messages!

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.

authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgffwz.html