• syslog架构


    三种方式:unix域套接字、udp端口514以及特殊的设备/dev/klog  

    大多数出现调用syslog向/dev/log这个套接字发送日记消息。

    Device:发送syslog的设备

    Relay:转发syslog的设备(Relay可能只是转发部分接收到的syslog消息,它同时表现为Relay和Collector)

    Collector:接收syslog的设备

    syslog消息的udp报文不能超过1024字节。

    完整的syslog日志中包含日记的程序模块(Facility)、严重性(Severity | Level)、时间、主机名或ip、进程名、进程id和正文

    完整的syslog消息由3部分组成,分别是PRI、HEADER和MSG(<30>Oct 9 22:33:20 hlfedora auditd[1787]: The audit daemon is exiting.),PRI:<30>。HEADER:Oct9...hlfedora。

    PRI部分是由程序模块(Facility)<<3 | 严重性(Severity)组成:换句话说 Facility可以有32种,Severity可以有8种。

     Numerical        Facility
             Code
              0             kernel messages
              1             user-level messages
              2             mail system
              3             system daemons
              4             security/authorization messages (note 1)
              5             messages generated internally by syslogd
              6             line printer subsystem
              7             network news subsystem
              8             UUCP subsystem
              9             clock daemon (note 2)
             10             security/authorization messages (note 1)
             11             FTP daemon
             12             NTP subsystem
             13             log audit (note 1)
             14             log alert (note 1)
             15             clock daemon (note 2)
             16             local use 0  (local0)
             17             local use 1  (local1)
             18             local use 2  (local2)
             19             local use 3  (local3)
             20             local use 4  (local4)
             21             local use 5  (local5)
             22             local use 6  (local6)
             23             local use 7  (local7)

    Numerical         Severity
            Code
             0         Emergency: system is unusable
             1         Alert: action must be taken immediately
             2         Critical: critical conditions
             3         Error: error conditions
             4         Warning: warning conditions
             5         Notice: normal but significant condition
             6         Informational: informational messages
             7         Debug: debug-level messages

    HEADER部分包括两个字段:时间和主机名

    MSG部分分为两个部分:TAG和Content;TAG包含程序名称和进程PID,TAG后面用一个冒号隔开Content部分

    RFC3195:用tcp代替udp,进行可靠的syslog消息

    Facility(类型)在配置文件中的名字如下:
     

    facility参数

    syslog.conf中对应的facility取值

    LOG_KERN

    kern

    LOG_USER

    user

    LOG_MAIL

    mail

    LOG_DAEMON

    daemon

    LOG_AUTH

    auth

    LOG_SYSLOG

    syslog

    LOG_LPR

    lpr

    LOG_NEWS

    news

    LOG_UUCP

    uucp

    LOG_CRON

    cron

    LOG_AUTHPRIV

    authpriv

    LOG_FTP

    ftp

    LOG_LOCAL0~LOG_LOCAL7

    local0~local7

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    Severity(级别)在配置文件中的名字如下:
     

    priority参数

    syslog.conf中对应的level取值

    LOG_EMERG

    emerg

    LOG_ALERT

    alert

    LOG_CRIT

    crit

    LOG_ERR

    err

    LOG_WARNING

    warning

    LOG_NOTICE

    notice

    LOG_INFO

    info

    LOG_DEBUG

    debug

     

    基本语法格式

    类型.级别[;类型.级别]  动作

    news.=crit  /var/log/news.crit

    ‘=’特殊符号,如果存在说明只有本Severity的消息才进行处理,如果不存在则处理本Severity及其以下级别的消息

    ‘;'表示&&、'!'表示取反、’*'表示所有

    动作:表示信息发送的目的地

      可以是日记文件(绝对路径),如果文件名前面加上减号表示不将日志信息同步刷新到磁盘上(使用写入缓存),这样可以提高日志写入性能,但是增加了系统崩溃后丢失日志的风险

      可以是远程主机(@host,host可以是ip或域名,默认在/etc/hosts文件下loghost这个别名已经指定给本机)

      可以是指定用户(user1,user2),如果指定用户已登入,那么他们将收到消息

    客户端有两种方式开发:

       完全基于协议从底层开发,也就是直接写unix域套接字或者向UDP514发送定制消息

       基于库函数供上层应用使用

    logrotate:日志文件会随着日志的增加而不断增大,从而带来效率的问题和空间使用问题,在常年运行的服务器上面,通常会有logrotate程序定期进行日志文件的轮替和删除工作。

  • 相关阅读:
    linux计划任务格式
    KVO监听数组的变化
    经典题目:输入半径求圆的面积
    /src/applicationContext.xml
    词法分析错题
    正规式与有限自动机
    词法分析程序的设计
    词法分析概述
    windows平台上 搭建 VisualSVN服务器 和 TortoiseSVN客户端
    maven error Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:3.1.0:single
  • 原文地址:https://www.cnblogs.com/Call-C/p/8290753.html
Copyright © 2020-2023  润新知