国内关于Syslog-ng的内容比较少,就是找到了也都是些许的只言片语,或者都仅仅是一些简简单单的配置facility或则和level以及destination等。
这两天碰到一个问题,就是在日志转发时,需要更改收到的日志的facility和level,结果中文文档几乎木有,英文的文档倒是碰到一些,兴奋之余,一打开傻眼了。。。好几个都是问how to change the facility and level的,然后在balabit中看到回复如下:
"Simply because we're not there yet and because I didn't feel it that
important when we implemented the rewrite functionality."。。。
原来还木有实现这个功能啊,直接修改看来是行不通了,然后去下载“syslog-ng-v2.0-guide-admin-en.pdf”学习Syslog-ng的这本书可真是指明灯啊。终于找到解决方案:利用Syslog-ng中的template可以完美解决此问题
实例如下, 比如当我收到facility为local 6,level为debug的日志时,我需要将其facility改为local0, 同时 level 改为info然后存储到本机,实现如下:
filter f_local6 {facility(local6);};
filter f_level {level(debug);};
destination d_template1 {udp('127.0.0.1' port(514) template("<166>$DATE $HOST $MSGHDR$MSG\n"));
};
log { source(src);filter(f_tag_acs);filter(f_local6);destination( d_template1);};
同时发往的目的地服务器(此处问本机127.0.0.1) 也要配置接收log,配置如下:
source src {
file("/proc/kmsg");
unix-stream("/dev/log" max-connections(256));
internal(); };
source s_remote { udp(ip(0.0.0.0) port(514)); };
filter f_facility{ facility (local4 ); };
filter f_level{ level (info ); };
filter f_tag { match('acs') ; };
destination dest{ file('/var/log/filter1.log');};
log {
source(src);
source(s_remote);
filter(f_facility;
filter(f_level);
filter(f_tag);
destination(dest);
};
流程如下:
1. 本机收到属性为local6.debug的日志,
2.发往
d_template1 由于其应用规则为:
{udp('127.0.0.1' port(514) template("<166>$DATE $HOST $MSG\n")); 故将其属性转换为local4.info,同时应用其他规则,
3.将应用新规则的log转发给127.0.0.1,
4.本机的其他过滤器
dest进行接收。
此过程完成也就将log的facility和level修改并存储了。
此处转换的核心是template中的规则,
template("<166>$DATE $HOST $MSG\n"); , 下面进行一个大致的说明:
166 代表的意思是local4.info, 这个是PRI标识,首先请看下表,这是syslog-ng中预定义的。
Numerical Code Facility
0 kernel messages
1 user-level messages
2 mail system
3 system daemons
4 security/authorization messages
5 messages generated internally by syslogd
6 line printer subsystem
7 network news subsystem
8 UUCP subsystem
9 clock daemon
10 security/authorization messages
11 FTP daemon
12 NTP subsystem
13 log audit
14 log alert
15 clock daemon
16-23 locally used facilities (local0-local7)
左边是值,右边是对应的facility,下表的level也是如此。
Numerical Code Severity
0 Emergency: system is unusable
1 Alert: action must be taken immediately
2 Critical: critical conditions
3 Error: error conditions
4 Warning: warning conditions
5 Notice: normal but significant condition
6 Informational: informational messages
7 Debug: debug-level messages
PRI 就等于facility * 8 + level, 166 = local4*8 + info,即166代表local4.info
至于$DATE就比较简单了,代表日期, $MSG代表日志内容, $HOST代表主机。
时间有限,暂时先写到这里吧~~
分享到:
相关推荐
7. **设置开机启动**:为了使syslog-ng在系统启动时自动运行,可以设置其为开机启动服务。 ```bash sudo systemctl enable syslog-ng ``` 8. **测试与监控**:确保syslog-ng正在接收和处理日志,可以通过查看...
syslog-ng是一款强大的日志管理工具,用于收集、解析、过滤和转发来自网络中的系统日志消息。在Linux环境中,syslog-ng扮演着至关重要的角色,帮助管理员监控系统活动,进行故障排查和安全分析。本篇文章将详细介绍...
《syslog-ng 3.8.1:日志管理与分析的强大工具》 syslog-ng是日志管理和分析领域的一款重要软件,版本3.8.1代表了该软件的一个稳定...其丰富的功能和灵活的配置,使其在复杂的信息系统环境中发挥着至关重要的作用。
源码学习过程中,可以关注这些模块的设计思路,理解其核心函数和数据结构,以及如何通过配置文件来定制syslog-ng的行为。 四、syslog-ng应用实践 syslog-ng 3.7.3适用于各种场景,如网络安全监控、系统审计、故障...
6. **安全性**:syslog-ng支持SSL/TLS加密,确保日志在传输过程中的安全性,防止数据被窃取或篡改。 7. **可扩展性**:syslog-ng通过插件机制,可以轻松添加新的日志源、过滤器和目的地,满足不同场景的需求。 在...
在安装和配置syslog-ng 3.3.5时,你需要解压`syslog-ng-3.3.5`这个压缩包,然后按照官方文档或社区教程进行编译和安装。在实际操作中,可能需要根据你的环境调整配置文件(通常是`/etc/syslog-ng.conf`),定义日志...
### Linux 下 cacti + syslog-ng + snare 实现日志集中管理 #### 知识点一:syslog-ng 的作用与安装 - **syslog-ng** 是一个强大的日志管理工具,它允许用户收集、过滤和转发来自不同源的日志消息。 - 在 CentOS ...
在syslog-ng 2.0.10版本中,用户可以找到以下文件: 1. `src/` 目录包含源代码,这是理解syslog-ng工作原理的核心部分,开发者可以通过阅读和调试代码来深入学习其内部机制。 2. `doc/` 目录可能包含相关的文档和...
1. 配置syslog-ng服务器:安装syslog-ng软件,配置其监听端口、日志源和目标,以及日志过滤规则。 2. 配置日志源:在网络设备、服务器和应用上启用syslog,并设置日志发送至syslog-ng服务器。 3. 集成Cacti:安装和...
- **安装glib库**:syslog-ng在编译过程中需要glib库的支持。由于系统自带的版本可能过低,因此需要手动安装高版本的glib。以syslog-ng 3.0.1版本为例,推荐下载glib-2.12.3版本。下载地址为:`...
`mongodb.txt`可能是syslog-ng配置中关于如何连接到MongoDB的详细说明,或者包含了一些示例命令,展示了如何在MongoDB中处理syslog数据。 集成eventlog、syslog-ng和MongoDB的过程大致如下: 1. 配置syslog-ng在...
syslog-ng Docker映像该存储库包含以下Docker映像的源: balabit/syslog-ng :已安装syslog-ng。...更多信息有关如何在Docker和其他与Docker相关的syslog-ng用例中运行中央日志服务器的详细信息,请参阅博客文章。
系统部署 基本安装说明: 在Ubuntu 16.04上: apt-get install syslog-ng-core git ... 包含syslog-ng configs的文件路径,默认为/ etc / syslog-ng / 0000-options.conf 包含syslog-ng的系统默认选项。 这些基
通过上述详细介绍,我们可以看出Syslog-ng在OpenWRT系统中不仅提供了强大的日志管理功能,还支持灵活的配置选项,以满足不同的应用场景需求。这对于提高网络安全、监控系统运行状态等方面具有重要意义。
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 3.7.1作为一款强大的日志管理和数据传输工具,它的灵活性、可扩展性和高性能使其在现代IT环境中具有广泛的应用价值。通过深入理解和有效利用syslog-ng的功能,系统管理员可以更好地管理和利用日志数据,...
这个笔记是我根据以往的syslog-ng 2.0的方面,更新到syslog-ng 3.5的笔记
3. 配置syslog-ng:安装syslog-ng,配置其监听端口和日志接收规则,以及目标存储位置,如日志文件或数据库。 4. 安装Snare:在需要收集日志的Windows机器上安装Snare,配置其发送日志到syslog-ng服务器。 5. 集成...
本文主要介绍如何在CentOS 5.8环境下搭建syslog-ng、Mysql以及phpMyAdmin的集成环境,以实现日志管理和数据库存储。以下是对各个组件的详细说明: 1. **syslog-ng**: syslog-ng是下一代syslog守护进程,它扩展了...