需要一个脚本以将pix/asa登录到csv
题
我正在研究一个项目,将服务器上的各种分析到CSV中。有没有人有一个很好的perl脚本或gawk语句,可以将标准pix/asa登录到csv ...
谢谢。
没有正确的解决方案
其他提示
我帮助编写了一个我无法分享的pix/asa日志的内部解析。例如,我们想为所有与流量相关的消息提供源和目标信息。我们最终制作了一个单独解析每个消息代码的模块。另一个障碍是某些信息等协议名称和 name
声明显示为“别名”,而不是日志中的数字或IP。 CPAN模块Pix :: Walker可以帮助解决这些问题。
如果您想要的只是严重性,代码和消息,您可以使用:
#!/usr/bin/perl
use strict;
if (-e $ARGV[0]) {
open(INFILE,$ARGV[0]);
} else {
die "Cannot open logfile $ARGV[0]\n";
}
foreach my $line (<INFILE>) {
chomp $line;
if (/^%(ASA|PIX)-(\d{1})-(\d{6}): (.*)/) {
print "\"" . $1 . "\",\"" . $2 . "\",\"" . $3 . "\"\n";
}
}
但是,如果这就是您想要的,我建议您将Syslog-ng和MySQL与config类似:
options {
long_hostnames(off);
sync(100);
stats(43200);
use_fqdn(no);
keep_hostname(yes);
owner (nglog);
};
source udpsource { udp(ip(0.0.0.0) port(514));};
parser asa {
csv-parser(colunms("ASA_SEV", "ASA_CODE", "ASA_TXT")
flags(escape-none)
delimiters("-:")
);
};
destination d_sql {
sql(type(mysql)
host("logserver") username("syslog-ng") password("password")
database("logs")
table("ASAlogs")
columns("datetime", "host", "severity", "code", "message")
values("$R_DATE", "$HOST", "$ASA_SEV", "$ASA_CODE", "$ASA_TXT")
indexes("datetime", "host", "severity", "code"));
};
log { source{udpsource};
log {parser(asa); destination(d_sql)};
};
这样,就可以在数据库中运行报告。您也可以在Rails Web前端制作非常简单的php或Ruby。
不隶属于 StackOverflow