1.介绍
开源监控系统OpenTSDB,用hbase存储所有的时序(无须 采样)来构建一个分布式、可伸缩的时间序列数据库。它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系统里。OpenTSDB可以从大规模的集群(包括集群中的网络设备、操作系统、应用程序)中获取相应的metrics并进行存储、索引以及服务,从而使得这些数据更容易让人理解,如web化,图形化等。
2.安装
Gnuplot是一个命令行的交互式绘图工具(command-driven interactive function plotting program)。用户通过输入命令,可以逐步设置或修改绘图环境,并以图形描述数据或函数,使我们可以借由图形做更进一步的分析。地址 http://www.gnuplot.info/
yum install gnuplot
如果是下载压缩包压缩包的话,解压后进入目录分别执行 ./configure; make; make check; make install
安装完成后执行gnuplot,确认支持png :执行set terminal
网上搜了一下,发现缺少automake工具
yum install automake
3.设置&运行
先启动hadoop和hbase集群
配置环境变量,在shell中执行如下命令:
tsd服务运行参数说明:
Usage: tsd --port=PORT --staticroot=PATH --cachedir=PATH Starts the TSD, the Time Series Daemon --async-io=true|false Use async NIO (default true) or traditional blocking io --auto-metric Automatically add metrics to tsdb as they are inserted. Warning: this may cause unexpected metrics to be tracked --cachedir=PATH Directory under which to cache result of requests. --flush-interval=MSEC Maximum time for which a new data point can be buffered (default: 1000). --port=NUM TCP port to listen on. --staticroot=PATH Web root from which to serve static files (/s URLs). --table=TABLE Name of the HBase table where to store the time series (default: tsdb). --uidtable=TABLE Name of the HBase table to use for Unique IDs (default: tsdb-uid). --worker-threads=NUM Number for async io workers (default: cpu * 2). --zkbasedir=PATH Path under which is the znode for the -ROOT- region (default: /hbase). --zkquorum=SPEC Specification of the ZooKeeper quorum to use (default: localhost).
以下是tsdb可运行的命令
usage: tsdb <command> [args] Valid commands: fsck, import, mkmetric, query, tsd, scan, uid
4.测试
编写脚本并运行
cat >loadavg-collector.sh <<\EOF
#!/bin/bash
set -e
while true; do
awk -v now=`date +%s` -v host=`hostname` \
'{ print "put proc.loadavg.1m " now " " $1 " host=" host;
print "put proc.loadavg.5m " now " " $2 " host=" host }' /proc/loadavg
sleep 15
done | nc -w 30 host.name.of.tsd PORT
EOF
chmod +x loadavg-collector.sh
nohup ./loadavg-collector.sh &
红字部分换成启动tsd服务的服务器IP和端口
5.总结
opentsdb的表设计特点可以满足时间序列的数据存储在hbase中并能秒级相应。适合于以固定时间间隔的数据采集,例如 系统软件和硬件的监控。结合logstash可以监控应用log日志信息。