这里有人玩graphite吗,有个安装问题想请教。

2013-05-29 13:21:43 +08:00
 ioiioi
graphite是取代rrd的一个新生代,最新的稳定版本是0.9.10,然而我在部署一个前端graph-explorer时,碰到一个graphite的bug,该bug在github中已经被修复,现在我的问题是:如何使用git来安装最新版的graphite?
5477 次点击
所在节点    问与答
28 条回复
adieu
2013-05-29 13:26:46 +08:00
你现在是怎么部署的?
理论上来说 git clone下来之后用python setup.py install安装就行
sykp241095
2013-05-29 13:27:48 +08:00
git clone下来后,有setup.py,可以根据你自己的linux发行版做个包。或者直接执行pyhton setup.py ....等。

最好有个/etc/init.d/carbon-cache,和/etc/init.d/carbon-relay。或者以其他方式起这两个daemon也可以。

如果要用到graph-explorer,graphite-web是必须的。
ioiioi
2013-05-29 16:39:32 +08:00
@sykp241095
嗯,我安装完graph-explorer后,看不到图像,启用chrome的javascript console,在network tab中看到有一个地方出错,那就是http://localhost/render,根据graph-explorer的wiki说明,应该是graphite-web的bug导致。

能否分享下/etc/init.d/carbon-cache和/etc/init.d/carbon-relay,我每次都要手工杀进程,然后./carbon-cache.py start,有点小累。

另外,我如果重装最新版本的graphite,旧版本的数据如何导入?
ericFork
2013-05-29 21:24:19 +08:00
@ioiioi 其实 carbon-cache.py 是有 stop 的……

理论上只要 carbon 和 whipser 没有大变更,把 storage/whisper 下的所有文件 copy 过去就可以了
ioiioi
2013-05-29 23:40:17 +08:00
我今晚一直在跟
/opt/graphite/storage/log/webapp/error.log
Target WSGI script '/opt/graphite/conf/graphite.wsgi' cannot be loaded as Python module.
做斗争,已经参考
http://ericfarkas.com/posts/statsd-graphite-ubuntu/
改了
chown -R www-data:www-data /opt/graphite/storage
并重启了apache2和carbon-cache.py
但还是出现同样的错误。
有木有什么建议?
ericFork
2013-05-29 23:59:48 +08:00
graphite-web 就是一个 django 的 webapp,推荐用 gunicorn 直接跑……不要再用 apache 了
ioiioi
2013-05-30 00:29:11 +08:00
hmm, 我没接触过gunicorn。相对于apache,有什么优势呢?
ericFork
2013-05-30 01:02:19 +08:00
@ioiioi 简单地说,部署和管理方便,前面挂个 nginx,抗压性也挺强大的

貌似 @CMGS 曾经写过一大篇来着,很是详细~
ioiioi
2013-05-30 12:53:15 +08:00
@sykp241095,
我假如使用了gunicorn,或者是graphite自带的bin/run-graphite-devel-server.py 该如何让graph-explorer去获取graphite里面的metrics呢?
sykp241095
2013-05-30 18:04:06 +08:00
在config.py里设置你的graphite_url,比如:

graphite_url = 'http://graphitehost:8000'

然后还得需要一个cron,这个cron是必须的,来定期从这个url里GET所有的metric信息。

具体的参照 https://github.com/vimeo/graph-explorer#configuration-of-graph-explorer
ioiioi
2013-05-30 23:04:53 +08:00
@sykp241095
我相信你有对比过其它的frontend,你觉得哪一种最成熟,最实用?
ericFork
2013-05-30 23:26:34 +08:00
@ioiioi 我不会告诉你 @sykp241095 现在就在用 graph-explorer 的
ioiioi
2013-05-31 08:50:21 +08:00
@ericFork,呵呵,你们在一起工作吧?能不能跟我们分享下douban的监控系统体系结构。
sykp241095
2013-05-31 10:07:25 +08:00
@ioiioi
我也是碰巧找到了这个,觉得已经很好,就没调研其他的了。
我觉得graph-explorer已经不错了,可以自定义查询条件,而不是写死在代码里,比较灵活。

如果你用的是最新的代码,性能上会很好,还支持用gunicorn起多个worker。
ioiioi
2013-05-31 12:45:21 +08:00
@sykp241095
你的graphite版本是?
我重装了graphite,用的是0.9.x,应该是0.9.10,然后git clone最新版的graph-explorer,在grapht-explorer的debug tab,可以看到metrics,通过search也能看到targets matching: 62/376,可就是无法限制图片,通过chrome的javascript console,看到render有error。

你没遇到这种问题吗?
sykp241095
2013-05-31 16:13:25 +08:00
@ioiioi
在我们包系统里是0.9.10-r1,应该和0.9.10有些差别。不过如果不用apache来起graphite-web的话,影响应该不大。我们是用gunicorn来起的。

我这边的graph-explorer一点问题都没有,我用的chrome。
sykp241095
2013-06-03 10:01:41 +08:00
推荐个新鲜出炉的: https://github.com/huoxy/graphite-observer
一个实时的可以针对单个指标的监控dashboard。

插件支持。比如有个插件是sa.py,那么对应的可访问url是http://<ip>:<port>/dashboard/sa

sa.py里会定义一个list,它的每个元素都是一个dict。
dict(desc = 'hostA cpu', path = 'servers.hostA.cpu.total.user', max = 400, min = 0)
每一个dict对应页面里的一个泡泡。

在第一次访问/dashboard/sa的时候,会将插件里的配置下方到browser。再由客户端判断这个指标的状态,判断依据是这个指标过去1分钟的平均值是否在max和min之间。如果是False,在页面里的泡泡会不断的膨胀缩小,非常明显,起警示的作用。

页面左下角还有实时的检测log,当鼠标悬浮在一个泡泡时,右下角会实时显示这个泡泡所对应指标的状态。
ioiioi
2013-06-03 13:28:34 +08:00
@sykp241095
这个是你写的?真厉害!

我花了一个周末时间,终于搞定nginx(reverse proxy)+graphite+gunicorn+graph-explorer+supervisor。
但在nginx的配置中还是有些疑问:

1. graph-explorer通过gunicorn -w 4 app:'default_app()' -b 0.0.0.0:8001启动
2. graphite 通过/usr/local/bin/gunicorn_django -u www-data -g www-data -b 0.0.0.0:8000 --log-file=... /opt/graphite/webapp/graphite启动,配置中的graphite_url写成http://localhost:8001

通过chrome的javascript console,看到http://localhost/render error,说是 Access-Control-Allow-Origin denied,于是我就配置nginx作为反向代理,graph-explorer的config.py配置成透过nginx来获取graphite的数据,这样才能成功看到图像,但我总觉得这种实现方式不够干净,你是怎么实现的呢?
ioiioi
2013-06-03 13:32:59 +08:00
其实我需要的frontend应该是etsy开发的dashboard,它可以将一大堆开源网管软件整合输出到一个dashboard中,因为我相信没有一款开源网管软件可以通吃,所以多者并存是常态,但是sa在不同的界面间切换就很痛苦,所以迫切需要一个可以整合多种输出到统一页面中的dashboard。

graph-explorer只是方便搜索到某一个metrics及其历史记录而已,其作用很像logstash+kibana。
ioiioi
2013-06-03 13:34:07 +08:00
etsy的dashboard估计又要废了,作者已经好久没有更新了,开源软件选型的成本很高,根本不知道下一秒会发生什么。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/70514

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX