首页 > 系统相关 >使用PowerShell分析流日志

使用PowerShell分析流日志

时间:2022-12-24 19:31:41浏览次数:39  
标签:分析 Protocol log Get JSON elseif 日志 eq PowerShell

上文中介绍了流日志的一些基本功能和配置方法,最后也看了下流日志的格式,很明显是没办法直接阅读的,一般还是推荐用traffic analytics或者其他企业级的ELK,Splunk之类的进行可视化处理

如果只是自己查一些log的话,其实写个脚本把JSON文件转换成可读性更强的csv就够了,下边分享下自己写的用来转换的脚本

param (
[parameter(Mandatory = $false)]
$NSGLogFilePath = "C:\Users\xy\Downloads\PT1H.json",
[parameter(Mandatory = $false)]
$ExportTo = [Environment]::GetFolderPath("Desktop") + "\" + "NSGLog-" + $(Get-Date -Format "yyyyMMdd-HHmmss") + ".csv"

)

if (!(test-path $NSGLogFilePath)) {
throw "$NSGLogFilePath not exist"
}

$JSON = Get-Content $NSGLogFilePath
$JSON = $JSON | ConvertFrom-Json
$i = 0
[pscustomobject[]]$NSGObjects = $null

foreach ($a in $JSON.records.GetEnumerator()) {
foreach ($b in $a.properties.flows.GetEnumerator()) {

if ($null -ne $b.flows.flowTuples) {
$log = $b.flows.flowTuples.split(",")
$rule = $b.rule
# Protocol
if ($log[5] -eq 'T') {
$Protocol = 'TCP'
}
elseif ($log[5] -eq 'U') {
$Protocol = 'UDP'
}
else {
$Protocol = $log[5]
}

# Traffic Flow
if ($log[6] -eq 'O') {
$Direction = 'Outbound'
}
elseif ($log[6] -eq 'I') {
$Direction = 'Inbound'
}
else {
$Direction = $log[6]
}

# Decision
if ($log[7] -eq 'A') {
$Decision = 'Allow'
}
elseif ($log[7] -eq 'D') {
$Decision = 'Deny'
}
else {
$Decision = $log[7]
}

# Flow state
if ($log[8] -eq 'B') {
$state = 'Begin'
}
elseif ($log[8] -eq 'C') {
$state = 'Continuing '
}
elseif ($log[8] -eq 'E') {
$state = 'End '
}
else {
$state = $log[8]
}

$i++
$NSGObject = New-Object PSObject -Property $([ordered]@{
Timestamp = Get-Date ([timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds($log[0]))) -uformat "%Y-%m-%d %H:%M:%S"
RuleName = $rule
MAC = $a.macAddress
SourceIP = $log[1]
DestinationIP = $log[2]
SourcePort = $log[3]
DestinationPort = $log[4]
Protocol = $Protocol
TrafficFlow = $Direction
TrafficDecision = $Decision
FlowState = $State
PacketsSourcetoDestination = $log[9]
BytesSentSourcetoDestination = $log[10]
PacketsDestinationtoSource = $log[11]
BytesSentDestinationtoSource = $log[12]

})
$NSGObjects += $NSGObject
}


}
}

Write-Output "$(Get-Date) * $i records found"

if ($null -ne $NSGObjects) {
$NSGObjects | Export-Csv -LiteralPath $ExportTo -NoTypeInformation -Force -ErrorAction Stop
Write-Output "$(Get-Date) * Export successfully, Please check $ExportTo"
}
else {
Write-Host "$(Get-Date) * Something wrong" -ForegroundColor Red

}

使用起来也非常简单,直接调用,然后加个JSON文件的路径作为参数就够了

使用PowerShell分析流日志_Cloud

可以看到转换后立马强了N多个档次

使用PowerShell分析流日志_云_02


标签:分析,Protocol,log,Get,JSON,elseif,日志,eq,PowerShell
From: https://blog.51cto.com/mxyit/5967457

相关文章

  • m基于MATLAB的上行链路MIMO关键技术的研究与性能分析
    1.算法概述多输入多输出(MIMO)天线技术的巨大潜力为新一代无线通信技术的研究提供了广阔的舞台。近年来,多用户的MIMO研究逐渐成为热点问题。针对多用户的MIMO,天线选择和用......
  • 基于评论的情绪分析
    一、选题背景由于目前大数据环境,越来越多的数据被可视化,提供给各类对象来分析人们的实践活动,本课题基于对商品的评论的情绪分析,来帮助买家更好的预判客户的喜好,进而达成商......
  • 在Azure中使用流日志(NSG Flow Log)
    流日志是Azure中一项不算偏门,但是也不是很热门的功能,之所以要拿出来介绍下,还是因为实际使用中很多时候确实能帮到一些忙流日志和dataflow之类的东西其实没什么关系,虽然名字......
  • 大数据分析——保险推销用户行为分析
    保险推销用户行为分析一、选题的背景当今社会时代下,人们生活中有时遇到一些意外事故,比如车祸,伤病等,而随之发展起来针对这些意外事故做保护的各种保险产业,应运而生。保险......
  • 恶意软件加密通信概要分析——端口分布、协议分布、恶意软件类型分布,20年的文章
    恶意软件加密通信概要分析主编 • 2020年1月9日上午10:51 • 恶意软件, 网络攻击 • 阅读20800恶意加密流量是当前流量安全检测的难点和难点。机器学习可以......
  • 乐高玩具数据分析
    一、选题的背景(1)为什么要选择此选题? 乐高是一个很受欢迎的玩具积木品牌,它们通常是成套出售的,用来制作特定的物品,每一套都包含许多不同形状、大小和颜色的零件。它是......
  • 大数据分析——电影大热榜
    大数据分析——电影大热榜一、选题的背景随着国家的富强,人们的生活水平也得到提升。在茶余饭后现在人们都喜欢在视频软件上追剧看电影。来打法时间。“爱奇艺”是当下热......
  • Python爬虫——豆果美食菜谱爬取及数据分析
    一、选题的背景中国文化,博大精深,中国美食,也是数不胜数,在我国,不同地域的人,吃的美食也不相同,中国菜系我们统分为川菜、粤菜、东北菜、湘菜、鲁菜、浙菜、湖北菜和清真菜。通......
  • Python网络爬虫——福州小区信息的抓取与数据分析
    一、选题的背景为了能够充分了解福州当地小区的房价信息,并能够充分了解小区的位置,为每个人不同的需求,选择不同价位的房源,并通过其成交量进行参考和选择,以及剩余量爬取的信......
  • 《VR 游戏设计与实现分析》读后随笔
    在游戏进行制作时,最初所制作的游戏是二维游戏,特点便是创建的人物形象是比较抽象和画质较差,随着互联网技术持续发展,三维游戏已经是占据了市场的主导地位,游戏画面制作更加精......