shell-告警系统

本文介绍了一个基于shell的分布式告警系统,系统包括主脚本、配置文件、子程序和邮件引擎。主脚本定义监控目录并设在/usr/local/sbin,配置文件管理开关和日志路径,监控项目存放在shares目录,如load.sh和disk.sh用于监控负载和磁盘使用率。系统强调了在不同角色机器上的通用性,通过定制不同配置文件适应各类需求。
摘要由CSDN通过智能技术生成

shell项目-告警系统

  • 需求背景
    使用shell定制各种个性化告警工具,但需要统一化管理、规范化管理。当zabbix服务器之间因为网络原因而无法上报数据时,就可以先通过shell脚本来暂时监控。

  • 这样的告警系统属于分布式的,需要在每一台机器上去放置该shell脚本,每一台机器都独立监控,不需要依赖其他机器。

  • 思路:指定一个脚本包,其中包含以下内容
    (1)主程序:作为整个脚本的入口,是整个系统的命脉
    (2)配置文件:是一个控制中心,用他来开关各个子进程,指定各个相关联的日志文件
    (3)子程序:这个才是真正的监控脚本,用来监控各个指标
    (4)邮件引擎:是由一个pythen程序来实现,它可以定义发邮件的服务器、发邮件人以及发件人密码。
    (5)输出日志:整个监控系统要有日志输出

  • 要求:机器角色很多种,但是所有机器上都要部署同样的监控系统,也就是说所有的机器不管什么角色,整个程序框架是一致的,不同之处在于根据不同的角色,定制不同的配置文件。

  • 程序框架

    这里写图片描述


告警系统主脚本

  • 先定义各个监控系统的目录,然后再去定义主脚本,因为是分布式的,所以每一台机器都需要这样去做。可以在其他机器上创建那些目录,然后将这台机器上的脚本拷贝过去,并做一些更改。

  • 将脚本全部放在/usr/local/sbin目录下,方便以后的查找。

  • 创建mon目录,并创建bin 、 conf 、shares 、log 、mail这几个子目录。

    -主脚本放在/bin目录下,并写入以下内容

#!/bin/bash
##written by zcy
#是否发送邮件的开关,0为是指不发送
export send=1  //所有的子脚本只是关闭告警,监控还是继续监控
#过滤ip地址
export addr=` /sbin/ifconfig |grep -A1 "ens33: "|awk '/inet/ {print $2}'`
dir=`pwd`
#只需要最后一些目录名
last_dir=`echo 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值