![7e79bca99bd868609dcc5db30d1da0a0.png](https://i-blog.csdnimg.cn/blog_migrate/0616320d35b6ede1e72551293ede1bd9.png)
该程序使用场景说明:主要用于Linux服务器监控程序日志,如出现关键字异常则触发相应的动作或告警操作,通知到邮件联系人。
一、安装邮件服务
1、解压
tar -jxf mailx-12.4.tar.bz2 -C /usr/src/ && cd /usr/src/mailx-12.4/
2、编译
make install UCBINSTALL=/usr/bin/install
![ec4d5bf077b307981866e9e50eb58652.png](https://i-blog.csdnimg.cn/blog_migrate/aea76907d788c525a02a1a7cb946f5aa.jpeg)
异常编译报错-1
异常报错解决方法
下载mailx补丁文件“mailx-12.4-openssl_1.0.0_build_fix-1.patch”,将补丁文件和mailx解压缩目录放置同一路径
![38bb83c4134241866e1b814375e089d2.png](https://i-blog.csdnimg.cn/blog_migrate/04762d177aab832701afb8be667cefcf.jpeg)
执行打补丁命令:
patch -p0 < mailx-12.4-openssl_1.0.0_build_fix-1.patch
![5bf007ae937a5d0cf3ed29c88d3d7106.png](https://i-blog.csdnimg.cn/blog_migrate/2bce4427e86092b891d7edb99caacd81.jpeg)
进入mailx-12.4重新执行编译命令:
make install UCBINSTALL=/usr/bin/install
![d01f82ef17a7d3fae96296048c91832d.png](https://i-blog.csdnimg.cn/blog_migrate/4a011f63806e05df4dfbe1db501b6590.jpeg)
检测mailx是否安装成功:mailx -V
![f987acb8a406c2660421b62bf706e72e.png](https://i-blog.csdnimg.cn/blog_migrate/f231283398839e60f73e55d40681118b.jpeg)
3、配置
vi /etc/nail.rc,在文件的最后添加
set from=
set smtp=
set smtp-auth-user=
set smtp-auth-password=
set smtp-auth=login
如下图所示,修改配置完后保存
![af309bd42cb6d732e406250f06020763.png](https://i-blog.csdnimg.cn/blog_migrate/225e73fc98cfefc1d1b712c441808b80.png)
4、测试发送邮件
echo '邮件正文'|mailx -v -s "邮件标题" 邮箱地址
![b90f346dde7b5b77fe602c0ace19c295.png](https://i-blog.csdnimg.cn/blog_migrate/217702b86172c6b4505e5db91691215e.png)
至此邮件功能测试正常,接下来是关键字监控脚本的编写工作,通过日志关键字脚本触发邮件告警脚本实现日志监控
二、关键字监控脚本开发
CheckLogs.sh 日志监控程序
SendMail.sh 发邮件脚本,该脚本可自定义
conf 配置文件目录,chklist为配置文件
![607651c95fec026cf9fd1a9038cefaa8.png](https://i-blog.csdnimg.cn/blog_migrate/bae330f7d34d3651c446c7f770f64f75.jpeg)
初次执行CheckLogs.sh脚本会读取日志文件并记录当前读取的行数
![607651c95fec026cf9fd1a9038cefaa8.png](https://i-blog.csdnimg.cn/blog_migrate/bae330f7d34d3651c446c7f770f64f75.jpeg)
后续运行脚本则读取更新日志,例如当前日志更新了9行数据,则脚本从最新的9行数据获取关键字
![7a5829f149bed49663051fbf65c45b30.png](https://i-blog.csdnimg.cn/blog_migrate/a85fb75b10e57285dc6c94bed9c36236.png)
测试插入关键字error
![ffb83f57197d608bb22a44dea8e9e86e.png](https://i-blog.csdnimg.cn/blog_migrate/0aedf1f9bf9dd24b883b22ba4bdc1be3.png)
继续执行脚本可以看到已捕获关键字并触发告警
![ffb88e37c778478ea2cf54b822d3843f.png](https://i-blog.csdnimg.cn/blog_migrate/f5d221b1a4c321cc5b09011ffd643f28.png)
测试多关键字
![6dbf7692e9c13029b68eeca9bffadc5b.png](https://i-blog.csdnimg.cn/blog_migrate/72e2cecbacc8b21887b0342761d7a2cc.jpeg)
再次执行可以看到已捕获最新更新的日志信息
![45b394e57f65c516c0eb0f763177ee15.png](https://i-blog.csdnimg.cn/blog_migrate/b38f6db5286a1987acb0329c5cc16599.png)
测试频率控制
![c7f3fb2722b0585b3ed42e28447c29d4.png](https://i-blog.csdnimg.cn/blog_migrate/70e8b1e7e69462377f44f89f9ed6bb64.jpeg)
至此相关功能测试已完成。
原文:运维道中道之“Shell脚本日志关键字监控+告警” 作者:大半个程序员
- 升职加薪必备!运维工程师打怪升级进阶成神之路
- 我没有开挂的人生!自律和坚持,是我走IT之路的唯一捷径
- 全网最新、最全Linux面试题(2020版)!
- 史上最全、最新的Redis面试题(2020最新版)!
- 赞!7000 字学习笔记,MySQL 从入门到放弃
如有错误或其它问题,欢迎小伙伴留言评论、指正。如有帮助,欢迎点赞+转发分享。
更多相关开源技术文章,请持续关注民工哥知乎技术专栏。
我是民工哥,一个爱折腾的IT技术老司机,欢迎关注我,我们一起学习,共同成长!!