salt收集windows服务器日志时间
定义收集时间区间: time.ps1
$a = get-date
$b = $a.adddays(-)
$c = $b.tostring('yyyy-MM-dd')
$d = get-date -format 'yyyy-MM-dd'
$x = 'T00:00:00'
$y = 'T23:59:00'
$A = $c+$x
$B = $d+$y
} | Format-List
使用salt分发time.ps1文件到各Windows sever中:copydir.sls
copy_dir:
file.managed:
- name: C:\opstools\time.ps1
- source: salt://zhouz/time.ps1
- makedirs: 'True'
cmd.run:
- name: powershell.exe C:\opstools\time.ps1
使用脚本收集日志并分析
#!/bin/bash
#
fdir="/tmp/first"
sdir="/tmp/second"
tdir="/tmp/third"
fodir="/tmp/forth"
ColLogs() {
echo "收集原始系统日志:"
[ -d $fdir ] && rm -rf $fdir && mkdir $fdir || mkdir $fdir
#weblist=`salt "主机名" test.ping | grep -v "True" | awk -F ':' '{print $1}'`
#list="`salt "主机名" test.ping | grep -v "True" | awk -F ':' '{print $1}' | xargs echo`"
list="`salt "主机名" test.ping | grep -v "True" | xargs echo | sed "s/://g"`"
for i in $list; do
salt "$i" state.sls zhouz.copydir &> $fdir/$i
echo "$i is ok"
done
}
TreatLogsA() {
echo "整理初始化日志(为对比天、小时、分钟、秒钟等字符串是否一致做准备):"
[ -d $tdir ] && rm -rf $tdir && mkdir $tdir || mkdir $tdir
cd $fdir
for i in $(ls BX*); do
grep -A ReplacementStrings $i | xargs echo >$tdir/$i
cd $tdir
sed -i 's/--/&\n/g' $i
sed -i 's/--\|{\|}\|[[:space:]]//g' $i
#sed -i 's/,/ /g' $i
sed -i 's/,/\./g' $i
sed -i 's/Z//g' $i
#sed -i 's/\./:/g' $i
sed -i 's/ReplacementStrings://g' $i
#sed -i 's/T/:/g' $i
#sed -i 's/2019-07-[0-9][0-9]T//g' $i
#sed -i 's/\.[0-9]\{4,10\}Z//g' $i
echo "$i is ok"
cd $fdir
done
}
TreatLogsB() {
echo "对收集的初始系统日志进行整理(为对比 毫秒差值 做准备):"
[ -d $sdir ] && rm -rf $sdir && mkdir $sdir || mkdir $sdir
cd $fdir
for i in $(ls BX*); do
grep -A "ReplacementStrings" $i | xargs echo >$sdir/$i
cd $sdir
sed -i 's/--/&\n/g' $i
sed -i 's/--\|{\|}\|[[:space:]]\|Z//g' $i
sed -i 's/,/:/g' $i
sed -i 's/\,\ 1//g' $i
# sed -i 's/\./:/g' $i 此处将 . 去掉
sed -i 's/\.//g' $i
sed -i 's/ReplacementStrings://g' $i
sed -i 's/T/:/g' $i
# sed -i 's/2019-07-[0-9][0-9]T//g' $i
echo "$i is ok"
cd $fdir
done
}
TreatLogsC() {
echo "对收集的初始系统日志进行整理(为对比 秒差值 做准备):"
[ -d $fodir ] && rm -rf $fodir && mkdir $fodir || mkdir $fodir
cd $fdir
for i in $(ls BX*); do
grep -A ReplacementStrings $i | xargs echo >$fodir/$i
cd $fodir
sed -i 's/--/&\n/g' $i
sed -i 's/--\|{\|}\|[[:space:]]\|Z//g' $i
sed -i 's/,/:/g' $i
sed -i 's/\./:/g' $i
#sed -i 's/\.//g' $i
sed -i 's/ReplacementStrings://g' $i
sed -i 's/T/:/g' $i
#sed -i 's/2019-07-[0-9][0-9]T//g' $i
echo "$i is ok"
cd $fdir
done
}
LogsDay() {
echo "对比两列数据中秒钟是否一致:"
cd $fodir
mkdir $fodir/dtime &>/dev/null
for i in $(ls BX*); do
#cat $i | awk -F ":" '{print $1,":"$2,":"$3,($4-$9)}' >$fodir/dtime/$i
cat $i | awk -F ":" '{print ($4-$9)}' >$fodir/dtime/$i
cd $fodir/dtime
#count=`grep -E -v "0|1" $i | wc -l`
count=`grep -E -v " $i | wc -l`
]; then
echo "$i have problem"
grep -v ' $i
else
echo "$i is ok"
fi
cd $fodir
done
}
DisTimePeriodA() {
echo "对比天、小时、分钟、秒钟等字符串是否一致(批量)"
cd $tdir
mkdir $tdir/dtime &>/dev/null
read_file='BX*'
for file in ${read_file}; do
echo "$file"
;i<=$(cat $file| wc -l);i++)); do
#first="$(sed -n ${i}p $file| awk '{print $1}')"
first="$(sed -n ${i}p $file| awk -F "." '{print $1}')"
#second="$(sed -n ${i}p $file | awk '{print $2}')"
second="$(sed -n ${i}p $file | awk -F "." '{print $3}')"
#echo "${first}"
#echo "${second}"
if [ "${first}" == "${second}" ]; then
echo "${first} = ${second}" &>/dev/null
else
A="$(grep $first $file)"
#B="$(grep $second $file)"
#echo " ${first} != ${second}"
echo " ${A}"
fi
done
echo " "
done
}
DisTimePeriodB() {
echo "对比天、小时、分钟、秒钟等字符串是否一致(只查询有问题的主机)"
cd $tdir
mkdir $tdir/dtime &>/dev/null
#read_file='BX*'
#for file in ${read_file}; do
read -p "请输入有问题的主机名: " file
echo "$file" >>$tdir/dtime/$file
;i<=$(cat $file| wc -l);i++)); do
#first="$(sed -n ${i}p $file| awk '{print $1}')"
first="$(sed -n ${i}p $file| awk -F "." '{print $1}')"
#second="$(sed -n ${i}p $file | awk '{print $2}')"
second="$(sed -n ${i}p $file | awk -F "." '{print $3}')"
if [ "${first}" == "${second}" ]; then
echo "${first} = ${second}" &>/dev/null
else
#echo " ${first} != ${second}" >>$tdir/dtime/$file
A="$(grep $first $file)"
echo " ${A}"
fi
# echo " " >>$tdir/dtime/$file
done
#done
}
LogsMillisecond() {
echo "对比两列数据中 毫秒 是否一致:"
cd $sdir
mkdir $sdir/mtime &>/dev/null
for i in $(ls BX*); do
cat $i | awk -F ":" '{print $1,":"$2,":"$3,($4-$8)}' | sort -t $' ' -k4 -n >$sdir/mtime/$i
cd $sdir/mtime
echo "=================================================="
echo "$i 两列毫秒为正数的数值最高的10个"
cat $i |tail
#echo "=================================================="
#echo "$i 两列毫秒为正数的数值最小的10个"
#cat $i |grep -v
echo "=================================================="
echo "$i 两列毫秒为负数的数值最大的10个"
cat $i |grep '\-[0-9][0-9][0-9][0-9]' | head
#echo "=================================================="
#echo "$i 两列毫秒为负数的数值最小的10个"
#cat $i |grep '\-[0-9][0-9][0-9][0-9]' | tail
cd $sdir
done
}
#ColLogs
a="ColLogs"
b="TreatLogsA"
c="TreatLogsB"
d="TreatLogsC"
e="LogsDay"
f="DisTimePeriodA"
g="DisTimePeriodB"
h="LogsMillisecond"
echo "请选择你想要执行的功能:
a: ColLog 收集windows server初始日志;
b: TreatLogsA 整理初始化日志(为对比天、小时、分钟、秒钟等字符串是否一致做准备);
c: TreatLogsB 整理初始化日志(为对比 毫秒 差值做准备);
d: TreatLogsC 整理初始化日志(为对比 秒 差值做准备);
e: LogsDay 对比两列数据中<< 秒 >>是否一致;
f: DisTimePeriodA 对比天、小时、分钟、秒钟等字符串是否一致(批量显示);
g: DisTimePeriodB 对比天、小时、分钟、秒钟等字符串是否一致(只查询有问题的主机);
h: LogsMillisecond 对比两列数据中<< 毫秒 >>是否一致."
read -n3 -p "请输入:" opt
case $opt in
a)
$a ;;
b)
$b ;;
c)
$c ;;
d)
$d ;;
e)
$e ;;
f)
$f ;;
g)
$g ;;
h)
$h ;;
*)
echo "No opt"
exit
esac
待补充
salt收集windows服务器日志时间的更多相关文章
- ELK收集windows服务器日志笔记
一.软件版本 1.jdk-8u211-linux-x64.rpm 2.elasticsearch-6.8.1.rpm 3.logstash-6.8.1.rpm 4.kibana-6.8.1-x86_6 ...
- 案例:使用logstash收集游戏服务器日志,输出到kafka消息队列中,然后存入ES
gamelogs2kafka.conf input { file { codec => plain { charset => "UTF-8" } path => ...
- 如何查看Windows服务器运行了多长时间
前言:有时候管理.维护Windows服务器需要定期重启服务器(为什么需要重启,你懂的),但是这个"定期"有时候会受很多因素影响,例如某台服务器忘了重启:某台服务器那个时间段业务繁忙 ...
- Syslog和Windows事件日志收集
Syslog和Windows事件日志收集 EventLog Analyzer从分布式Windows设备收集事件日志,或从分布式Linux和UNIX设备.交换机和路由器(Cisco)收集syslog.事 ...
- elk收集windows日志
参考网站:https://www.secpulse.com/archives/55636.html https://blog.csdn.net/qq_38094271/article/details/ ...
- Tomcat在windows服务器下,将tomcat控制台日志记录到日志文件中
Tomcat在windows服务器下,将tomcat控制台日志记录到日志文件中 在Linux系统中,Tomcat 启动后默认将很多信息都写入到 catalina.out 文件中,我们可以通过tail ...
- 关于windows服务器的Security安全类日志的导出
对于windows服务器,日志的分类会有很多,可以通过wevtutil el 列出 有时可能会对Security安全类日志进行审计,这里简单讲一下安全类日志的导出方法 1.直接在cmd中执行 wevt ...
- 12G服务器在BIOS中收集阵列卡日志(TTY日志)的方法
如果系统进不去.请参考如下方法收集日志. 请准备个U 盘,容量在8G以下(含8G),否则会识别不到. 图片参考,以描述为准 F2 enter BIOS option--> Enter the ...
- ELK收集Nginx自定义日志格式输出
1.ELK收集日志的有两种常用的方式: 1.1:不修改源日志格式,简单的说就是在logstash中转通过 grok方式进行过滤处理,将原始无规则的日志转换为规则日志(Logstash自定义日志格式) ...
随机推荐
- PAT Basic 1063 计算谱半径 (20 分)
在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的特征值 { , },它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模. 现在给定一些复数空间的特征 ...
- React 入门与实战-课时7 虚拟DOM的本质和目的
DOM树的概念: 一个网页呈现的过程: 1.浏览器请求服务器获取页面HTML代码 2.浏览器先在内存中,解析DOM结构,并在浏览器内存中,渲染出一颗DOM树: 3.浏览器把DOM树,呈现到页面上: R ...
- dockerfile-maven plugin自动镜像制作并发布
环境准备:win10+docker 1.打开hyper-v 2.下载最新版本docker:https://store.docker.com/editions/community/docker-ce-d ...
- Qt 窗体增加滚动条
//滚动区域 m_ScrollArea = new QScrollArea(parentWidget()); m_ScrollArea->setGeometry(, , , ); //垂直滚动条 ...
- Redis:Linux环境部署Redis(1)
简介 1.介绍 Redis是开源的(BSD许可)内存数据结构存储,用作数据库,缓存和消息代理.它支持数据结构,例如 字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,带有半径查询的流空间索 ...
- 【leetcode】1288. Remove Covered Intervals
题目如下: Given a list of intervals, remove all intervals that are covered by another interval in the li ...
- js中Ajax工作原理(转)
在写这篇文章之前,曾经写过一篇关于AJAX技术的随笔,不过涉及到的方面很窄,对AJAX技术的背景.原理.优缺点等各个方面都很少涉及null.这次写这篇文章的背景是因为公司需要对内部程序员做一个培训.项 ...
- 用php把excel数据导入数据库
PHPExcel是一个PHP类库,用来帮助我们简单.高效实现从Excel读取Excel的数据和导出数据到Excel. 先下载PHPExcel类库· 读取文件源码: <?php header(&q ...
- HGOI 20191106 题解
Problem A 旅行者 有$n$种转移装置,每种转移装置本质相同,每种装置可以前进$a_i$单位,但只有$b_i$个. 从初始坐标为$0$出发,途中不能经过$c_1,c2,...,c_m$中的任 ...
- UOJ社区版安装多个Judger
目录 声明 在同一台机器上安装 在不同机子上安装 声明 本文档非官方文档,为我试坑的经验总结. 本文编写时间 2019.11.04 ,并不一定会随UOJ更新而更新. 由于UOJ需要用SVN传题,并不那 ...