码迷,mamicode.com
首页 > 其他好文 > 详细

Syslog-ng使用备忘

时间:2015-04-17 20:05:29      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:

====syslog-ng特性====
1.传输可靠(TCP)
2.支持TLS安全传输日志
3.数据库接入
4.日志过滤和分类
5.日志解析和重写
6.支持IPV6
7.工作模式(客户端,服务端,转发)

====工作机制====
source driver:      源驱动器,收集源日志的方式
source:             源驱动器集合
destination driver: 目的驱动器,发送日志到目的地的方式
destion:            目的驱动器的集合
filter:             选择特定消息的表达式,用于获取特定消息
macro:             用于标识消息体特定的部分,用于引用消息
parser:             分析消息的规则
rewrite rule:       更改消息段的规则
log paths:          定义日志处理规则
template:           重构消息格式的模板
option:             配置的全局选项

====日志格式====
格式文档:   RFC3164、RFC5424
传统格式:   PRI HEADER MSG(消息长度小于1024)
PRI值计算:  facility * 8 + severity
HEADER格式: timestamp hostname
MSG的格式:  program[pid]: message text

IETF格式:   header structured-data msg
    header必须是明文的ASCII格式
    structured-data必须是UTF-8编码格式
    msg建议UTF-8编码格式

IETF header格式:
<pri>VERSION ISOTIMESTAMP HOSTNAME APPLICATION PID MESSAGEID
注意一些字段必须小于一定字节数,大于该字节数,会被截断:
APP-NAME <= 48
PROC-ID(PID) <= 128
MSGID <= 32
HOSTNAME <= 255

IETF structured-data格式:
[id name=vaule [name=vaule] ... ]
包含一个块ID,多个name=vaule

说明:
1.syslog-ng只会处理上面的两种格式信息,如果遇到未知格式就会导致不预期的错误
2.如果想要保留原始信息,源驱动器加上选项flags(no-parse),destination使用
    template只包含$MSG宏

====安装步骤====
下载两个源代码包eventlog-xxx.tar.gz和syslog-ng-xxx.tar.gz
tar -zxvf eventlog-x.x.x.x.tar.gz
./configure
make
make install

tar -zxvf syslog-ng-x.xx.tar.gz
export KG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
./configure [--compile-time-option-name]
make
make install

====配置说明====
配置文件第一行必然是:@version: 3.3的格式,3.3代表版本号
$HOST宏一般都是发送主机的IP地址,不一定是原始日志的
主机地址,除非syslog-n配置keep_hostname(yes)

source dirvers
source <identifier> { source-driver(params); source-driver(params); ... };

syslog-ng自己的信息日志
internal():信息级别info以上,日志设备syslog

从文件收集日志
file(filename):即使文件重命令,或是转存了都能正确分析,syslog-ng将文件分析
记录到syslog-ng.persist文件中,跟踪分析状态
no-multi-line:  分割多行为单行
no-parse:       不进行日志分析

从管道获取日志
pipe(filename)

从linux accounting logs收集日志
1.编译启用了--enable-pacct
2.pacctformat插件自动加载

配置如下:
@include "scl.conf"
pacct()

从外部程序收集日志
program(filename)

按照IETF格式收集日志
syslog(ip() port() transport() options());

获取本地系统的日志信息
generate-system-source.sh脚本产生配置
system()

从网络收集日志
tcp(), tcp6(), udp() and udp6()

从Unix套接字收集日志
unix-stream(filename [options]);
unix-dgram(filename [options]);

目的地配置
destination drivers
destination <identifier> {
destination-driver(params); destination-driver(params); ... };

目的地驱动器
file()
pipe()
program()
sql()
syslog()
tcp() / tcp6()
udp() / udp6()
unix-dgram()
unix-udram()
usertty()

日志规则配置
log {
source(s1); source(s2); ...
optional_element(filter1|parser1|rewrite1);...
optional_element(filter2|parser2|rewrite2);...
destination(d1); destination(d2); ...
flags(flag1[, flag2...]);
};

LOG FIFO大小计算
log_fifo_size() >= number_of_sources*log_iw_size()

使用日志过滤
filter <identifier> { <filter_type>("<filter_expression>"); };
exp1:
filter demo_filter { host("example1") or host("example2"); };

exp2:
filter <filter-id>
{"<macro-or-template>" operator "<value-or-macro-or-template>"};

exp3:
filter f_pid {"$HOST$PID" eq "$HOST"};

过滤函数
facility()
filter()
host()
level()
match()
message()
netmask()
program()
source()
tags()

 

Syslog-ng使用备忘

标签:

原文地址:http://www.cnblogs.com/y2ghost/p/4435680.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!