Syslog-ng配置日志存储的方式

     2013年02月06日       teddy.sun       运维笔记->系统管理       syslog-ng 

实际上Syslog-ng的file是支持变量的,这样Syslog-ng支持多种方式存储日志,格式定义相当灵活。
下面介绍两者比较实用的,也借此抛砖引玉。
1.日志按目录“年/月/日时”存储Syslog文件
destination d_syslog_ng {
    file("/home/log-store/netudp/${R_YEAR}/${R_MONTH}/syslog-ng.${R_DAY}.${R_HOUR}");
}
2.日志按照“年/月/日/ip” 存储Syslog文件
destination oopslog {
        file("/disk1/netoops/${R_YEAR}/${R_MONTH}/${R_DAY}/${HOST}");
};

配置好后重启Syslog-ng,无需建立目录,只要有日志收集到,目录自动会被创建。
常用的变量汇总,供客官发挥:
变量名 说明
R_YEAR
日志的年份,如2013
R_MONTH
日志的月份,如01
R_DAY
日志的日,比如今天是6号,那就是06
R_HOUR
日志的小时时间,如现在是10点,那就是10
DATE
日志的日期,如Jan 13 20:59:59
UNIXTIME
日志的Unix时间戳
HOST
日志的主机名,标识这个日志属于哪个机器发过来的
PROGRAM
日志的程序,标识这个日志是哪个进程发的
FACILITY
日志通道,如deamon、kernel、authpriv之类
LEVEL
日志的级别,如info、error之类
MESSAGE
日志的具体内容