生产环境多台服务器上部署了多个应用,日志出现报错时,无法及时反馈到开发人员。部署一个大型的运维监控应用,不但耗资源,而且配置也不简单。
简简单单写个python脚本来监控服务器日志就简单多了,废话不多说,直接上脚本。
主要逻辑:
1. 使用python的subprocess模块,执行shell命令,“tail -f” 来监听日志文件
2. 对输出的日志文件,逐行比对字符串,如果匹配到预设的字符串则开始记录,keywords中配置需要预设的异常字符串
3. 开始记录日志至数组中,可通过rows来预设记录多少条,达到规定数量后
4. 将日志内容通过http发送给钉钉服务器,钉钉机器人就会在群里通知我们啦
简单,高效,实时
#!/usr/bin/python # encoding=utf-8 # Filename: monitorLog.py import os import signal import subprocess import time import smtplib from email.mime.text import MIMEText from email.header import Header import requests import json import threading serverName="prod:192.168.100.20" #日志文件路径地址 logFiles =[ "/opt/app/mall/mall-admin/logs/mall-admin-0.0.1-SNAPSHOT.log", "/opt/app/mall/mall-portal/logs/mall-portal-0.0.1-SNAPSHOT.log" ]; #机器人回调地址 , 钉钉群里添加一个机器人就可以了 webh