[rrdtool]监控和自动画图,简单的监控.md

现在想要监控服务的流量和并发数,可是又没那么多时间来写系统,其他的运维系统又不熟悉,于是就用现有的rrdtool shell做了个简单的监控界面,临时用下,也算是个小实验把。 rrdtool也是刚接触,算是一个小练习

流程

大致的流程是这样的(centos6操作系统)

  • 初始化rrd数据库
  • shell脚本定时更新rrd中的数据
  • shell脚本定时画图(这里就画了一个24小时的)生成图片
  • html,把图片包含里面。 界面可以直接访问

开发

初始化

主要就是2个功能,24小时流量图,24小时并发图(5分钟抽样,不是全部的实时监控)

rrdtool create eth1.rrd --step 300 DS:eth1_in:COUNTER:600:0:U DS:eth1_out:COUNTER:600:0:U RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:4:600 RRA:AVERAGE:0.5:24:600 RRA:AVERAGE:0.5:288:730 RRA:MAX:0.5:1:600 RRA:MAX:0.5:4:600 RRA:MAX:0.5:24:600 RRA:MAX:0.5:288:730

rrdtool create curnum.rrd --step 300 DS:num:GAUGE:600:0:U RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:4:600 RRA:AVERAGE:0.5:24:600 RRA:AVERAGE:0.5:288:730 RRA:MAX:0.5:1:600 RRA:MAX:0.5:4:600 RRA:MAX:0.5:24:600 RRA:MAX:0.5:288:730

更新数据

更新脚本,并画图,假如cron,5分钟一次

*/5 * * * * /bin/sh /home/erya/run/monitor/rrd_update.sh >/dev/null 2>&1

[[email protected] moniter]# cat rrd_update.sh
#!/bin/bash
#orangleliu
#centos  获取某个网卡某个时间 收发包的大小
eth_name="eth1"
in=$(cat /proc/net/dev|grep eth1|cut -d ‘:‘ -f 2|awk ‘{print $1}‘)
out=$(cat /proc/net/dev|grep eth1|cut -d ‘:‘ -f 2|awk ‘{print $9}‘)
curnum=$(netstat -nat|grep ESTABLISHED|wc -l)

echo "$eth_name int is ${in}"
echo "$eth_name out is ${out}"
echo "curnum is ${curnum}"

#udpate rrd
rrd_dir=/home/erya/run/monitor
/usr/bin/rrdtool updatev ${rrd_dir}/eth1.rrd  N:${in}:${out}
/usr/bin/rrdtool updatev ${rrd_dir}/curnum.rrd  N:${curnum}

定时画图

画图脚本,每5分钟一次(cron, 或者追加在更新脚本的最后部分

*/5 * * * * /bin/sh /home/erya/run/monitor/rrd_graph.sh >/dev/null 2>&1

#!/bin/bash
#5分钟画图一次,给页面访问

cd /home/erya/run/monitor

/usr/bin/rrdtool graph net.png --start -86400 --end now --title "100 server net flow 1 day" DEF:value1=eth1.rrd:eth1_in:AVERAGE DEF:value2=eth1.rrd:eth2_out:AVERAGE AREA:value1#00ff00:in \
LINE2:value2#ff0000:out:STACK 

/usr/bin/rrdtool graph curnum.png --start -86400 --end now --title "100 server concurrency number 24 hours" DEF:value1=curnum.rrd:num:AVERAGE AREA:value1#00ff00:num

然后我写了一个html,把两个图片包含进去,配置到nginx 中(就是几个location),就可以直接从浏览器访问了。

也算是,超级简陋的监控方式把。

界面

[email protected] moniter]# cat monitor.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<tilte> 100服务器流量 并发监控图</title>
</head>
<body>
    <h3>24小时内流量趋势</h3>
    <img src="http://xxx/rrd/net.png" />
    <h3>24小时内并发趋势</h3>
    <img src="http://xxx/rrd/curnum.png" />
</body>
</html>

nginx配置片段

    location ^~/rrd/net.png {
        alias /home/erya/run/monitor/net.png;
    }

    location ^~/rrd/curnum.png {
        alias /home/erya/run/monitor/curnum.png;
    }

    location ^~/rrd/monitor.html {
        alias /home/erya/run/monitor/monitor.html;
    }

