graphite的搭建

因为公司打算监控kafka队列信息,但是又不想直接安装KafkaOffsetMonitor这个工具,希望能够将kafka的监控信息内嵌到grafana上面,在这个项目的github上面无意中看到这个个工具可以当作一个插件使用,可以直接内嵌到graphite当中,所有前提是需要搭建一个graphite,所以才有了这篇文章。

系统环境描述:

CentOS 7.2

Python 2.7

前置条件:Python2.7

因为我使用的是CentOS7.2,系统自带的是Python2.7,但是现在graphite的线上支持最低版本是2.7,最高版本是不超过3.x。所有使用CentOS6.x系统的需要升级为Python2.7,具体的升级过程在此就不在描述了。

一.graphite的安装

1.直接从github上面下载项目即可。

  • Graphite-web: git clone https://github.com/graphite-project/graphite-web.git
  • Carbon: git clone https://github.com/graphite-project/carbon.git
  • Whisper: git clone https://github.com/graphite-project/whisper.git
  • Ceres: git clone https://github.com/graphite-project/ceres.git

2.依赖环境的安装。

1)进入graphite-web目录下面,可以看到下面文件

2)在目录下面可以看到一个文件requirment.txt文件,这个文件内是graphite的依赖包。

可以直接执行以下命令,安装依赖包:

pip install -r requirment.txt

3)检查依赖关系。

在graphite下面存在以恶搞check-dependencies.py脚本,执行这个脚本会检测graphite的环境信息。

python check-dependencies.py

[OPTIONAL] Unable to import the ‘pyhash‘ module. This is useful for fnv1_ch hashing support.

1 optional dependencies not met. Please consider the optional items before proceeding.

All necessary dependencies are met.

当环境检测输出O optional的时候,就说明graphite的环境已经搭建完成了。

PS:pyhash这个模块需要依赖C++的boots库,编译完成之后可以下载pyhash的源码包安装。

PS:虽然我没有安装pyhash,但是后续的安装还是没有出什么问题,不过能尽量编译的话就编译

PS:安装过程中会有一些报错,需要yum install python-devel openssl openssl-devel

4)安装graphite

cd graphite-web

python setup.py build

python setup.py install

执行上面三个命令,graphite会默认安装路径是/opt/graphite

5)安装Carbon,Whisper,Ceres

依次进入三个源码目录,执行下面俩个命令

python setup.py build

python setup.py install

3.文件配置信息修改

1)修改时区

mv /opt/graphite/webapp/graphite/local_stettings.py.example

/opt/graphite/webapp/graphite/local_stettings.py

vi /opt/graphite/webapp/graphite/local_stettings.py

修改成:TIME_ZONE = ‘Asia/Shanghai‘

2)同步数据库,建库简表(我使用的是默认的数据库,需要修改成其他的数据可以进在local_settiongs.py里面自己修改,具体参数的修改就不再描述了)

PYTHONPATH=/opt/graphite/webapp django-admin.py migrate --settings=graphite.settings --run-syncdb

3)生成配置文件信息

PYTHONPATH=/opt/graphite/webapp django-admin.py collectstatic --noinput --settings=graphite.settings

4)配置文件修改

cd /opt/graphite/conf

cp carbon.conf.example carbon.conf

cp relay-rules.conf.example relay-rules.conf

cp storage-schemas.conf.example storage-schemas.conf

cp storage-aggregation.conf.example storage-aggregation.conf

cp graphite.wsgi.example graphite.wsgi

5)修改graphite.ini配置文件

因为我使用的是Nginx作为web服务器,所有需要安装下载uwsgi

pip install uwsgi

配置uwsgi文件graphite.ini

cd /opt/graphite/conf

vi graphite.ini

[uwsgi]

processes = 2

socket = 127.0.0.1:43210

#gid = nobody

#uid = nobody

chdir = /opt/graphite/conf/ #wsgi文件路径

wsgi-file=graphite.wsgi #wsgi文件

master=true

vacuum=true

#module = wsgi:application

#buffer-size = 65536

pidfile = /var/run/uwsgi.pid

#chmod-socket = 666

#pythonpath = /opt/graphite/webapp

daemonize = /var/log/uwsgi.log 日志

6)修改nginx配置文件信息

server {

listen       90;

server_name  172.16.3.15;

charset      utf-8;

access_log   /var/log/nginx/graphite_access.log;

error_log    /var/log/nginx/graphite_error.log error;

location / {

add_header Access-Control-Allow-Origin $http_origin;

add_header ‘Access-Control-Allow-Credentials‘ ‘true‘;

add_header ‘Access-Control-Allow-Methods‘ ‘GET, OPTIONS‘;

add_header ‘Access-Control-Allow-Headers‘ ‘origin, authorization, accept‘;

uwsgi_pass 127.0.0.1:43210;

include uwsgi_params;

}

4.启动文件

1)启动carbon

