WEB监控系列第二篇:web监控搭建——graphite+statsd(服务器上搭建)

StatsD 与 Graphite 集成实战:Ubuntu 14.04 下的轻量监控架构 StatsD 是一种基于 UDP 的轻量级指标收集协议,核心原理是接收应用层打点数据(如计数器、计时器、采样值),在内存中完成聚合、降采样与分位计算,再按固定周期推送至后端存储系统。其技术价值在于显著降低监控对业务代码的侵入性,支持多语言零依赖埋点,并通过无状态设计保障高吞吐与低延迟。典型应用场景包括微服务性能观测、API 健康度实时计算、支付成功率看板等,尤其适配资源受限但稳定性要求高的旧版 Linux 环境(如 Ubuntu 14.04)。本文聚焦 StatsD 与 Graphite 的协同机制,深入解 阅读详情

转贴请注明原址:http://blog.youkuaiyun.com/crazyhacking/article/details/8464235

1 说明

(1)因为1 想安装在一个目录下 2不能使用root权限.

使用virtualenv环境:http://www.cnblogs.com/cheungjustin/archive/2011/12/08/2281041.html

和pip/easy-install安装

进入 virtual环境,然后安装其它包。

(virtualenv的最大好处是不能使用yum等命令时----鉴于权限所致,可以使用pip等一键安装命令;第二大好处是安装到一个目录下)

(2)Installing in Virtualenv

Virtualenv provides an isolated Python environment to run Graphite in.

To install Graphite in the default location, /opt/graphite/,create a virtualenv in/opt/graphite and activate it:

virtualenv /opt/graphite   #建立一个虚拟环境
source /opt/graphite/bin/activate #激活这个环境

Once the virtualenv is activated, Graphite and Carbon can be installedfrom source orvia pip. 


(3)安装 Graphite-web和carbon(感觉和virtualenv无关)

安装graphite

https://graphite.readthedocs.org/en/latest/install-source.html#graphite-web-custom-location-source

python setup.py install --prefix=/srv/graphite --install-lib=/srv/graphite/webapp

安装carbon

python setup.py install --prefix=/srv/graphite --install-lib=/srv/graphite/lib

(4)后台使用uwsgi


2 具体安装

安装的原则有两条:注意看软件包的说明文件,并且注意处理安装过程中报的错误

(1)下载

四个包 graphite-web-0.9.10 carbon-0.9.10 whisper-0.9.10 check-dependencies.py

(2) 检查依赖,安装所需的依赖包。

安装的原则是能用virtualenv下的pip命令安装的尽量这样安装,因为 pip会自动安装依赖包。

不能pip安装的,则下载源码,安装,configure  --prefix=path/to/install/

最后,只有两个依赖包没有装$python check-dependencies.py
[WARNING] Unable to import the 'mod_python' module, do you have mod_python installed for python 2.7.3?
mod_python is one of the most common ways to run graphite-web under apache.
Without mod_python you will still be able to use the built in development server; which is not
recommended for production use.
wsgi or other approaches for production scale use are also possible without mod_python
[WARNING]
Unable to import the 'ldap' module, do you have python-ldap installed for python 2.7.3?
Without python-ldap, you will not be able to use LDAP authentication in the graphite webapp.

All necessary dependencies are met.
2 optional dependencies not met. Please consider the warning messages before proceeding.

(3)安装 graphite

(1)进入graphite安装包,检查依赖check-dependencies.py

(2)修改路径setup.cfg.prefix =

(3)编译,安装setup.py build  ,  setup.py install

 (4)安装后加入路径

export PYTHONPATH=$PYTHONPATH:$GRAPHITE_ROOT/webapp
 cd $GRAPHITE_ROOT/webapp/graphite/
 (5)初始化数据库 

1
2
3
4
cd /opt/graphite/webapp/graphite/
cp local_settings.py.example local_settings.py
python manage.py syncdb
chown -R apache.apache /opt/graphite

(6)启动graphite

/opt/bre/LogCollector/software/graphite/bin/run-graphite-devel-server.py --libs=/opt/bre/LogCollector/software/graphite/webapp/ /opt/bre/LogCollector/software/graphite/ &

(7)查看 http://192.168.32.127:8080/

