需求:使用shell定制各种个性化告警工具,但需要统一化管理、规范化管理。
我们的机器角色多种多样,但是所有机器上都要部署同样的监控系统,也就说所有机器不管什么角色,整个程序框架都是一致的,不同的地方在于根据不同的角色,定制不同的配置文件。
1. 思路:指定一个脚本包,包含主程序、子程序、配置文件、邮件引擎、输出日志等
主程序:作为整个脚本的入口,是整个系统的命脉
配置文件:是一个控制中心,定义各个子程序的监控开关;并指定应用的各个相关联的日志文件。
子程序:这个才是真正的监控脚本,用来监控各个指标。
邮件引擎:是由一个python程序来实现,它可以定义发邮件的服务器、发邮件人 以及发件人密码
输出日志:整个监控系统要有日志输出。便于调试和排错
2. 程序架构
3. 程序
1)bin/main.sh
#!/bin/bash # 是否发送邮件的开关 # 下面的判断目的是,保证执行脚本的时候我们在bin目录里,不然监控脚本、邮件和日志很有可能找不到 exec 1>>../log/mon.log 2>>../log/err.log # 执行监控web服务器502的子shell |
2) conf/mon.conf
# 定义mysql的服务器地址、端口以及user、password # httpd 如果是1则监控,为0不监控 # php # http_code_502 需要定义访问日志的路径 # request_count 定义日志路径以及域名 |
3) mail/mail.sh
log=$1 #mail.sh的第1个参数 if [ ! -f /tmp/$log ] v=$[$t_s-$t_s2] |
4)shares/load.sh
#! /bin/bash load=`uptime |awk -F ‘average:‘ ‘{print $2}‘|cut -d‘,‘ -f1|sed ‘s/ //g‘ |cut -d. -f1` |
5)shares/502.sh
#! /bin/bash d=`date -d "-1 min" +%H:%M` |
原文:https://www.cnblogs.com/tanzhirong/p/11415583.html