/opt/graphite/bin/carbon-cache.py start

PS:第一次启动的时候没有成功,然后第二次启动的时候成功了。

2)启动Nginx

3)启动uwsgi

uwsgi /opt/graphite/conf/graphite.ini

5.访问和测试

在浏览器中输入http://172.16.3.15:90就可以访问

测试

python /opt/graphite/examples/example-client.py

时间: 2025-01-01 15:19:25

graphite的搭建的相关文章

Grafana+Graphite搭建配置步骤

下载网址: http://grafana.org/download  (选择rpm包) #  rpm -i grafana-3.1.1-1470047149.x86_64.rpm # serivce grafana-server start 网址访问:http://ip:3000   默认用户名:admin   密码:admin Grafana和graphite结合 graphite及icinga2搭建略,可参见另外文档 登陆页面后--Data Sources--Add data source-

CentOS下,搭建Graphite

1.安装主要依赖关系 配置yum,创建/etc/yum.repos.d/epel.repo  并编辑内容如下: [epel]name=Extra Packages for Enterprise Linux 6 - $basearch baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arc

使用 StatsD + Grafana + InfluxDB 搭建 Node.js 监控系统

在石墨,我们之前使用 ELK 搭了一套监控图表,由于一些原因,比如: 1.Kibana 经常查日志查挂2.Kibana 的图表不太美观.不够灵活所以调研了一下,选择用 StatsD + Grafana + InfluxDB 搭建一套新的监控系统. 工具简介 StatsD 是一个使用 Node.js 开发的简单的网络守护进程,通过 UDP 或者 TCP 方式侦听各种统计信息,包括计数器和定时器,并发送聚合信息到后端服务,例如 Graphite.ElasticSearch.InfluxDB 等等,这

使用statsd+graphite+grafana构建业务及性能监控模块

近些年随着DevOps概念越来越收到重视,除了传统的Splunk,Zabbix外在开源领域也有越来越多的软件可供使用.从数据收集,时序数据库,图形展示等主要方面有各类可扩展的软件用于搭建一个数据监控平台(详细列表),Logstash+elasticsearch+kibana算是被写的比较多的,本文将偏重于业务数据及性能的监控而不是传统的机器参数的监控,所以本文以statsd+graphite+grafana在centos6上的安装配置为例. 三个组件的说明(https://blog.pkhamr

使用logstash+elasticsearch+kibana快速搭建日志平台

日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: 根据关键字查询日志详情 监控系统的运行状况 统计分析,比如接口的调用次数.执行时间.成功率等 异常数据自动触发消息通知 基于日志的数据挖掘 很多团队在日志方面可能遇到的一些问题有: 开发人员不能登录线上服务器查看详细日志,经过运维周转费时费力 日志数据分散在多个系统,难以查找 日志数据量大,查询速度慢 一个调用会涉及多个系统,难以在这些系统的日志中快速定位数据 数据不够实时 常见的一些重量级的开源

【转载】使用logstash+elasticsearch+kibana快速搭建日志平台

原文链接:http://www.cnblogs.com/buzzlight/p/logstash_elasticsearch_kibana_log.html 日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: 根据关键字查询日志详情 监控系统的运行状况 统计分析,比如接口的调用次数.执行时间.成功率等 异常数据自动触发消息通知 基于日志的数据挖掘 很多团队在日志方面可能遇到的一些问题有: 开发人员不能登录线上服务器查看详细日志,经过运维周转费时费力

#研发解决方案介绍#基于StatsD+Graphite的智能监控解决方案

郑昀 基于李丹和刘奎的文档 创建于2014/12/5 关键词:监控.dashboard.PHP.graphite.statsd.whisper.carbon.grafana.influxdb.Python 本文档适用人员:研发和运维员工 提纲: 监控平台要做到什么程度?为什么要自己做? 几个通用技术问题 绘图所依赖的数据如何收集?如何加工?如何存储? 图形如何绘制,各种指标如何叠加? 拓扑关系如何绘制? 技术选型哲学 最终选了statsd+graphite 数据的采集 数据存储的粒度 天机的技术

性能测试五十:Jmeter+Influxdb+Grafana实时数据展示系统搭建

上Grafana官网下载Grafana,此产品只有64位的版本,没有32位的 Influxdb:InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据.而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便.上官网下载 因为jmeter要往infuxdb里面写数据,所以最好把这两个放在一台机器上,grafana只做展示infuxdb里面的数据,可以另外部署 jmeter实时数据展示系统

从零开始搭建Prometheus自动监控报警系统(企业级)

从零搭建Prometheus监控报警系统 什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB).Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本. 2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目. Prometheus目前在开源社区相当活跃. Prometh