效果图

声明:

本文出自 “orangleliu笔记本” 博客,转载请务必保留此出处http://blog.csdn.net/orangleliu/article/details/46739853作者orangleliu 采用署名-非商业性使用-相同方式共享协议

版权声明:本文为orangleliu(http://blog.csdn.net/orangleliu/)原创文章,文章转载请声明。

时间: 2024-11-05 12:50:30

[rrdtool]监控和自动画图,简单的监控.md的相关文章

一个简单的监控网站是否正常并自动重启服务的shell脚本

#!/bin/sh if [ -z "`curl --connect-timeout 15 --max-time 20 --head --silent http://localhost/index.php|head -n 1|grep '200'`" ];then echo -e "$(date +%Y-%m-%d)\n" killall nginx killall php-fpm /usr/local/nginx/sbin/nginx -c conf/nginx.

监控系统Zabbix的简单应用

一.简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题.zabbix由2部分构成,zabbix server与可选组件zabbix agent.        zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,

zabbix模板的自动发现规则(ldd)实现被监控项自动发现

zabbix模板的自动发现规则(ldd)实现被监控项自动发现 自动发现规则(ldd)用途说明 在zabbix自带的linux模板的自动发现规则中,有一个Mounted filesystem discovery自动发现规则,可以根据每个服务器磁盘梳理不同,自动生成相应的磁盘监控数据. 这就是自动注册的用途,根据不同服务器上同一个监控项不同的数量,自动生成对应数量的监控 例如5个服务器都分别启动了tomcat多实例,但启动的tomcat数量不相同,端口也不同,我想要监控这些端口是否down掉: 用普

linux简单用于监控队脚本

######################################################################### # File Name: monitor.sh # Author: fangtest # mail: [email protected] # Created Time: Sun 29 Jun 2014 06:55:18 PM EDT ###########################################################

使用munin画图软件进行监控

进入网页:http://repoforge.org/use/ 下载rpm包: #wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm 安装rpm包: #rpm -Uvh rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm 安装munin: #yum install -y munin-node munin-common munin 将mu

tomcat健康状态监控并自动重启短信报警

#!/bin/sh PATH=/usr/local/jdk1.5.0_19/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin JAVA_HOME=/usr/local/jdk1.5.0_19 CLASSPATH=.:/usr/local/jdk1.5.0_19/lib:/usr/local/jdk1.5.0_19/lib/t

一个简单的监控redis性能的python脚本

一个简单的监控redis性能的python脚本 上一篇已经讲了如何监控memcached了,现在也顺带讲如何监控redis. 首先介绍下监控redis那些信息: Redis ping:检验ping Redis alive:查看检查端口是否alive Redis connections:查看连接数 Redis blockedClients:正在等待阻塞客户端数量 Redis connectionsUsage:redis的连接使用率 Redis memoryUsage:redis内存使用量 Redi

Tomcat监控助手-自动重启相关服务

功能说明 该小工具使用swing实现,实现监控某个服务地址,在异常时(连续3次访问不通)自动重启tomcat,并启动配置好的抓取项. 先看下效果图: 代码说明 下面是代码:配置文件TomcatMonitor.properties 1234567891011121314151617181920 #tomcat的启动脚本位置tomcat.home=D:/luckystar88/soft/apache-tomcat-8.5.6/bin/startup.bat#tomcat服务监控地址listen.ur

Zabbix4.0自动发现和自动注册并加入监控

可以根据需要,在对主机安装系统的时候就安装配置并启动zabbix-agent服务,这样的话只要主机系统安装完成,便会自动加入监控. 在主机较多的时候,配置Zabbix自动发现或者自动注册并加入监控可以代替手动的添加主机,减轻工作量,Zabbix提供两种批量自动监控的方式: 自动发现:由服务端主动发起,Zabbix Server开启发现进程,定时扫描局域网中IP服务器.设备.实现自动发现主机.自动将主机添加到主机组.自动加载模板.自动创建项目(item).自动创建图像等功能. 自动注册:由客户端主