vlambda博客
学习文章列表

爬虫相关日志监控+自动告警

    最近小张的爬虫程序越来越多,可当爬虫程序报错,不能及时的发现,从而造成某些重要信息不能及时获取的问题,更有甚者,遭到领导的批评。于是就在想有没有一种方法,当爬取信息报错的时候,可以通过邮件或者短信的方式及时通知小张呢,于是我进行相关搜索,还真让我找到了^_^。 为了避免大家踩坑以下为自己亲测,其中出现了一些bug的相关解决方法我已做说明,文章最后有我的源代码,如有疑问可进交流群(扫描下方二维码)进行交流。                 

爬虫相关日志监控+自动告警


    该程序使用场景说明:主要用于Linux服务器爬虫程序日志监控,如出现关键字异常则触发相应的动作或告警操作,通知到邮件联系人,让你及时了解到爬虫程序是否正常爬取,也可用于服务器重要日志的监控。

一、安装邮件服务

    安装邮件服务之前首先停用系统自带的邮件服务

systemctl stop sendmail
systemctl disable sendmail
systemctl stop postfix
systemctl disbale postfix
http://www.linuxfromscratch.org/blfs/view/7.6/basicnet/mailx.html

爬虫相关日志监控+自动告警

1、解压

tar -jxf mailx-12.4.tar.bz2 -C /usr/src/ && cd /usr/src/mailx-12.4/

如果报错  tar (child): lbzip2: Cannot exec: No such file or directory 

解决方法:

yum -y install bzip2

2、编译

make install UCBINSTALL=/usr/bin/install


爬虫相关日志监控+自动告警

异常编译报错-1

此时若报“make:***[openssl.o] 错误 1”则进行以下异常报错解决方法:

下载mailx补丁文件“mailx-12.4-openssl_1.0.0_build_fix-1.patch”,将补丁文件和mailx解压缩目录放置同一路径.

wget http://www.linuxfromscratch.org/patches/blfs/7.6/mailx-12.4-openssl_1.0.0_build_fix-1.patch

爬虫相关日志监控+自动告警

执行打补丁命令:

patch -p0 < mailx-12.4-openssl_1.0.0_build_fix-1.patch

爬虫相关日志监控+自动告警

进入mailx-12.4重新执行编译命令:

make install UCBINSTALL=/usr/bin/install

爬虫相关日志监控+自动告警

检测mailx是否安装成功:mailx -V

爬虫相关日志监控+自动告警

3、配置

vim /etc/nail.rc,在文件的最后添加

set from=
set smtp=
set smtp-auth-user=
#不是qq密码。而是授权码
set smtp-auth-password=  
set smtp-auth=login

爬虫相关日志监控+自动告警

4、测试发送邮件

爬虫相关日志监控+自动告警

至此邮件功能测试正常,接下来是关键字监控脚本的编写工作,通过日志关键字脚本触发邮件告警脚本实现日志监控

二、关键字监控脚本开发

CheckLogs.sh 日志监控程序

sendmail.sh 发邮件脚本,该脚本可自定义

conf 配置文件目录,chklist为配置文件

爬虫相关日志监控+自动告警

初次执行CheckLogs.sh脚本会读取日志文件并记录当前读取的行数

爬虫相关日志监控+自动告警

后续运行脚本则读取更新日志,例如当前日志更新了9行数据,则脚本从最新的9行数据获取关键字

爬虫相关日志监控+自动告警

测试插入关键字error

爬虫相关日志监控+自动告警

继续执行脚本可以看到已捕获关键字并触发告警

爬虫相关日志监控+自动告警

测试多关键字

爬虫相关日志监控+自动告警

再次执行可以看到已捕获最新更新的日志信息

爬虫相关日志监控+自动告警

测试频率控制

爬虫相关日志监控+自动告警

至此相关功能测试已完成。

接收到的邮件如下图所示:

爬虫相关日志监控+自动告警

爬虫相关日志监控+自动告警

原文标题: 运维道中道之“Shell脚本日志关键字监控+告警”

如有侵权,请@我进行 删除

爬虫相关日志监控+自动告警

爬虫相关日志监控+自动告警

                                            



往期: