모니터링 시스템 스 크 립 트 실행

전에 zabbix 를 할 때 mail. py 스 크 립 트 를 한 적 이 있 기 때문에 여기 서 mail 디 렉 터 리 에 직접 복사 하면 됩 니 다. 하지만 경고 메 일 엔진 의 핵심, conf 메 인 설정 파일 이 모두 mail. sh 로 호출 되 었 기 때문에 mail. py 를 호출 하 는 sh 스 크 립 트 mail. sh 의 목적 은 경고 수렴 을 하 는 것 입 니 다. 경고 수렴 을 하지 않 으 려 면 문 제 를 발견 할 때 직접 경고 하면 됩 니 다. 하지만...1 분 전에 문 제 를 발견 하고 1 분 후에 가구 문제 가 해결 되면 오보 가 될 수 있 습 니 다. 그러면 수렴 의 목적 은 1 분 전에 문 제 를 발견 한 다음 에 10 분 후에 서비스 가 회복 되 지 않 으 면 관리자 에 게 10 분 동안 서비스 가 회복 되 지 않 았 다 고 알려 주 는 것 입 니 다.
#!/bin/bahs
log=$1   
t_s=`date +%s`
t_s2=`date -d "2 hours ago" +%s` #定义2个小时前的时间戳
#日志不存在就创建日志
if [ ! -f /tmp/$log ]
then
echo $t_s2 > /tmp/$log
fi
#下面这段,等同于一个计时器
t_s2=`tail -1 /tmp/$log|awk '{print $1}'`
echo $t_s>>/tmp/$log
v=$[$t_s-$t_s2] //时间戳对比
echo $v
#当结果大于3600秒,就会进行告警
if [ $v -gt 3600 ]
then
./mail.py $1 $2 $3
echo "0" > /tmp/$log.txt //等同于计数器
else
#不然就重新计数
if [ ! -f /tmp/$log.txt ]
then
    echo "0" > /tmp/$log.txt
fi
nu=`cat /tmp/$log.txt`
nu2=$[$nu+1]
echo $nu2>/tmp/$log.txt
if [ $nu2 -gt 10 ]
then
     ./mail.py $1 "trouble continue 10 min $2" "$3"
     echo "0" > /tmp/$log.txt //邮件告警结束以后,重新开始计数
fi
fi 

경고 시스템 실행
1 분 에 한 번 씩 메 인 발 을 실행 할 수 있 습 니 다.
crontab -e
* * * * * cd /usr/local/sbin/mon/bin ; bahs main.sh

메 일 을 보 내 는 부분 을 디 버 깅 하고 감시 하 며 세 개의 매개 변수 (누구 에 게 보 내 는 지, 메 일 이름, 내용) 가 있 습 니 다. 매개 변수 간 에 빈 칸 을 사용 하지 않도록 하 십시오. mail. py 가 메 일 을 보 내 는 것 은 빈 칸 으로 세 개의 매개 변 수 를 정의 하기 때 문 입 니 다.

좋은 웹페이지 즐겨찾기