在 *nix 服务器上,我们使用 配置发送日志facility.severity
,其中facility
是系统的(我们称之为)“组件”的名称,例如内核、身份验证等;并且severity
是设施记录的每个日志的“级别”,例如info
(信息)、crit
(关键)日志。
因此,如果我想发送内核关键日志,我将使用kern.crit
.
设施和严重性的组合被称为优先级,例如......
还有所谓的“设施”local0
来local7
。
这些local#
设施到底是什么?我特别询问local6
,因为它通常是我在搜索中找到的最常见的。
我的问题实际上是因为我正在配置 Snort(SourceFire 入侵传感器)来发送日志,所以我想知道facility
使用哪个。不过,我的问题不是 Snort 特定的,因为local#
设施无处不在;例如,在 Cisco 和 IBM 的 WebSphere Application Server 上。
RFC3164
,这是定义系统日志协议的地方,只说:
local6 - local use 6
Run Code Online (Sandbox Code Playgroud)
这并没有真正描述它,而不是:
auth - security/authorization messages
Run Code Online (Sandbox Code Playgroud)在 Ubuntu 中,man syslog
显示:
LOG_LOCAL0 到 LOG_LOCAL7 保留供本地使用
还有,含糊不清。
我有一个包含此文件的文件:
1415602803,LOGIN SUCCESS,AUTH,user2,192.168.203.63,10.146.124.73,59996,22
1415602807,LOGIN SUCCESS,AUTH,user1,172.24.31.10,172.32.1.1,48191,22
1415602811,LOGIN FAILED,AUTH,root,172.24.166.153,10.146.124.73,52506,22
1415602815,LOGIN FAILED,AUTH,user3,192.168.123.55,10.146.32.99,55750,22
Run Code Online (Sandbox Code Playgroud)
我想将时间戳转换为这种格式的日期:
2014-11-10 02:00:03,LOGIN SUCCESS,AUTH,user2,192.168.203.63,10.146.124.73,59996,22
2014-11-10 02:00:07,LOGIN SUCCESS,AUTH,user1,172.24.31.10,172.32.1.1,48191,22
2014-11-10 02:00:11,LOGIN FAILED,AUTH,root,172.24.166.153,10.146.124.73,52506,22
2014-11-10 02:00:15,LOGIN FAILED,AUTH,user3,192.168.123.55,10.146.32.99,55750,22
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我知道这有效:(perl -pe 's/(\d+)/localtime($1)/e'
来自这个问题)但输出格式是Mon Nov 10 02:00:03 2014
.
我知道这个命令可以时间戳转换成我想要的输出:date -d@1415602803 +"%F %H:%M:%S"
,但我不能使它与工作awk
使用system("cmd")
,因为所有的报价和诸如此类的东西。