pix/asaログにcsvにフォーマットするスクリプトが必要です
質問
サーバー上のさまざまなプロジェクトをCSVに解析するプロジェクトを努めています。標準のPIX/ASAログをCSVに解析できる優れたPerlスクリプトまたはGawkステートメントを持っている人はいますか...
ありがとう。
正しい解決策はありません
他のヒント
私は共有できない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を使用することをお勧めします:
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