(8)测试,echo "local.random.diceroll 4 `date +%s`" | nc ${SERVER} ${PORT};查看(7)打开的界面的反应。

(4)carbon

修改配置路径setup.cfg,把carbon装到grapgite一个目录下。安装carbon

启动cabon

1
2
cd /opt/graphite/
./bin/carbon-cache.py start

(5) whisper

使用pip安装

(6)statsd

(直接用pip安装不知道为啥没有几个文件,所以还是git 复制了)

(如果没有node.js需要先安装)

git clone git://github.com/etsy/statsd.git

cp exampleConfig.js Config.js

修改配置文件Config.js中graphiteHost: "127.0.0.1"

启动服务 node stats.js Config.js &

把statsd模块加入环境变量PYTHONPATH中

使用statsd:

python

import statsd


3 使用graphite和statsd

1 

修改存储格式存储statsd发过来的数据,格式为stats.*

storage-schemas.conf中:

[stats]
 11 priority = 110
 12 pattern = ^stats\..*
 13 retentions = 10s:6h,1m:7d,10m:1y

(10s的作为一个数据点存储(存储时10秒内的平均值),存储6个小时的数据;1分钟的存储为一个数据,存储7天;10分钟的是一个数据点,存储1年)

2 启动statsd

python

import statsd

ccc=statsd.client.StatsClient(host='127.0.0.1',port=8125)#链接

ccc.incr("hello",5)#



4 问题

1 安装py2cairo时  ,一直提示Could not find the python development headers,

解答:LDFLAGS="-lm -ldl -lutil" ./waf configure --prefix=

参考: http://url.cn/7LWGFM


2 安装cairo时候,找不到pixman,但其实已经安装

问题症状:checking whether cairo's image surface backend feature could be enabled... no (requires pixman-1 >= 0.18.4 http://cairographics.org/releases/)
configure: error: mandatory image surface backend feature could not be enabled

解决:

With pixman already installed:
-bash-3.2$ export PKG_CONFIG_PATH=/usr/local/lib64/lib/pkgconfig/

然后把pixman中包含*.pc的文件路径包括进去。
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/bre/LogCollector/software/pixman-0.28.2/lib/pkgconfig

 -bash-3.2$ pkg-config --modversion pixman-1
0.18.4

参考:理解 pkg-config 工具


3   安装cairo 时候,cairo-gobject-enums.c:14: error: implicit declaration of function 'g_once_init_enter'

解决:./configure --disable-valgrind          --disable-gobject

参考:http://lists.freedesktop.org/archives/cairo/2011-February/021660.html

4检查依赖时候,发现找不到cairo,但是已经安装了py2cairo和cairo

[FATAL] Unable to import the 'cairo' module, do you have pycairo installed for python 2.7.3?

解决:修改环境变量PYTHONPATH=$PYTHONPATH:/LogCollector/software/py2cairo-1.10.0/lib/python2.7/site-packages/


5在初始化数据库这一步,python manage.py syncdb出现“settings.DATABASES is improperly configured” error performing syncdb with django 1.4

解答:这是软件版本不兼容的问题。settings.py中定义的database的格式对于django1.4来说过时,解决方法是把local_settings 中的新格式启用

(去掉注释符)

DATABASES = {
    'default': {
        'NAME': '/opt/bre/LogCollector/software/graphite/storage/graphite.db',
        'ENGINE': 'django.db.backends.sqlite3',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': ''
    }   
}

参考:http://stackoverflow.com/questions/10228618/settings-databases-is-improperly-configured-error-performing-syncdb-with-djang

5本来是用好好的。在初始化数据库这一步,python manage.py syncdb出现 ImportError: cannot import name parse_lookup

解决django-tagging版本太低,使用pip freeze查看,得到0.2.1。

升级版本:pip install django-tagging==0.3.1

参考:http://stackoverflow.com/questions/346426/installation-problems-with-django-tagging


6启动statsd时报错误:Error: listen EADDRINUSE

node stats.js Config.js:

events.js:48
throw arguments[1]; // Unhandled ‘error’ event
^
Error: listen EADDRINUSE

解答:根据报错信息,EADDRINUSE 说明端口被占用。查询进程和端口得知node已经启动过了,结束掉重新启用

