文档章节

开发自己的监控系统一、email篇

cszer
 cszer
发布于 2013/06/09 00:13
字数 760
阅读 883
收藏 43

前言:

随着维护服务器量的增多,越来越觉得监控的重要性。监控,就是运维人员的眼睛,没有了监控,你不知道磁盘是否满了,网络流量是否超标,甚至服务器是否宕机。监控的重要性不言而喻。市面上的监控软件也很多,如商业版的ipmontor、opmanager,免费开源的nagios、cacti等。每个监控软件都有各自优缺点和应用场景,这里不去探讨。本文要探讨的是从一个初学者的角度去打造属于自己的监控系统。共分为三部分:email篇web篇移动篇(android)。好了,不废话了,下面开始。

email篇:

关键字:shell、email

原理:
定时执行监控脚本,提取服务器运行状态,如系统负载、磁盘空间或是相关服务是否运行等,只要有一项异常,即马上发送邮件警报。下面是脚本内容(由于只是个事例,所以只设定了两个监控项目,大家根据自己的需求增减监控项目)。

#!/bin/bash
#Server status monitor
#by caishzh 2013
 
#初始化变量及设置阀值
DIR="/root/tool"
NOW=$(date "+%F %T")
>${DIR}/messages.txt  #先清空messages.txt里的内容
 
ADMIN="xxx@qq.com" #邮箱地址,用于接收警报邮件
HOSTNAME="Server1"
IP=$(ifconfig eth0|grep 'inet addr'|sed 's/.*addr:\(.*\) Bcast:.*/\1/')
 
UPTIME_MAX=3 #系统负载
DISK_MAX=90 #磁盘使用率
 
#系统负载
UPTIME=$(uptime|sed 's/^.*age: \(.*\)$/\1/')
UPTIME_NOW=$(echo $UPTIME|awk -F',' '{print $1}')
if echo "$UPTIME_NOW>$UPTIME_MAX"|bc >/dev/null;then  #UPTIME_NOW包含小数,而test只支持整数间的比较,所以这里使用bc
     echo "UPTIME: $UPTIME" >>${DIR}/messages.txt
fi
 
#根分区
DISK=$(df -h|grep /$|awk '{print $5,$2,$4}')
DISK_USAGE=$(echo $DISK|awk '{print $1}'|tr -d '%')
[ "$DISK_USAGE" -ge "$DISK_MAX" ] && $(echo "DISK: $DISK" >> ${DIR}/messages.txt)
 
#如果messages.txt文件不为空则发送警报信
if [ -s ${DIR}/messages.txt ];then
     mail -s "system monitor: $NOW  $IP  $HOSTNAME" "$ADMIN" <${DIR}/messages.txt
fi

将脚本放到/root/tool目录下,给予执行权限:

chmod 755 /root/tool/system_monitor.sh

放入crontab中,每3分钟执行一次:

echo "*/3 * * * * root /root/tool/system_monitor.sh" >>/etc/crontab

实际生产环境下执行该脚本后收到的警报邮件:
monitor_email

开发自己的监控系统二、web篇
开发自己的监控系统三、移动篇(android)

参考:

简单的系统监控脚本
鸟哥的linux私房菜–学习shell scripts


© 著作权归作者所有

cszer
粉丝 4
博文 5
码字总数 5109
作品 0
厦门
系统管理员
私信 提问
加载中

评论(3)

许雷神
许雷神
谢谢。。
孤单时会想你
孤单时会想你
好东西
Mocos
Mocos
mark
开发自己的监控系统二、web篇

开发自己的监控系统一、email篇 开发自己的监控系统三、移动篇(android) web篇: 关键字:shell mysql python web.py 在上一篇中,我们介绍了如何使用shell脚本监控系统状态,并在出现异常...

cszer
2013/06/09
217
0
开发自己的监控系统三、移动篇(android)

开发自己的监控系统一、email篇 开发自己的监控系统二、web篇 移动篇(android) 关键字:java、android、json、php 互联网已经进入大数据时代,如果没有给自己的产品开发手机端的应用程序,...

cszer
2013/06/09
2.2K
1
5分钟教你学会Django系统错误监控

一、监控所有的request请求 如何实现系统监控,自动发送错误日志的邮件呢? 只需配置配置settings文件即可。 1.设置发送邮件配置信息 邮件会发送到ADMINS设定的邮件列表中。 2.配置LOGGING 1...

p柯西
2018/06/20
20
0
ubuntu下nagios配置

参考文献: http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html http://my.oschina.net/duangr/blog/183160 声明 本文是我参照上述两篇参考文献做nagios配置的一个记录,当中的...

嗯哼9925
2017/12/20
0
0
荐书丨Java微服务实战(留言送书)

点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 由浅入深地讲解了微服务的相关技术 基础框架、服务框架和监控部署三大部分 实战为主、理论为辅,内容丰富,实...

csdnsevenn
2017/12/15
0
3

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
昨天
64
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
昨天
26
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
昨天
41
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
昨天
27
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
昨天
44
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部