一招搞定错误日志监控

Posted 无量测试之道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一招搞定错误日志监控相关的知识,希望对你有一定的参考价值。

点击上方蓝字,关注:无量测试之道

作者 | 无量测试之道
编辑 | 小 晴

今日主题:使用Shell 脚本快速定位项目工程的错误日志
在工作中,我们会发现,随着需求的不断迭代,项目系统变得越发的复杂,一个项目系统里需要同时部署N个项目工程。
如何快速的去检查当前所有项目工程的日志是否有报错就成了一个棘手的问题。
面对这个问题,我的选择是使用Shell 脚本来实现项目工程的错误日志查找与定位。
以下内容是Shell 脚本的实现内容,每一行都有对应的注释,帮助理解。
   
     
     
   
1root@l-test bin # more check_log.sh #检查一个目录下所有指定日志文件中的报错
2
3日志脚本
4#!/usr/bin/env bash #是对shell的声明
5
6#
定义一个变量,用于指定扫描日志的目录
7base="/home/project" 
8
9#
shell 中无限循环定义
10while [[ 1 ]]; do 
11
12#
for 循环开始遍历目录下的文件,过滤掉default目录
13    for name in `ls $base | grep -vE "default"`;
14
15#
开始执行
16    do 
17
18#
输出目录路径
19        echo $base/$name 
20#判断是否是目录
21        if [[ -d $base/$name ]]; then
22
23#
 获取catalina.out 文件中报Exception|ERROR的日志,过滤掉DEBUG|skywalking|10.8.0.37:8800这三类信息
24            result=`grep -C10 $base/$name/logs/catalina.out | grep -vE "DEBUG|skywalking|10.8.0.37:8800" | grep -C5 -E "Exception|ERROR"` 
25
26#
if 判断如果$result为空
27            if [[ -z "$result" ]]; then
28#继续 
29continue;
30
31#
if 结束符
32            fi 
33
34#
带颜色的输出一行信息,说明是什么目录下有报错
35            echo -e "\n\033[find Exception in $name\033[0m\n\nExcpetion:\n\n$result" 
36#if 结束符
37        fi
38#do 结束符
39    done
40
41#
输出休息一分钟 
42   echo -e "sleep 60 seconds\n"
43#等待一分钟
44    sleep 60s
45#do 结束符
46done
如Shell 脚本在运行过程中遇到任何问题,欢迎在 公众号后台留言 ,或在【 无量测试之道~技术交流群】 提出你的疑问,我们一起参与讨论解决。
如果今天的分享对你有帮助的话,请毫不犹豫:关注、分享、点赞、在看、收藏呀~
你的鼓励将会是我创作的最大动力。

点个赞,点个在看再走吧~~~



以上是关于一招搞定错误日志监控的主要内容,如果未能解决你的问题,请参考以下文章

90行代码,搞定日志监控框架

推荐网言网语架构师:90行代码,搞定你的日志监控框架!

案例 | 如何用监控宝搞定日志监控

如何用12小时,搞定1个通用可扩展的日志监控?| 大厂实践

Vue 一招搞定前端水印开发

四步搞定Zabbix 日志文件监控