批量收集、分析windows log

目标:使用salt批量收集系统日志时间,并对比分析日志时间之间的差值

1、首先收集windows server系统日志:

本文收集日志参考powershell官方文档:

https://forsenergy.com/zh-cn/windowspowershellhelp/html/defed09e-2acd-4042-bd22-ce4bf92c2f24.htm

现在powershell执行成功后再写成脚本

由于本文只是收集一段时间的日志,所以需要定义范围

PS> $july8 = get-date 2019/07/08    //定义最早时间
PS> $july14 = get-date 2019/07/14   //定义最晚时间
PS> get-eventlog -logname system -after $july8 -before $july14 | where {$_.eventID -eq 1} | Format-List | tee C:\opstools\systemlog.txt

将此写成ps1的脚本,放在linux服务器上,可使用salt分发到不同的windows服务器上进行执行

# pwd       //本文的linux服务器已经安装salt,并且每台windows服务器都安装了salt-million
/srv/salt/zhouzun/copyfile/files   //将ps1文件放在此目录下存放

#vim systemlog.ps1

$july8 = get-date 2019/07/08
$july14 = get-date 2019/07/14 
get-eventlog -logname system -after $july8 -before $july14 | where {$_.eventID -eq 1} | Format-List 

   //此处不在将收集的日志记录保存在windows服务器上,因为直接可以保存在linux服务器上,方便分析

 

2、编辑salt文件,将systemlog.ps1文件分发到各个windows服务器上,并进行收集日志

# pwd
/srv/salt/zhouzun/copyfile       //本目录存放salt配置文件和收集的文件的执行结果

本目录下总共有主要的三个文件,salt配置文件 --> copydir.sls,salt执行正确与否的结果日志 --> result.log;files是用来存放systemlog.ps1的

# vim copydir.sls

copy_dir:
  file.managed:   //文件管理模块
    - name: C:\opstools\systemlog.ps1   //将linux服务器上的system.ps1分发到各windows服务器的C:\opstools目录下
    - source: salt://zhouzun/copyfile/files/systemlog.ps1   //此处表示salt根目录下的目录:zhouzun/copyfile/files的源文件,
  cmd.run:   //脚本执行模块,在windows服务器上各自执行                                       
    - name: powershell.exe C:\opstools\systemlog.ps1   //在windows服务器上执行脚本systemlog.ps1

由于不止一台服务器,所以本文写成for循环进行执行,缺点在于每次只能在一台windows上执行

#vim slog.sh

#!/bin/bash
list="BXVW-APP-20-11 BXVW-APP-20-16 BXVW-APP-20-17 BXVW-APP-20-62 BXVW-APP-20-63 BXVW-APP-20-107 BXVW-APP-20-138"  //服务器列表
for i in $list; do
   salt "$i" state.sls zhouzun.copyfile.copydir &> /tmp/systemlog/$i.log   //先执行salt的配置文件->copydir,此配置文件会分发并执行ps1脚本
   echo "$i is ok"                                               //同时将收集的系统日志保存在以主机名命名的log文件里面
done

执行完脚本后会在/tmpsystemlog/目录下保存日志文件

但是收集的日志信息量大,无法直接进行分析,所以进行抽取

将抽取信息和简化写成for循环脚本

#!/bin/bash
cd /tmp/systemlog   //原始日志文件在此目录中
for i in *.log; do   //编辑.log结尾的日志文件
   grep -A 1 ReplacementStrings $i | xargs echo >/tmp/stxt/$i //查找ReplacementStrings字符串和其下一行,并将多行改成一行存到/tmp/stxt/$i
   sleep 3
   sed -i 's/--/&\n/g' /tmp/stxt/$i
   sleep 3
#  sed -i 's/{//g' /tmp/stxt/$i
#  sed -i 's/}//g' /tmp/stxt/$i
#  sed -i s/[[:space:]]//g /tmp/stxt/$i
#  sed -i s/:/" "/g /tmp/stxt/$i
   sed -i 's/--\|{\|}\|[[:space:]]//g' /tmp/stxt/$i   //将 -- { } 空格  等全部改为kong
   sed -i s/,/" "/g /tmp/stxt/$i    //将 , 改为空格
   sed -i 's/ReplacementStrings:2019-07-[0-9][0-9]T\|2019-07-[0-9][0-9]T//g' /tmp/stxt/$i   //去掉多余字符串
#  sed -i 's/ReplacementStrings:2019-07-[0-9][0-9]T//g' /tmp/stxt/$i
#  sed -i 's/2019-07-[0-9][0-9]T//g' /tmp/stxt/$i
   echo "$i is ok"
done

经过处理后的日志形式

# cat BXVW-APP-20-11.log | awk -F "." '{print ($2-$4)}'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/hanshanxiaoheshang/p/11192125.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值