Ubuntu 12.04 VPS 部署 Graphite+Statsd 实战指南 时间序列监控是可观测性基础设施的核心能力,其本质在于指标采集、聚合、存储与可视化四步闭环。Graphite 作为经典开源时序数据库,配合轻量级 Statsd 代理,构成原理透明、协议简单、部署可控的监控组合。尤其在资源受限的老旧环境(如 512MB 内存 VPS)中,该栈凭借 Whisper 文件存储、Carbon 多进程缓存、Statsd UDP 低开销等特性,展现出极强的兼容性与可调试性。本文聚焦 Ubuntu 12.04 这一典型长尾系统,详解 Python 2.7 生态约束下的组件选型(Graphi 阅读详情

相关推荐

Ubuntu 12.04下部署Graphite+Statsd实战指南

时间序列监控是运维可观测性的基础能力,其核心在于轻量采集、高效聚合与低开销存储。Graphite作为老牌时序数据库,依托Whisper文件存储和Carbon接收服务,天然适配资源受限环境;Statsd则以UDP协议实现零侵入指标上报,完美兼容Shell脚本、嵌入式设备及老旧Python应用。在无容器、无现代包管理、内存仅512MB的约束场景中,这套组合展现出远超Prometheus或InfluxDB的工程鲁棒性。本文聚焦Ubuntu 12.04这一典型遗留系统,详解APT源迁移、Python 2.7.3环境

weixin_30706691的博客 362

python 监控系统 statsd+graphite

一.安装statsd 1. statsd+graphite安装过程有点复杂,依赖好几个框架,幸好有了docker,一条命令搞定 docker pull hopsoft/graphite-statsd 使用参考项目网站:https://github.com/hopsoft/docker-graphite-statsd 2. 启动: docker run -d --name graphite --restart=always -p 5100:80 -p 5101:81 -p 2003-2004:2003

socct_yj的博客 1094

nginx-statsd, 用于将统计信息发送到statsd的Nginx 模块.zip

nginx-statsd, 用于将统计信息发送到statsd的Nginx 模块 statsd用于向statsd发送统计信息的Nginx 模块。这就是如何使用 nginx-statsd模块:http { # Set the server that you want to send stats to.

如何深入理解StatsD与Graphite?

通过深入学习StatsD和Graphite的原理和应用,可以更好地利用它们来监控和优化系统性能,从而提高应用程序的可靠性和稳定性。StatsD和Graphite是两个常用于监控和度量系统性能的工具。

高性价比服务器就选:蓝易云 697

Rocky Linux 9 离线环境Docker部署全攻略:从依赖打包到服务启动

本文详细介绍了在Rocky Linux 9纯离线环境中部署Docker的完整流程。从在联网环境精准下载Docker静态二进制包及所有系统依赖RPM包,到在隔离服务器上按顺序安装依赖、部署二进制文件、配置systemd服务并进行权限与网络调优,提供了从零到一的可复现实战指南。文章重点解决了离线部署的核心难题,并分享了搭建私有镜像仓库等进阶技巧,是运维人员在严格网络管控环境下部署容器服务的必备参考。

pytorchlight8的博客 138

细节增强卷积DEConv详解及代码复现

这种预训练模型能够捕捉图像的基本特征,为后续的端到端训练提供良好的初始参数。例如,在RESIDE和RESIDE-6K数据集上的实验结果表明,使用MSPLCK模块的MixDehazeNet-L模型在RESIDE-IN数据集上首次超过了42dB的PSNR指标,且在所有数据集上均优于先前的方法。例如,在RESIDE和RESIDE-6K数据集上的实验结果表明,使用MSPLCK模块的MixDehazeNet-L模型在RESIDE-IN数据集上首次超过了42dB的PSNR指标,且在所有数据集上均优于先前的方法。

hasakie的博客 1909

statsd+graphite

一些观点: Statsd:一个nodejs的客户端,用于向graphite的收集器发送数据,使用各类编程语言的客户端响起发送timer,counter等统计数据后,其通过udp定时向graphite发送数据。 Graphite:分为监听器carbon+时序数据库whisper+图形展示django-webapp。由于安装是要配置数据库等建议对django有一定了解 Grafana:...

weixin_30633405的博客 256

基于任务的后勤智能体:三段构建与演进设计探究

这是系统智能化的核心难点。例如,对于一个“加强连级滩头阵地防御”子任务,系统会根据防御时长、预期敌军攻击强度、地形等因素,计算出所需的弹药(不同弹种的具体数量)、构筑工事的器材、人员的给养和饮水量、以及医疗救护的药品和血包数量。首先进行分词、词性标注等基础处理,然后利用在军事语料库上训练的命名实体识别(NER)模型,提取出关键实体,如任务类型(“夺控作战”)、作战对象(“Y岛”)、时间约束(“D日H时”、“24小时内”)、成功标准(“建立稳固滩头阵地”)、保障重点(“弹药充足”、“及时救治”)等。

weixin_49042442的博客 1088

推荐文章:Graphite-Web:强大的时序数据可视化工具

在大数据时代,监控和分析系统性能的重要性不言而喻。Graphite-Web 是一个开源的、功能丰富的时序数据存储和图形渲染平台,它能够帮助开发者实时地监控和展示各种指标数据。本文将详细介绍 Graphite-Web 的特性及其优势,助您更好地理解这个强大的工具。 ## 项目介绍 Graphite-Web 是由三个核心组件组成的:一个基于 Django 的 Web 应用,用于绘制图表和构建仪表板...

gitblog_00998的博客 1165

k8s 查看cpu使用率最高的pod

在 Kubernetes 中,可以使用命令查看 Pod 的资源使用情况,从而找到 CPU 使用率最高的 Pod。

u010674101的专栏 3344

用于时间序列数据的Graphite监视工具

结合第三方工具,Graphite为IT性能监控提供了许多好处。本文介绍其核心组件,包括Carbon、Whisper以及安装的基本准则。Graphite监视工具可实时或按需,大规模地绘制来自多个来源的时间序列数据。该工具支持IT系统监视和业务中的各种用例,并支持各种应用程序。Graphite的文档几乎完全集中于如何使用该工具进行性能监控。但是,该工具适合任何类型的时间序列数据。例如,用户可以跟踪:进...

NewTyun的博客 820

Claude Code本地Windows安装教程

本文介绍了在Windows系统上安装和配置Claude Code本地调用的详细步骤。首先需要确保网络畅通和账号余额充足,然后安装Node.js v22版本作为基础环境。接着通过npm全局安装Claude Code包,并进行版本验证。安装完成后,使用命令行登录并可以指定模型启动。最后还提供了切换API秘钥的方法,通过setup-token命令重新授权账号。整个过程配有详细的命令行示例和操作截图,方便用户按步骤完成安装配置。

猿小白的博客 2万+

WEB监控系列第一篇:web监控搭建——graphite+statsd(单机搭建)

转贴请注明:http://blog.youkuaiyun.com/crazyhacking/article/details/8363235 这篇写的太凌乱了,没有逻辑性,不过内容稍多。请参考第二篇文章:WEB监控系列第二篇:web监控搭建——graphite+statsd(服务器上搭建) 一 graphite 1 简介 参考自:http://www.jsxubar.info/graphite-in

crazyhacking的专栏 2万+

[机器学习] 第二章 模型评估与选择 2.ROC:roc_curve原理及源代码详解

代码见:https://github.com/Carrie-Yi/machine_learning/tree/main/roc_curve

心宝的博客 1493

乐企归集能力说明文档V2.0006

纳税人销售货物、提供服务开具的增值税发票及购进货物、接受服务取得的增值税发票、海关缴款书(含出口转内销证明)、代扣代缴完税凭证,可以通过本能力进行归集。纳税人可将本能力中的各类规则和接口嵌入本单位信息化系统中(如:销售、报销、财务等),实现发票自动化归集,便于纳税人完成发票入账、抵扣、退税以及代办退税等操作,有效提升涉税业务办理效率。

记录点滴 573

5分钟搞定StatsD与Graphite的监控数据对接(附详细配置步骤)

本文提供了一份快速搭建StatsD与Graphite监控数据管道的实战指南。通过详细的安装和配置步骤,手把手教你如何将StatsD的指标数据高效对接至Graphite进行存储与可视化,帮助开发运维团队在5分钟内构建起轻量级、可编程的系统监控能力。

pz890123的博客 697

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

业务监控系统如何做,一起来看看如何使用Statsd+Graphite+Grafana搭建业务监控系统

背景介绍 工具介绍 Statsd是一个使用Node开发网络守护进程,它的特点是通过UDP(性能好,及时挂了也不影响主服务)或者TCP来监听各种数据信息,然后发送聚合数据到后端服务进行处理。常见支持的「Graphite」, 「ElasticaSearch」,「InfluxDB」等等,它故宫了各种语言的客户端API,这里我们使用了jsocol/pystatsd: A Python client for statsd进行数据收集 Graphite是一套Python写的开源编程接口,主要是...

jackl 2628

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

使用Graphite、StatsD和CollectD进行统计数据跟踪简介

有很多理由可以解释为什么收集关于服务器、应用程序和流量的统计数据是一个好主意。收集和组织数据可以让您对扩展、故障排除和跟踪配置中的痛点做出自信的决策。有各种工具可以用来跟踪我们的机器上的指标,它们通常被委托给某个过程的一小部分。我们可以将这些工具连接在一起,创建一个用于收集、记录和显示结果的系统。在本指南中,我们将讨论一些技术,这些技术将允许您收集、存储和可视化服务器和应用程序生成的数据。我们将讨论Graphite,这是一个由几个组件组成的图形库,可用于随时间呈现数据的可视表示。我们还将研究。

rubys007的博客 1433

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

grafana数据源python_使用Statsd+Graphite+Grafana搭建web监控系统

上周给创宇研发团队简单做了一次技术分享,主要讲了为什么我们要自己做监控,监控的指标维度,监控基本流程及常见监控工具介绍,最后如何从零快速开始搭建一套自己的监控工具。为了方便没有听到的同学,但是内容较多,我这里简单记录一下。工具介绍Statsd 是一个使用Node开发网络守护进程,它的特点是通过UDP(性能好,及时挂了也不影响主服务)或者TCP来监听各种数据信息,然后发送聚合数据到后端服务进行处理。...

weixin_34221374的博客 511

StatsD 后端(Backend)机制完全指南:Graphite、Console 与 Repeater 可插拔数据出口实战

本文以 StatsD 官方文档 [docs/backend.md](https://link.gitcode.com/i/a4bf0486598acebabf9bdbff2cabd63f) 为核心,系统讲解 StatsD 的可插拔后端(Backend)架构:什么是后端、三个内置后端(Graphite、Console、Repeater)各自的能力与适用场景、如何通过 `backends` 配置加载一

gitblog_00986的博客 797

牛逼了| 从0到1 搭建Web性能监控系统

本文原文2017年首发在我的个人博客www.ipengtao.com,今天想到后续文章可能会提及,提前给大家分享一下,方便提及的时候大家有印象。之前给研发团队简单做了一次...

涛哥聊Python 572

基于Docker的Graphite监控栈:从部署到调优的完整实践

时间序列数据监控是现代运维和可观测性体系的核心组成部分,它通过持续收集、存储和分析带时间戳的指标数据,帮助工程师洞察系统状态与性能趋势。其基本原理是将数据点组织为(时间戳,值)对,并利用高效的存储引擎和查询引擎进行处理。这项技术的核心价值在于为容量规划、故障诊断和性能优化提供数据驱动的决策依据,广泛应用于基础设施监控、应用性能管理和业务指标追踪等场景。本文聚焦于Graphite这一成熟稳定的开源监控方案,并深入探讨如何利用Docker容器化技术,特别是dovvnloading/Graphite这一集成镜像,

weixin_30325487的博客 331

StatsD!次世代系统监控的核心

在互联网业务蒸蒸日上的今时今日,系统架构日渐复杂,随着软件产品和工程团队的变革,许多开源的监控工具应运而生,其中有一些相当出名,比如 Zabbix、Nagios 还有 StatsD。也有一些问题被大家不断讨论,例如,监控领域的开源工具 Zabbix 和 Nagios 哪个更好?StatsD 是否有可能取代 Zabbix 或 Nagios 成为系统监控的新标准?StatsD 的诞生作为一个大型的手工艺

wangpeng198688的专栏 646
上一篇: WEB监控系列第四篇:statsd指南
下一篇: Django入门
crazyhacking
博客等级 码龄15年 299粉丝 148原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值