博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
批量收集、分析windows log
阅读量:5113 次
发布时间:2019-06-13

本文共 2749 字,大约阅读时间需要 9 分钟。

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

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

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

现在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/bashlist="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/bashcd /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

你可能感兴趣的文章
收集Android程序测试代码覆盖率
查看>>
代码规范 任重而道远
查看>>
brew 安装PHP的配置文件所在位置
查看>>
iOS开发之UITextView,设置textView的行间距及placeholder
查看>>
zen cart 清空 批量删除所有商品
查看>>
数据结构实验之数组三:快速转置(SDUT 3347)
查看>>
SSM文件上传
查看>>
Json数据格式
查看>>
WebLogic和Tomcat的区别
查看>>
作业6--学生成绩录入系统
查看>>
Android 中颜色对应的值
查看>>
silverlight 调用默认打印机
查看>>
百度地图是用过程笔记
查看>>
深度学习 神经网络 中文 入门 书籍 课程 推荐 (附 免费 下载 链接)
查看>>
PHP配置开发环境
查看>>
HDU4027 - Can you answer these queries? (线段树)
查看>>
机器学习之使用贝叶斯算法实现拼写检查器
查看>>
机器学习之贝叶斯算法
查看>>
MEF入门之不求甚解,但力求简单能讲明白(四)
查看>>
Oracle Restart能够用来给Oracle GoldenGate 做 High Availability 使用么?
查看>>