Articles of syslog ng

匹配syslog-ng中的nxlog中设置的SourceName

这个让我有点疯狂 如何根据程序名来路由syslog-ng收到的nxlog消息? 它应该是自我解释,但它不能正常工作。 这些消息被放到syslog-ng的通用日志文件中,而没有应用过滤。 我使用nxlog发送这样的IIS日志: <Input W3SVC> Module im_file … Exec $SourceName = 'IIS'; … </Input> <Route W3SVC> Path W3SVC => IIS_Syslog </Route> <Output IIS_Syslog> Module om_udp Host xxx Port xxx Exec to_syslog_ietf(); </Output> 这发送到一个syslog-ng服务器应该赶上下面的filter。 filter f_iis { source ('IIS'); }; 或者我试过以下 filter f_iis { program ('IIS'); };

使用相同的IP标记/修改来自不同来源的syslog-ng消息

问候。 首先,感谢您花时间阅读这个问题; 我可怜的英语道歉。 我真的关于syslog-ng,但我做了这个工作,并阅读syslog-ng-ose-admin-guide.pdf,我仍然无法解决我的问题。 这是我的场景:我在一家为客户提供云安全服务的公司工作。 具有使用VMWare ESXi 6.5的虚拟机(VM)的设备作为我们的服务的一部分安装在客户端,如下所述: VMs offering security services with syslog-ng client configuration. Splunk Forwarder (UF) VM with syslog-ng server configuration. VMs running Ubuntu 16.04.02 and syslog-ng version is 3.5 在我们的云端,我们运行Splunk Enterprise来收集/关联/分析日志。 在此设备中,所有VM均使用静态不可路由的IP(172.16.XX)进行configuration,并且具有syslog-ng客户端的VM将所选日志转发到syslog-ng服务器。 UF将这些收集的日志转发给SE。 所有客户都拥有这种configuration。 该设备以每台虚拟机具有的configuration方式进行configuration。 所以,举个例子, 如果VM1具有IP 172.16.1.1,VM2 172.16.1.2,则在客户端cust1中,cust2和cust3 VM1具有相同的IP 172.16.1.1等等。 所以,这是我们的问题:当SE通过UF接收来自VM的日志时,我们无法确定谁是数据拥有者,因为VM在所有客户端拥有相同的IP,所以当我们检查Splunk询问172.16.1.1的数据时,知道结果来自cust1,cust2还是cust3。 事实上,我们相信,结果是一团糟的cust1,cust2和cust3日志。 此外,VM在客户端进行一些检查,因此可以find例如在VM1日志和VM2日志中具有IP 10.10.1.1的PC的条目; 所以如果syslog-ng客户端发送这个日志到syslog-ng服务器,我们怎么知道一个条目是属于VM1日志还是VM2日志呢? 阅读提到的PDF,我发现我们可以用标记来修改syslog-ng消息。 因此,通过正确识别日志的客户,我们认为我们可以修改消息并添加唯一的客户ID,因此客户的日志可以在SE中进行咨询和关联而不会混淆。 但我不知道syslog-ng中的哪些命令/选项/function,我应该使用它来标记客户的日志,如前所述。 所以,这是我的问题:标记一个真正的解决我的问题? 如果是这样,我应该如何在syslog-ngconfiguration中使用标记? […]

使用syslog-ng远程logging多个Apache虚拟主机

我正在运行一些Apache Web服务器,每个服务器上都有4-8个独立的虚拟主机。 我试图设置专用的日志服务器,将每个虚拟主机访问和错误日​​志存储在该虚拟主机的单独目录中。 例如在日志服务器上, /var/log/remove/10.0.0.2/virtualhost1包含access_log和error_log /var/log/remove/10.0.0.2/virtualhost2包含access_log和error_log /var/log/remove/10.0.0.3/virtualhost3包含access_log和error_log 等等… 现在,我已经分裂了主机,但我不知道如何做到另外通过虚拟主机。 以下是日志logging服务器的syslog-ng.conf中的相关行 源r_src {tcp(ip(“0.0.0.0”)port(5140)); }; 目的地r_all {文件(“/ opt / splunk / logs / $ HOST”); }; log {source(r_src); 目的地(r_all); }; 任何帮助,将不胜感激。 谢谢!

syslog-ng不会将pipe道刷新到外部程序

我已经写了一个Python脚本,从syslog-ng获取日志条目,并将它们写入MongoDB(我不能用afmongodb驱动程序来做,因为我需要做一些特殊的处理)。 这是在syslog-ng.conf中的样子: destination d_mongodb_events { program("/home/test/syslog_piper.py" template("$UNIXTIME|$PRIORITY|$FACILITY|$SOURCEIP|$SEQNUM|$PID|$PROGRAM|$MSGONLY\n") flags(no_multi_line) flush_lines(1) flush_timeout(1000) ); }; 这是脚本:(删除逻辑) import sys try: lines = sys.stdin.readlines() for line in lines: # process `line` and save to DB except Exception, e: f = open('/tmp/error.txt','ab') f.write(e) f.close() exit(0) 脚本的作品 – 也就是说,如果我从命令行运行它,它将等待input,并在我按下Ctrl+D立即插入这些行并退出。 使用syslog-ng它是不同的。 条目被传递给脚本,但只有在我停止 syslog-ng守护进程之后。 另外,当syslog-ng运行时,我也看到我的脚本也在运行(在进程列表中)。 我已经尝试设置flush_lines()和flush_timeout() (见上面的configuration),但我不能使syslog-ng刷新其输出。 我的猜测是,我处理pipe道的方式有些问题,但我无法弄清楚。 任何人都可以发现问题吗? 更新 :如果我发送1000条消息,其中一些被推送通过,所以我想有一些缓冲正在进行。 任何人都知道调整哪个设置? 解决scheme :它看起来像Python缓冲大量的input/输出。 […]

