`
can_do
  • 浏览: 248755 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Do家】Linux下监控日志提取特征数据并邮件报警

阅读更多
#!/bin/bash
#receiver mail list
export receiver_mail_address=you@cnd.com,me@cnd.com,him@cnd.com

#application log file location
export applicaton_log_8081=/data/log/tomcat_logs8081/web_error.log
export applicaton_log_8088=/data/log/tomcat_logs8088/web_error.log
export collect_error_log_8081=/data/log/tomcat_logs8081/collect_error
export collect_error_log_8088=/data/log/tomcat_logs8088/collect_error

export mail_content_file=/root/can_do/mail_log.txt

export line_switch_char="<br>"
export env_identifier="Product"

export keyword4app_exception="com.cnd.base.handle.ExceptionHandle"
export keyword4sql_exception="nested exception is com.mysql.jdbc."
export keyword4jdk_exception="java.*.Exception"

# Note how an string variable is applcation to grep statement
export error_num4app_8081=`grep "$keyword4app_exception" ${applicaton_log_8081} |wc -l`
export error_num4sql_8081=`grep "$keyword4sql_exception" ${applicaton_log_8081} |wc -l`
export error_num4jdkexception_8081=`grep "$keyword4jdk_exception" ${applicaton_log_8081} |wc -l`
export error_num4app_8088=`grep "$keyword4app_exception" ${applicaton_log_8088} |wc -l`
export error_num4sql_8088=`grep "$keyword4sql_exception" ${applicaton_log_8088} |wc -l`
export error_num4jdkexception_8088=`grep "$keyword4jdk_exception" ${applicaton_log_8088} |wc -l`

#this operation is overriding
echo "【${env_identifier}】${line_switch_char}" > ${mail_content_file}
#this operation is appending

# decide whether app log 8081 has error or not
if [ ${error_num4app_8081} -gt 0 ] || [ ${error_num4sql_8081} -gt 0 ] || [ ${error_num4jdkexception_8081} -gt 0 ] 
then  
   echo "The application ${applicaton_log_8081} has $[${error_num4app_8081}+${error_num4sql_8081}+${error_num4jdkexception_8081}]  errors.${line_switch_char} The detail error as the following:${line_switch_char}" >> ${mail_content_file}
   if [ ${error_num4app_8081} -gt 0 ]
     then 
       grep "$keyword4app_exception" ${applicaton_log_8081} -A 5 >> ${mail_content_file}
   fi
   if [ ${error_num4sql_8081} -gt 0 ]
     then
       grep "$keyword4sql_exception" ${applicaton_log_8081} -A 5 >> ${mail_content_file}
   fi
   if [ ${error_num4jdkexception_8081} -gt 0 ]
     then
       grep "$keyword4jdk_exception" ${applicaton_log_8081} -A 5 >> ${mail_content_file}
   fi
   cp ${applicaton_log_8081} ${collect_error_log_8081}/web_error_`date +%Y%m%d_%H%M`.log
   echo "" > ${applicaton_log_8081}
fi

# decide whether app log 8088 has error or not
if [ ${error_num4app_8088} -gt 0 ] || [ ${error_num4sql_8088} -gt 0 ] || [ ${error_num4jdkexception_8088} -gt 0 ] 
then  
   echo "The application ${applicaton_log_8088} has $[${error_num4app_8088}+${error_num4sql_8088}+${error_num4jdkexception_8088}]  errors.${line_switch_char} The detail error as the following:${line_switch_char}" >> ${mail_content_file}
   if [ ${error_num4app_8088} -gt 0 ]
     then
       grep "$keyword4app_exception" ${applicaton_log_8088} -A 5 >> ${mail_content_file}
   fi
   if [ ${error_num4sql_8088} -gt 0 ]
     then
       grep "$keyword4sql_exception" ${applicaton_log_8088} -A 5 >> ${mail_content_file}
   fi
   if [ ${error_num4jdkexception_8088} -gt 0 ]
     then
       grep "$keyword4jdk_exception" ${applicaton_log_8088} -A 5 >> ${mail_content_file}
   fi
   cp ${applicaton_log_8088} ${collect_error_log_8088}/web_error_`date +%Y%m%d_%H%M`.log
   echo "" > ${applicaton_log_8088}
fi
# decide whether send mail to monitor or not
if [ ${error_num4app_8081} -gt 0 ] || [ ${error_num4app_8088} -gt 0 ] || [ ${error_num4sql_8081} -gt 0 ] || [ ${error_num4sql_8088} -gt 0 ] || [ ${error_num4jdkexception_8081} -gt 0 ] || [ ${error_num4jdkexception_8088} -gt 0 ]
then
  mail -s "System Monitor Log" ${receiver_mail_address}  < ${mail_content_file}
fi
#放在crontab执行以上命令脚本
#*/5 *  * * * /root/can_do/monitorApplicationAccessLog.sh



【温馨提示】
如果您觉得满意,可以选择支持下,您的支持是我最大的动力:

分享到:
评论

相关推荐

    图像的SIFT特征提取和配准MATLAB仿真,含仿真操作录像

    2.领域:SIFT特征提取和配准 3.内容:图像的SIFT特征提取和配准MATLAB仿真。 [frames1,descr1,gss1,dogss1] = do_sift( I1, 'Verbosity', 1, 'NumOctaves', 4, 'Threshold', 0.1/3/2 ) ; %0.04/3/2 [frames2,descr2...

    基于嵌入式Linux和GPRS的移动互联网远程监控系统

    基于嵌入式Linux和GPRS的移动互联网远程监控系统

    在linux系统下ftp的配置与实现.do

    在linux系统下ftp的配置与实现.do

    MATLAB_论文图片数据提取_论文曲线数据提取

    本程序可对论文/产品手册等资料中的各类曲线图片实现数据的提取与复原。不仅使用于包含单色单曲线的图片,亦可提取多色多曲线图片中任意曲线上的数据。 使用时,首先对图片坐标轴四点进行定位,随后按照提示进行操作...

    linux C编程实战

     1.5 Linux下程序的开发环境和开发过程   1.6 习题   第2章 C编程基础、Vi和Emacs编辑器   2.1 C程序的结构   2.2 C语言的基本数据类型   2.2.1 整型   2.2.2 浮点型   2.2.3 字符型   2.3...

    在linux中实现一个命令执行程序doit

    在linux中实现一个命令执行程序doit,它执行命令行参数中的命令,之后统计 1)命令执行占用的CPU时间(包括用户态和系统态时间,以毫秒为单位), 2)命令执行的时间, 3)进程被抢占的次数, 4)进程主动放弃CPU的...

    linux内核 do_fork 函数源代码浅析

    linux内核 do_fork 函数源代码浅析。 经典讲解!

    SIFT特征提取程序

    尺度不变性的sift特征提取和匹配算法的程序,在LINUX下实现,效果不错,匹配效果好

    linux下python使用sendmail发送邮件

    使用linux下的sendmail程序来发送邮件,利用popen函数(python docs关于popen函数)可以直接调用linux系统程序,需要指定程序所在的位置。 python代码: #!/usr/bin/python # -*- coding: UTF-8 -*- #Author: ...

    嵌入式Linux C编程入门(第2版) PPT

    2.1 嵌入式linux下c语言概述 32 2.1.1 c语言简史 33 2.1.2 c语言特点 33 2.1.3 嵌入式linux c语言编程环境 34 2.2 嵌入式linux编辑器vi的使用 35 2.2.1 vi的基本模式 35 2.2.2 vi的基本操作 36 ...

    活动日志监控log-monitor.zip

    log-monitor 基于tail命令一个活动日志监控。使用示例:Just remember that when you call the start method, do not forget to call wait method. $reader = new \Jenner\LogMonitor\Reader\...

    Shell脚本监控服务器在线状态和邮件报警的方法

    对于服务器来说在线率很重要,出现问题要能及时解决,但系统管理员不能一直守在电脑旁边,通过脚本监控网站出现问题及时通过mail通知管理员,如果是139邮箱还可免费手机短信通知。注:通过系统直接发送mail容易被...

    心电信号基于matlab心电信号特征提取+分析处理【含Matlab源码 289期】.zip

    CSDN海神之光上传的代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,...

    基于MODIS数据的积雪提取算法的研究

    基于MODIS数据的积雪提取算法的研究,郭利利 ,雷军,通过对雪的波普特征分析,利用2008年1月湖南地区的MODIS数据资料,在前人所做研究工作的基础上,本文提出利用归一化差值积雪指数NDSI

    简历关键数据提取器

    简历关键数据提取器 批处理代码 setlocal enabledelayedexpansion ::echo. &gt;p.txt ::取目录名 for %%i in ("%cd%") do set person=%%~ni echo name age name2 id mail phone &gt;%person%.txt cd. &gt;p.txt for /f ...

    横河报警特注功能技术方案.pdf

    横河报警特注功能技术方案pdf,系统采用基于以太网的分布式架构,主要由MX100 数据采集器(AI 和DO 模块)、服务器、客户端以及报警装置构成。MX100 数据采集器和服务器以有线的方式接入网络,构成高速稳定的数据采集...

    wpxtkkak.zip_doa kalman_kalman doa_端元提取

    music高阶谱分析算法,各种kalman滤波器的设计,包含收发两个客户端的链路级通信程序,包含特征值与特征向量的提取、训练样本以及最后的识别,通过虚拟阵元进行DOA估计。

    unicontent:Python模块从URL,ISBN或DOI中提取结构化元数据

    目标是规范化元数据并提供易于使用的提取器。 给定一个标识符(URL,DOI,ISBN),unicontent可以检索有关相应对象的结构化数据。 用法 如果要提取带有任何类型标识符的元数据,则这是基本用法。 unicontent将检测...

    Linux块设备驱动程序讲解与实验

    Linux块设备驱动基本程序 自己实现bio操作 分区实验与改进测试

Global site tag (gtag.js) - Google Analytics