博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
性能监控之日志监控部分
阅读量:5934 次
发布时间:2019-06-19

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

这部分是以oralce的alert日志为例可以监控你想要监控的日志,用日志的完整路径替换oralce的日志路径就可以了

#!/bin/bash  

rm  /export/home/monitorsh/alertcom.log

#SERVERNAME  

SERVERNAME=$(uname -a | awk '{ print $2}')

filename="/export/home/monitorsh/"$SERVERNAME"_DBSERVERLOGMONITOR.sql"

echo "connect user/password" >>${filename}

#要监控的日志,只对变化部分,写入记录,如果需要全文扫描,去掉下面nl和comm行,直接用要扫描的日志文件的绝对路径和文件名替换 alertcom1.log文件,sed行的替换就可以了,注意将文件中的特殊字符转换一下,否则可能出错;首次执行可能因为无历史文件参考而出错,第二 次执行则不会出错

#给日志文件加行标便于比较

nl /export/home/
oracle
/admin/orcl/bdump/alert_orcl.log > /export/home/monitorsh/alertnew.log

#比较新日志和上一次统计时的日志,取出差异部分放入 alertcom1.log

comm -23 /export/home/monitorsh/alertnew.log /export/home/monitorsh/alertold.log> /export/home/monitorsh/alertcom1.log

#去掉文件中的特殊字符,图书字符在搜索关键字是可能会导致异常

sed "s/\'/\'\'\'\'/" /export/home/monitorsh/alertcom1.log  >/export/home/monitorsh/alertcom.log

linkstring=$(echo "'||chr(13)||chr(10)||'")

while read line

do       

   keyword=$(echo ${line} | awk '{print $2}')

   while read line2

   do       

   #在文档中搜索关键字

     keyline=$(echo ${line2} | grep ${keyword} | grep -v grep) 

     line2num=$(echo ${line2} | awk '{print $1}')

     if [ -z "${keyline}" ]

     then   

       echo "OK" >>/export/home/monitorsh/sql/getlog.log

     else  

       LogContent1=$(echo ${line2})

#获得关键字所在行的行标和行内容

       LogContent=$line2num"|""""$LogContent1"""

       echo "insert into TAB_DBSERVERLOGMONITOR values ("$line2num","$SERVERNAME",'"$keyword"','"$LogContent"','o
rac
le',to_char(sysdate,'yyyymmddhh24miss'),to_char(sysdate,'yyyymmddhh24miss'));" >>${filename}

       echo "commit;"  >>${filename}

     fi

   done < /export/home/monitorsh/alertcom.log 

done < /export/home/monitorsh/keyword.conf

rm  /export/home/monitorsh/alertold.log 

mv  /export/home/monitorsh/alertnew.log /export/home/monitorsh/alertold.log


filename=$SERVERNAME"_DBSERVERLOGMONITOR.sql"


ftp -i -n 10.43.94.15 <<!

user user password

cd /export/home/monitorsh/sql

lcd /export/home/monitorsh

binary

prompt

put ${filename}

bye

!


关键字定义文档keyword.conf文件格式:

1 down

2 fail

3 notification
本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/794582,如需转载请自行联系原作者
你可能感兴趣的文章
SEO禁用蜘蛛(爬虫)搜索收录网页(全)
查看>>
python 判断文件、文件夹是否存在
查看>>
nginx+php
查看>>
phpcms v9 上传附件路径设置
查看>>
关于数据库关闭的问题
查看>>
[解决方案]处理UIScrollView滑动与左右侧栏UIPanGestureRecognizer手势冲突
查看>>
PHP中max_input_nesting_level、max_input_vars的坑
查看>>
我的友情链接
查看>>
React 16 Jest如何进行异步程序测试
查看>>
Yii2语言国际化配置
查看>>
redis集群调试1
查看>>
samba的安装
查看>>
谈谈oracle的schema
查看>>
编程字体
查看>>
/etc/udev/rules.d/70-persistent-net.rules
查看>>
我的友情链接
查看>>
部署Orchester 2012 R2
查看>>
Windows Server 2008 R2 防火墙详解(1)
查看>>
Centos 7.5 部署DNS
查看>>
yum简介
查看>>