几乎将日志从一台服务器复制到另一台服务器

我们在Debian 6.0盒子上有一个身份validation守护进程,每秒以大约4-6行\条目的速度生成日志。 出于法律方面的考虑,这个日志文件必须首先在本地写入磁盘,然后才能将其备份或传输到任何地方。 这些日志每2小时由守护进程本身旋转。 我想实现一个系统,日志input到数据库,并查看到syslog-ng(服务日志logging到syslog-ng,然后syslog-ng写入到数据库和磁盘的条目),但是这被拒绝,如果syslog-ng进程因为什么原因失败了,我们会丢失日志条目。 我一直在用rsync和cron设置来同步每5分钟左右,但接收端显然需要一个rsync的日志的完整副本'比较',真正我想要的是以前的检查。 有没有一种体面的方式,我可以从上次检查后,从日志文件(最好是从远程机器)中获取更改,然后将这些行只写入脚本或直接写入数据库?

系统日志ng前缀< +>我的消息

我正在为syslog-ng消息编写一些parsing逻辑,并且注意到,对于许多命令,syslog-ng在我的大部分消息中都前缀一个<[0-9]+>string。 下面是我运行sudo一个例子: <85>Aug 2 09:42:09 sholsapp-ld sudo: sholsapp : TTY=pts/28 ; PWD=/home/sholsapp ; USER=root ; COMMAND=/bin/ls <85>意义是什么?

syslog-ng无法从ASA捕获系统日志

我的syslog-ng.conf: @version: 3.0 # Default configuration file for syslog-ng. # # For a description of syslog-ng configuration file directives, please read # the syslog-ng Administrator's guide at: # # http://www.balabit.com/dl/html/syslog… # options { flush_lines (0); time_reopen (10); log_fifo_size (10000); use_dns (no); use_fqdn (no); create_dirs (no); keep_hostname (yes); ts_format (rfc3164); }; ###### # sources source s_local […]

如何在syslog-ng中的标签上进行过滤,当它们在处理过程中似乎不可用时?

我很难debugging一个问题,我认为这可能是双重的 – 两个独立的程序出现问题。 主要的问题是,我在Ubuntu 14.04上将nginxlogging到系统日志中,如下所示: access_log syslog:server=unix:/dev/log,tag=nginx,facility=local7,severity=info combined 我希望能够过滤标记为nginx的消息,但没有这样的运气。 filter nginx { facility(local7) and tags("nginx") } 更改和,或工作,或只是删除标签部分,作为设施filter工作正常。 但是,标签filter不会。 所以,我想用loggertesting并设置一个基本的testing: template nginx { template("timestamp=${ISODATE} host=${HOST} tags=${TAGS} msgheader=${MSGHDR} ${MSG}\n"); template-escape(no); }; filter nginx { tags("nginx"); }; destination nginx { file("/tmp/nginx.log" template(nginx)); }; log { source(s_net); filter(nginx); destination(nginx); }; – $ logger -n localhost -P 10001 -t nginx […]

无法在syslog-ng中过滤错误格式的消息

我正在与您联系,关于我在syslog-NG上遇到的问题。 我们的一些设备(主要是HP交换机和SAN)正在发送不遵守系统日志RFC 5424的系统日志消息。 给你几个例子: 如果我嗅探服务器的networking接口,我们可以看到这样的“错误的”消息(正如你所看到的,在PRI之后,我们可以看到PROGRAM,然后时区和字段用逗号隔开,简而言之,混合字段,缺less字段等不是标准的系统日志消息): <190>raslogd: 2017/03/08-16:03:20, [SEC-1203], 53642, WWN 10:00:50:eb:1a:6c:21:38 | FID 128, INFO, cswc-mo8x-SAN01, Login information: Login successful via TELNET/SSH/RSH. IP Addr: 1.2.3.4 因此,我目前无法过滤这些消息。 我试图定义一个常规的filter,并尝试打印字段,如MSGHDR,MSG,PRI等,但看不到任何东西。 只有通过定义外部接口和文件作为输出,没有任何模板,过滤这个消息的唯一方法。 例如,如果我做这样的filter: destination d_INCOMING_ALL { file("/app/syslog-ng/logs/incoming_all.log"); }; log { source(s_EXTERNAL); destination(d_INCOMING_ALL); }; 我可以在日志文件中看到消息,但以某种方式格式化(我想syslog-NG将它们重新格式化): [root@xxxxxxxxxxxx logs]# grep -i cswc incoming_all.log Mar 9 09:44:20 cswc-mo8x-hpsan01 raslogd: 2017/03/09-08:34:50, [SEC-1203], 53647, WWN […]

在solaris服务器上的syslog-ng中configuration“audit”工具?

这是这个问题的后续。 mghocke非常友好,可以帮助我解决这个问题,但这实际上是一个单独的问题,因此需要一个新的职位。 我真的不知道很多有关系统日志,并试图从syslogd转移到syslog-ng。 在Solaris的syslogd中,有一个“审计”工具,您可以在下面看到configuration: local7.debug /var/log/ncolog audit.debug /var/log/ncolog local7.debug @nimitz audit.debug @nimitz 在我的新的syslog-ng.conf中,它是这样configuration的: filter f_local7 { facility (local7); }; filter f_audit { facility (audit); }; … log { source (s_sys); filter (f_local7); destination (d_ncolog); destination (d_nimitz); }; log { source (s_sys); filter (f_audit); destination (d_ncolog); destination (d_nimitz); }; 但syslog-ng不能识别“审计”function。 我环顾了一下,看来“审计”设施是设施13,但是“local13”不起作用。 在syslog-ng中调用的这个设备是什么?