赞
踩
tcollector是一个客户端程序,用来收集本机的数据,并将数据发送到OpenTSDB。
OpenTSDB被设计的收集和写入数据非常简单,有一个简单的协议,即使是一个shell脚本也可以用来发送数据。
但是,做到可靠和一致性就有些困难了。当TSD服务器down了该怎么做?如何确保采集者一直在运行?这就是要使用tcollector的原因了。
tcollector可以为你做一下几件事:
通常情况下,你需要收集你系统的所有数据。这会产生大量的数据点,其中大多数的数据是不经常改变的。但是,当它们改变时,你想以细粒度来解决。Tcollector会记住发送所有时间序的最后的值和时间戳,如果该值在采样间隔内没有发生变化,将抑制发送该数据点。一旦该值发生变化(或10分钟后),则发送上次抑制的值和时间戳,以及当前的值和时间戳。这样一来,所有的图形将是正确的。
重复数据删除技术会减少TSD数据点的数量,同样也可以减少网络负载。
未来版本的OpenTSDB,会使用RLE来改善存储格式,使得很少存储重复值。
在tcollector下,可以使用任何语言编写采集者。只需要采集者有可执行权限,并把数据以标准输出输出。其他的交给tcollector处理。采集者位于采集器目录下,tcollector会遍历每个数字目录并执行这些目录下的采集者。数字目录代表采集间隔。如,如果目录名称为60,tcollector将尝试每60s运行该目录下的所有采集者。目录名为0,说明采集者持续长久运行。tcollector会读取它们的输出,如果它们挂掉了,会复活它们。
一般来说,长久运行的采集者需要考虑耗资料少。OpenTSDB被设计成每个metric具有大量数据点。对于大多数metric,通常以15s为一个数据点。
如果以任何非数字命令目录,将忽略该目录下的所有采集者。采集器目录下还包含lib和etc目录,为所有采集者使用的library和配置数据。
git clone git://github.com/OpenTSDB/tcollector.git
编辑tcollector/startstop文件,设置该变量TSD_HOST=tsd.ttlsa.com。
为了避免为每个采集者创建各自的metric,启动tsd时,加上--auto-metric 参数。不过从长远看,不建议加上该参数,避免metric意外创建。
这些统计类似于/usr/bin/df工具提供的。
这些metric包含时间序标记每个挂载点和文件系统类型。此采集器可通过cgroup, debugfs, devtmpfs, rpc_pipefs, rootfs filesystems和挂载点/dev/, /sys/, /proc/和/lib/进行过滤。
这些统计来自/proc/net/dev。
接口标签iface=, 方向标签direction=in|out。 仅仅ethN接口采集,有意排除bondN接口,因为bonded接口也就是各个ethN接口的总计,没必要重复收集。
数据来源于/proc/diskstats.
iostats内容参见:https://www.kernel.org/doc/Documentation/iostats.txt
socket分配和网龙统计信息。
从/proc/net/sockstat来的metric。
从 /proc/net/netstat (netstat -s )来的metric。
这些统计来自/proc/net/rpc/nfs.
这些统计来自 /proc/net/tcp{,6}。每60s收集一次。
来自/proc的统计。
procstat内容参见:http://www.linuxhowtos.org/System/procstat.htm
统计SMART磁盘信息。
SMART说明参见:https://en.wikipedia.org/wiki/S.M.A.R.T.#Known_ATA_S.M.A.R.T._attributes
理解这些metric最好是看厂家的说明。
统计couchbase数据库的。
所有的metric都以bucket=为标签。桶是Couchbase服务器集群中的逻辑分组。参见:http://docs.couchbase.com/couchbase-manual-2.1/#cbstats-tool
统计Elastic 搜索的。
metric说明参见http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cluster.html
统计Hadoop DataNode 状态。
默认情况下,采集器对这些metric是禁用的。revision, hdfsUser, hdfsDate, hdfsUrl, date, hdfsRevision, user, hdfsVersion, url, version, NamenodeAddress, Version, RpcPort, HttpPort, CurrentThreadCpuTime, CurrentThreadUserTime, StorageInfo, VolumeInfo.
metric说明参见:http://hbase.apache.org/book.html#hbase_metrics
统计Haproxy 状态信息。
所有metric的标签有server (server=) 和cluster (cluster=).
具体信息说明参见:http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
统计Hadoop RegionServer 信息
默认情况下,采集器对这些metric是禁用的。revision, hdfsUser, hdfsDate, hdfsUrl, date, hdfsRevision, user, hdfsVersion, url, version, Version, RpcPort, HttpPort,HeapMemoryUsage, NonHeapMemoryUsage.
具体说明参见:http://hbase.apache.org/book.html#hbase_metrics
统计Mongo 信息。
具体metric说明参见:http://docs.mongodb.org/manual/reference/server-status/
统计mysql信息。
统计的信息有:InnoDB Innodb monitors, Global Show status, Engine Show engine, Slave Show slave status, Process list Show process list.
统计PostgreSQL 信息。
metric说明参见:http://www.postgresql.org/docs/9.2/static/monitoring-stats.html
统计redis信息。
metric说明参见:http://redis.io/commands/INFO
统计riak信息。
metric说明参见:http://docs.basho.com/riak/latest/ops/running/stats-and-monitoring/#Statistics-from-Riak
统计varnish信息。
默认情况下,所有的metric都收集。若要改变编辑采集器的vstats数组。运行“varnishstat-l”列出所有可用的metric。
统计zookeeper信息。
metric说明参见:http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html#sc_zkCommands
对于本地的信息采集只好部署在本地了。可以通过自动化部署如puppet,saltstack来部署tcollector。
对于网络类型的服务,集中式采集会方便些。不需要在每台上去部署了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。