- 浏览: 853067 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (280)
- java相关 (29)
- linux系统 (55)
- ipsec (0)
- ssl (3)
- 信息安全 (13)
- web相关 (35)
- windows (9)
- c,c++ (14)
- log4j (3)
- hibernate (8)
- sqlite (1)
- 程序人生 (2)
- js (2)
- 生活点滴 (3)
- 网络相关 (14)
- 问题积累 (15)
- 数据库相关 (27)
- 软件测试 (2)
- PKI相关 (2)
- 程序设计 (7)
- 犄角旮旯 (0)
- 杂七杂八 (0)
- 硬件相关 (14)
- 防火墙 (2)
- 电子商务 (2)
- 多媒体相关 (1)
- 内存管理 (4)
- 面向对象 (1)
- csp (1)
- 驱动开发 (3)
- 移动开发 (2)
- openssl多线程实例 (1)
最新评论
-
xiaoyao3857:
博主很有探索精神嘛,学习了
Linux主机名Hostname详解 -
hiskyrisa:
言简意赅,好文章。
Flex是什么 -
layznet:
犯了类似错误。使用的是derby数据库。driverClass ...
java.sql.SQLException: No suitable driver -
idision:
你好,文章有一句createSubjectKeyId(keyT ...
bouncycastle 产生证书 -
zheng12tian:
代码有全的不?只贴一部分,,,,
在LOG4J中把日志写入远程数据库
转载一篇syslog-ng的文章的,本来是想打算自己写一篇的,看到这篇文章写的很详细,就转载过来吧。后面我再补充一下
syslog- ng作为syslog的替代工具,可以完全替代syslog的服务,并且通过定义规则,实现更好的过滤功能。
系统自带版本:
syslog-ng-1.6.7-1
syslog
官方网站:点击
最新版本是2.0.5。
为方便使用,暂以系统自带的版本1.6.7说明,以后再提供更新的rpm包。
1、前提
使
用syslog-ng前,建议先详细了解syslog的概念。
例如,什么是facitily(设备),level(等级)。可以参考这里:点击
否
则,后面的说明可能会有点不知所云的。
2、使用
若不增加其他设定,可通过下面的简单命令即可替换原
syslog服务:
# service syslog-ng start
3、
设计原则
syslog-ng替代syslog是基于以下的设计原则的:
b、支持主机链,即使日志消息经过多重网络转发,仍可找到原发出主机的信息和整个消息链;
c、支持强大的自定义配置, 并且清晰、明了。
二、
配置说明
syslog-ng的主配置文件存放在:/etc/syslog-ng/syslog-ng.conf
1、架构
syslog-
ng的配置基于下面的架构:
消息路径 『消息源 - 过滤器 - 目的站』
也就是说,通过定义多个消息源,把匹配上若干个过滤器的消息导向到指定的目的地,从而组成一个
消息路径。
2、消息源SOURCES
定义格式为:
含义:
sourcedriver:消 息源驱动器,可以支持若干参数,并使用分号“;”隔离多个消息源驱动器
消息源驱动器有:
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设备,读取日志信息
例如:
file ("/proc/kmsg" log_prefix("kernel: "));
unix-stream ("/dev/log");
internal();
# udp(ip(0.0.0.0) port(514)); #如果取消注释,则可以从udp的514端口获取消息
};
※linux使用/dev/log作为SOCK_STREAM
unix的套接字,BSD使用/var/run/log;
参数需要使用括号括住。
3、
过滤器FILTERS
定义格式为:
含
义:
expression:表达式
表
达式支持:
函数:可使用正规表达式描述内容
过
滤函数有:
level(,): 根据level(优先级)选择日志消息,使用逗号分割多个level,或使用“..”表示一个范围
program(regexp): 日志消息的程序名是否匹配一个正则表达式
host(regexp): 日志消息的主机名是否和一个正则表达式匹配
match(regexp): 对日志消息的内容进行正则匹配
filter(): 调用另一条过滤规则并判断它的值
例如:
not facility(mail,authpriv,cron); };
※这里的level定义info,相当于syslog的.=info,并不包括更
低的等级;
若需要包括更低的等级,请使用“..”表示一个等级范围;
另外,filter(DEFAULT),用于捕获所有没有匹配上的日
志消息。filter(*)是无效的。
4、目的地DESTINATIONS
定
义格式为:
含义:
destdriver :目的地驱动器
目的地驱动器有:
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) :启动指定的程序,并把日志消息发送到该进程的标准输入
举
例:
destination d_syslog { udp ("192.168.228.225" port(514)); };
※配合使用udp或tcp即可实现集中的日志服务器。注意,udp函数的写法上和消息源
驱动器中的定义不同。
5、消息路径LOG STATEMENTS
定
义格式为:
D1; destination D2; ... };
把消息源、过滤器、消息目的组合起来就形成一条完整的指令。日志路径中的成员是顺序执行的。凡是来源于指定的消息源,匹配所有指定的过 滤器,并送到指定的地址。
※同样的,每条日志消息都会经过所有 的消息路径,并不是匹配后就不再往下执行的,请留意。
除了上述 的消息路径定义外,syslog-ng还可以设定一些选项参数以优化其操作。
全局的选项参数,定义在配置文件的开头位置:
选项有:
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_的宏代替日志记录的时间,而不要依靠该值定义。
例如:
sync (0);
time_reopen (10);
log_fifo_size (1000);
long_hostnames (off);
use_dns (no);
use_fqdn (no);
create_dirs (no);
keep_hostname (yes);
};
四、部分函数的参数
syslog-ng除了有全局选项参数外,不同的函数还可以定义其参数,其中 包括:
1、扩展file的宏
FACILITY :日志消息来自的日志设备
PRIOPRITY/LEVEL :日志消息的优先级
PROGRAM :发送日志消息的程序
YEAR :发送日志消息的年份,这个宏既可以指定日志消息送出的时间,也可以指定日志消息收到的时间。这由use_time_recvd()选项控制
MONTH :发送日志消息的月份
DAY :发送日志消息的日子
HOUR :小时
MIN : 分钟
SEC :秒
2、file的参数
例如:log_file_size()、sync()、 owner()、perm()等,请参考上面的全局设定
3、tcp和upd的参数
port(n):定义绑 定的端口
max-connections(n) : 定义最大连接数
※TCP基于连接方式传输,不会造成 日志丢失,而UDP则不同。但因为传统的syslog基于UDP的514端口,所以,UDP方式也经常会使用到。
另外,514也是rshell的 默认端口,请注意冲突。
举例:
这里定义的sync(10)会覆盖全局配置,表示若写入的日志数量达到10,才写入maillog文件。
五、关于垃圾收集状态
当满足一定的条 件,syslog-ng即会进入垃圾收集状态,而暂时不再接受日志信息。这时,会造成非连接的传输协议的日志丢失(例如UDP)。通过设置下面两个选项可 以控制:
意思是,一旦被分派的对象到达这个数字, 并且当syslog-ng空闲时(100微秒内没有日志消息到达)。此时,syslog-ng就会启动垃圾信息收集状态。
已分配的对象可通过-v 命令行参数指定其的最小值。而syslog-ng这个值应该比较小,但比已分配的对象要大即可。
例如,空闲状态,syslog-ng会显示:
Nov 13 16:45:35 syslogng syslog-ng[4510]: STATS: dropped 0
当忙时:
六、参考资料
man
syslog-ng.conf
man 8 syslog-ng
发表评论
-
Linux c的多线程编程实例
2011-07-19 17:28 1935通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用 ... -
linux下进程的最大线程数、进程最大数、进程打开的文件数
2011-06-22 17:35 1904linux 系统中单个进程的 ... -
Linux中dos2unix的批量转换命令
2011-01-05 10:31 6916在Linux中将DOS 格式转换为Unix格式的文件可以使用d ... -
linux双网关双线路网络设置
2010-08-03 19:10 1978由于电信和网通之间互联互通 的问题,很多 ... -
syslog-ng学习心得之二
2010-07-06 08:58 2404在[url]http://coolerfeng.blog.51 ... -
Linux用户进程是如何释放内存
2009-12-25 17:16 2013Linux进程使用内存的基本流程: 见图1 从 ... -
Linux内存使用详解
2009-12-25 16:56 2343一提到内存管理,我们 ... -
linux下查看内存使用情况
2009-12-25 14:56 1958在Linux下查看内存我们 ... -
Linux编程C++内存管理之内存分配详解
2009-12-21 21:33 1723程序员们经常编写内存 ... -
内核模块调试方法
2009-11-17 11:23 2525对 于任何一位内核代 ... -
Linux操作系统下以太网卡的安装及配置
2009-11-11 17:18 1634Linux操作系统以其 独有的开放性、稳定性、高 ... -
跟我一起写 Makefile(3)
2009-11-03 14:38 599“-s” “--silent” “--quiet” 在命 ... -
跟我一起写 Makefile(2)
2009-11-03 14:35 922书写命令 ———— 每 ... -
跟我一起写 Makefile(1)
2009-11-03 14:32 948陈皓 (CSDN) 概述 — ... -
CC与GCC的区别概括介绍
2009-11-03 14:29 1413从名字上看,老的unix系统 的CC程序叫做C Comp ... -
linux内核模块管理命令
2009-10-30 10:54 16721. lsmod 列出已经加载的内核模块 lsmo ... -
分区修复软件Testdisk 安装使用
2009-08-26 14:23 4834linux下超帅的分区表修复软件.以前用过n多的window ... -
Linux下的分区修复软件Testdisk
2009-08-26 10:40 1808好了,这个软件叫testdisk.很帅的。。 如果你是使 ... -
Linux分区数据恢复
2009-08-26 10:18 1412公司的一台redhat机器启动不了了,是由于多次非正常关机造成 ... -
重装grub的方法及GRUB相关配置
2009-08-26 09:34 1565**当我们每次要重装WIN ...
相关推荐
syslog-ng安装包及安装步骤(syslog-ng_3.3.5.tar.gz,eventlog_0.2.12.tar.gz,syslog-ng安装步骤.txt)
syslog-ng-1.6.7rpm安装包和syslog-ng-2.0.10.tar.gz,eventlog_0.2.12.tar.gz源码安装包
syslog-ng-3.8.1.tar.gz syslog-ng-3.8.1.tar.gz syslog-ng-3.8.1.tar.gz syslog-ng-3.8.1.tar.gz
syslog-ng-3.7.3 源码
syslog-ng Docker映像该存储库包含以下Docker映像的源: balabit/syslog-ng :已安装syslog-ng。 它旨在用作系统日志记录服务。弃用的图片该存储库还包含以下图像。 但是,这些图像现在已过时和过时。 您可以在找到...
syslog-ng3.16 的tar包;下载下面这个很慢的可以用我这个。。。 https://github.com/balabit/syslog-ng/releases/download/syslog-ng-3.16.1/syslog-ng-3.16.1.tar.gz
syslog-ng构建日志系统 syslog-ng构建日志系统
syslog-ng的需求包 syslog-ng_3.5.6.tar.gz
syslog-ng_3.3.5.tar.gz
这个笔记是我根据以往的syslog-ng 2.0的方面,更新到syslog-ng 3.5的笔记
syslog-ng-2.0.10.tar.gz,syslog-ng源码,需要的赶快下载。
linux+cacti+syslog-ng+snare实现日志集中管理
系统部署 基本安装说明: 在Ubuntu 16.04上: apt-get install syslog-ng-core git ... 包含syslog-ng configs的文件路径,默认为/ etc / syslog-ng / 0000-options.conf 包含syslog-ng的系统默认选项。 这些基
balagetech-openwrt-syslog-ng-elasticsearch 使用 OpenWRT、Syslog-ng 和 Elasticsearch 监控家庭网络流量 此 repo 包含用于使用 OpenWRT 和 syslog-ng 以及 Elasticsearch Security 监控家庭网络的完整配置。 ...
docker 中的 syslog-ng 将日志写入/var/log/syslog-ng/$PROGRAM/$PROGRAM.log最小 syslog-ng 容器 (18mb)。 暴露的输入: tcp 端口 514 UDP 端口 514 unix socket /var/run/syslog-ng/syslog-ng.sock 用法 在...
主要Syslog-ng日志功能在openwrt系统中是如何配置以及实现的。
linux+cacti+syslog-ng+snare实现日志集中管理
syslog-ng distributed log architecture
syslog-ng配置说明,说明syslog-ng配置文件的使用及其含义
log-ng安装文件