Syslog-ng
一、简介
与 syslog相比 ,syslog-ng 具有众多高级的功能:更好的网络支持,更加方便的配置,集中式的网络日志存储,并且更具有弹性。比如,使用syslogd时,所有的iptables日志与其他内核日志一起全部存储到了kern.log文件里。Syslog-ng则可以让你有选择性的将iptables部分分出到另外的日志文件中。Syslogd仅能使用UDP协议,Syslog-ng 可以使用UDP和TCP协议。所以你可以在加密的网络隧道中传输日志到集中日志服务器。
二、安装
apt-get install syslog-ng-core=3.7.1-1
三、配置
配置文件:/etc/syslog-ng/syslog-ng.conf
架构:通过定义多个消息源,把匹配上若干个过滤器的消息导向到指定的目的地,从而组成一个消息路径。
LOG STATEMENTS『SOURCES - FILTERS -DESTINATIONS』
消息路径『消息源-过滤器-目的站』
1)消息源(SOURCES)
source { sourcedriverparams; sourcedriverparams; ... }; sourcedriver:消息源驱动器,可以支持若干参数,并使用分号“;”隔离多个消息源驱动器
file (filename) :从指定的文件读取日志信息
unix-dgram (filename) :打开指定的SOCK_DGRAM模式的unix套接字,接收日志消息
unix-stream (filename) :打开指定的SOCK_STREAM模式的unix套接字,接收日志消息
udp ( (ip),(port) ) :在指定的UDP端口接收日志消息
tcp ( (ip),(port) ) :在指定的TCP端口接收日志消息
sun-streams (filename) :在solaris系统中,打开一个(多个)指定的STREAM设备,从其中读取日志消息
internal() : syslog-ng内部产生的消息
pipe(filename),fifo(filename) :从指定的管道或者FIFO设备,读取日志信息
2)过滤器(FILTERS)
filter { expression; }; expression:表达式 表达式
逻辑操作符:and(和)、or(或)、not(非);
函数:可使用正规表达式描述内容 函数:
facility(,):根据facility(设备)选择日志消息,使用逗号分割多个facility
level(,):根据level(优先级)选择日志消息,使用逗号分割多个level,或使用“..”表示一个范围
program(regexp):日志消息的程序名是否匹配一个正则表达式
host(regexp):日志消息的主机名是否和一个正则表达式匹配
match(regexp):对日志消息的内容进行正则匹配
filter():调用另一条过滤规则并判断它的值
这里的level定义info,相当于syslog的.=info,并不包括更低的等级;若需要包括更低的等级,请使用“..”表示一个等级范围;
另外,filter(DEFAULT),用于捕获所有没有匹配上的日志消息。filter(*)是无效的。
3)目的地(DESTINATIONS)
destination { destdriverparams; destdriverparams; ... ;}; destdriver:目的地驱动器 目的地驱动器:
file (filename) :把日志消息写入指定的文件
unix-dgram (filename) :把日志消息写入指定的SOCK_DGRAM模式的unix套接字
unix-stream (filename) :把日志消息写入指定的SOCK_STREAM模式的unix套接字
udp (ip),(port) :把日志消息发送到指定的UDP端口
tcp (ip),(port) :把日志消息发送到指定的TCP端口
usertty(username) :把日志消息发送到已经登陆的指定用户终端窗口
pipe(filename),fifo(filename) :把日志消息发送到指定的管道或者FIFO设备
program(parm) :启动指定的程序,并把日志消息发送到该进程的标准输入
4)消息路径(LOG STATEMENTS)
log { source S1; source S2; ... filter F1; filter F2; ... destination
D1; destination D2; ... };
把消息源、过滤器、消息目的组合起来就形成一条完整的指令。日志路径中的成员是顺序执行的。凡是来源于指定的消息源,匹配所有指定的过滤器,并送到指定的地址。
注意,每条日志消息都会经过所有的消息路径,并不是匹配后就不再往下执行的。
5)选项参数(options)
全局的选项参数,定义在配置文件的开头位置,以优化操作。
options { opt1; opt2; ... }; 选项有:
chain_hostnames(yes|no) :是否打开主机名链功能,打开后可在多网络段转发日志时有效
long_hostnames(yes|no) :是chain_hostnames的别名,已不建议使用
keep_hostname(yes|no) :是否保留日志消息中保存的主机名称,否时,总是使用来源主机来作重写日志的主机名
use_dns(yes|no) :是否打开DNS查询功能,应使用防火墙保护使用syslog-ng的节点安全,并确认所有主机都是可以通过dns解释的,否则请关闭该选项。
use_fqdn(yes|no) :是否使用完整的域名
check_hostname(yes|no) :是否检查主机名有没有包含不合法的字符
bad_hostname(regexp) :可通过正规表达式指定某主机的信息不被接受
dns_cache(yes|no) :是否打开DNS缓存功能
dns_cache_expire(n) :DNS缓存功能打开时,一个成功缓存的过期时间
dns_cache_expire_failed(n) :DNS缓存功能打开时,一个失败缓存的过期时间
dns_cache_size(n) :DNS缓存保留的主机名数量
create_dirs(yes|no) :当指定的目标目录不存在时,是否创建该目录
dir_owner(uid) :目录的UID
dir_group(gid) :目录的GID
dir_perm(perm) :目录的权限,使用八进制方式标注,例如0644
owner(uid) :文件的UID
group(gid) :文件的GID
perm(perm) :文件的权限,同样,使用八进制方式标注
gc_busy_threshold(n) :当syslog-ng忙时,其进入垃圾信息收集状态的时间。一旦分派的对象达到这个数字,syslog-ng就启动垃圾信息收集状态。默认值是:3000。
gc_idle_threshold(n) :当syslog-ng空闲时,其进入垃圾信息收集状态的时间。一旦被分派的对象到达这个数字,syslog-ng就会启动垃圾信息收集状态,默认值是:100
log_fifo_size(n) :输出队列的行数
log_msg_size(n) :消息日志的最大值(bytes)
mark(n) :多少时间(秒)写入两行MARK信息供参考,目前没有实现
stats(n) :多少时间(秒)写入两行STATUS信息供,默认值是:600
sync(n) :缓存多少行的信息再写入文件中,0为不缓存,局部参数可以覆盖该值。
time_reap(n) :在没有消息前,到达多少秒,即关闭该文件的连接
time_reopen(n) :对于死连接,到达多少秒,会重新连接
use_time_recvd(yes|no) :宏产生的时间是使用接受到的时间,还是日志中记录的时间;建议使用R_的宏代替接收时间,S_的宏代替日志记录的时间,而不要依靠该值定义。
Syslog-ng的更多相关文章
- syslog-ng 学习
摘要:http://luyongxin88.blog.163.com/blog/static/925580720112275183903/ 因为工作的需要,涉及到了syslog-ng.现在看来,在外包 ...
- Linux 系统运行着许多子系统和应用程序。您可以使用系统日志记录从启动时就收集有关运行中系统的数据。有时
概述 在本教程中,您将学习以下内容: 配置 syslog 守护程序 了解标准设施.优先级和操作 配置日志轮换 了解 rsyslog 和 syslog-ng 系统内部发生了什么 Linux 系统运行着许 ...
- 【转】Flume(NG)架构设计要点及配置实践
Flume(NG)架构设计要点及配置实践 Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中.由原来的Fl ...
- 【Flume NG用户指南】(1)设置
作者:周邦涛(Timen) Email:zhoubangtao@gmail.com 转载请注明出处: http://blog.csdn.net/zhoubangtao/article/details ...
- Flume NG 配置详解(转)
原文链接:[转]Flume NG 配置详解 (说明,名词对应解释 源-Source,接收器-Sink,通道-Channel) 配置 设置代理 Flume代理配置存储在本地配置文件.这是一个文本文件格式 ...
- Flume NG基本架构与Flume NG核心概念
导读 Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中. 由原来的Flume OG到现在的Flume NG, ...
- FLUME NG的基本架构
Flume简介 Flume 是一个cloudera提供的 高可用高可靠,分布式的海量日志收集聚合传输系统.原名是 Flume OG (original generation),但随着 FLume 功能 ...
- 【码在江湖】前端少侠的json故事(中)ng的json
ng的json 正所谓"人在江湖,身不由己",在开发之路上前端少侠dk遇到过种种困难,尤其在与后端进行数据对接的时候,不得不逼迫自己以极快的速度去学习和掌握一些奇招怪式,正当他以为 ...
- 不知道张(zhāng)雱(pāng)是谁?你out了!
张(zhāng)雱(pāng)是谁?也许你已经听说过了,也许你还没听说过呢,不过你一定听说过老刘——刘强东,没错,这二人是有关系的,什么关系,京东是老刘的,而张雱呢?张雱是京东旗下52家关联公司法人代 ...
- Flume NG Getting Started(Flume NG 新手入门指南)
Flume NG Getting Started(Flume NG 新手入门指南)翻译 新手入门 Flume NG是什么? 有什么改变? 获得Flume NG 从源码构建 配置 flume-ng全局选 ...
随机推荐
- AnyChatCoreSDK.h
#ifndef ANYCHATCORESDK_H #define ANYCHATCORESDK_H #include <windows.h> #include <stdlib.h&g ...
- js算法运算
//js 加法计算 //调用:accAdd(arg1,arg2) //返回值:arg1加arg2的精确结果 function accAdd(arg1,arg2){ var r1,r2,m; try{r ...
- js实现向上滚动效果
源码: <style type="text/css"> #up_zzjs{border:1px solid #ccc;width:170px;height:182px; ...
- (旧)子数涵数·UI设计——扁平化设计
一.基本资料 1.由来 扁平化设计这个概念,是由Google(谷歌)在2008年提出的:它的首个实践者是microsoft(微软),microsoft在2012年发行了win8系统,这个系统的外观主题 ...
- 搭建angularjs API文档站点
提供一个国内可以访问的 angularjs API文档站点 http://i.frllk.com/ 文档直接在 github 上下载的: https://github.com/angular-cn/n ...
- 硅谷新闻8--TabLayout替换ViewPagerIndicator
1.关联库 compile 'com.android.support:design:23.3.0' 2.布局写上TabLayout <android.support.design.widget. ...
- 微信公共平台开发2 .net
成功的走出第一步后,我们紧接着趁热打铁开始下一步: 成为了开发者之后微信平台会给您AppId和AppSecret,在订阅号中是没有的,所以因该申请一下服务号, 若没有请注意上一篇http://www. ...
- jQuery对复选框(checkbox)的全选,全不选,反选等的操作
效果截图: HTML代码: <body><ul id="list"> <li><label><input type=" ...
- AngularJS(一)
<!doctype html> <html ng-app=""> <!-- ng-app指令标记了AngularJS脚本的作用域 --> & ...
- ABAP SY-SUBRC 使用过程中返回值的几种含义
当进行Debug的时候,经常会遇到"SY-SUBRC"的返回值.具体如何使用.在各种语句下返回值. ================= FUNCTION MODULE (或RFC中 ...