2010-12-14 39 views
1

我正在處理一個項目以將各種服務器解析爲csv。有沒有人有一個很好的Perl腳本或gawk語句,可以解析標準的PIX/ASA日誌到CSV ...需要一個腳本來將PIX/ASA日誌格式化爲CSV

謝謝。

+0

發佈一個PIX/ASA日誌示例,這裏的某個人可能會寫幾行Perl將它轉換爲CSV。 – Narveson 2010-12-14 21:34:39

+0

%PIX-7-710001:從192.168.2.10/19067向外部請求的TCP訪問:192.168.2.14/ssh %PIX-7-710005:UDP請求從192.168.1.2/137丟棄到192.168.1.255/netbios -ns %PIX-6-315011:來自外部接口192.168.2.10的SSH會話由用戶「roo 」通過SSH服務器斷開,原因:「TCP連接已關閉」(0x03) %PIX-6-604103:DHCP守護進程接口裏面:授予的地址000c.29e4.ebc3(12.168.1.3) – deFonza 2010-12-20 15:54:54

+0

%PIX-6-605004:拒絕從192.168.2.10/13269到外部的登錄:192.168.2.14/ssh用戶「root」 %PIX-3- 305006:tcp src內的portmap轉換創建失敗:192.168.1.2/2893 dst outside:192.168.2.99/3128 %PIX-3-201008:PIX不允許新連接。 %PIX-3-106011:拒絕入站(無xlate)udp src外部:192.168.2.1/137 dst外部:192.168.2.14/137 – deFonza 2010-12-20 15:56:12

回答

1

我幫助編寫了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)}; 
}; 

這樣它就在數據庫中,您可以從中運行報告。您也可以製作一個非常簡單的PHP或Ruby on Rails Web前端。

相關問題