博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Syslog-ng
阅读量:6906 次
发布时间:2019-06-27

本文共 3537 字,大约阅读时间需要 11 分钟。

一、简介

与 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_的宏代替日志记录的时间,而不要依靠该值定义。

转载地址:http://tmgdl.baihongyu.com/

你可能感兴趣的文章
AndrewNG Deep learning课程笔记 - RNN
查看>>
如何解决 Windows 实例出现身份验证错误及更正 CredSSP
查看>>
如何修改Xampp服务器上的mysql密码(图解)
查看>>
vue项目,ie11 浏览器报 Promise 未定义的错误
查看>>
使用Navicat连接阿里云mysql报错10061
查看>>
c#金额转换成中文大写金额
查看>>
理解sklearn.feature.text中的CountVectorizer和TfidfVectorizer
查看>>
在OAF页面中集成ECharts以及highcharts用于显示图表
查看>>
hibernate.properties和hibernate.cfg.xml
查看>>
DataSet排序问题
查看>>
extern "C"用法详解
查看>>
Java将数字字符串转换成中文形式
查看>>
android post 提交数据
查看>>
简说宽带商的弹窗广告进化及网站应对之策(DNS劫持进化论)
查看>>
为Mac Terminal设置代理
查看>>
如何快速的开发一个完整的 iOS 直播 app(原理篇)
查看>>
使用GSON解析json数据
查看>>
iOS逆向之旅(进阶篇) — 工具(LLDB)
查看>>
Angular学习笔记(二) - 生命周期钩子
查看>>
《前端十年心路-我把一切告诉你》的书稿大纲&问题收集
查看>>