博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于CentOS平台安装Graphite搭建监控平台
阅读量:6241 次
发布时间:2019-06-22

本文共 7042 字,大约阅读时间需要 23 分钟。

  hot3.png

      文章阐述了在CentOS 6.5平台上安装Graphite,目的是搭建一个运维监控系统。

Graphite的安装(以下代码均以root权限执行)

    1、安装主要依赖关系  

        配置yum,创建/etc/yum.repos.d/epel.repo  并编辑内容如下:

[epel]name=Extra Packages for Enterprise Linux 6 - $basearchbaseurl=http://download.fedoraproject.org/pub/epel/6/$basearch#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearchfailovermethod=priorityenabled=1gpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

       

        安装主要依赖:

                yum install bitmap bitmap-fonts-compat Django django-tagging fontconfig cairo python-devel python-memcached python-twisted  pycairo mod_python python-ldap python-simplejson memcached python-zope-interface mod_wsgi python-sqlite2 bitmap Django django-tagging mod_python python-sqlite2 -y

    2、下载源代码包

        Graphite主要由三个部分组成:carbon,graphite-web,whisper。下载源代码数据包并解压缩如下:        

        下载并解压Graphite-web:

    wget https://launchpadlibrarian.net/106575888/graphite-web-0.9.10.tar.gz    tar -axf graphite-web-0.9.10.tar.gz -C /usr/local/src/

       PS:在解压缩了graphite-web-0.9.10数据包之后,利用其中的“check-dependencies.py”文件已经依赖关系的检查,再执行完该python脚本后,从其输出结果中可以看到有哪些额外的程序需要安装,缺少什么则利用yum程序在线安装即可,直到最后检测的结果提示如:All necessary dependencies are met. All optional dependencies are met. 则代表所有依赖关系均已解决

        下载并解压Whisper : 

   wget https://launchpadlibrarian.net/106575859/whisper-0.9.10.tar.gz   tar -axf whisper-0.9.10.tar.gz -C /usr/local/src/

    

        下载并解压carbon:        

  wget https://launchpadlibrarian.net/106575865/carbon-0.9.10.tar.gz  tar -axf carbon-0.9.10.tar.gz -C /usr/local/src/

    在下载与解压以上三部分代码包之后,分别进入各自解压后的数据包,并执行各自的python setup.py install,则完成Graphite三部分基本安装。

    3、配置httpd相关文件

        在/etc/httpd/conf.d/graphite.conf文件,执行 vim  /etc/httpd/conf.d/graphite.conf  并写入如下类容:        

Listen 8080 # You may need to manually edit this file   to fit your needs.# This configuration assumes the default   installation prefix# of /opt/graphite/, if you installed   graphite somewhere else# you will need to change all the   occurances of /opt/graphite/# in this file to your chosen install   location.
 ServerName graphite DocumentRoot   "/opt/graphite/webapp"  #   I've found that an equal number of processes & threads tends #   to show the best performance for Graphite (ymmv). WSGIDaemonProcess graphite processes=5   threads=5 display-name='%{GROUP}' inactivity-timeout=120 WSGIProcessGroup graphite   #   You will need to create this file! There is a graphite.wsgi.example #   file in this directory that you can safely use, just copy it to graphite.wgsi WSGIScriptAlias /   /opt/graphite/conf/graphite.wsgi  Alias /content/   /opt/graphite/webapp/content/ 
 SetHandler None    #   NOTE: In order for the django admin site media to work you #   must change @DJANGO_ROOT@ to be the path to your django #   installation, which is probably something like: #   /usr/lib/python2.6/site-packages/django Alias   /media/   "/usr/lib/python2.4/site-packages/django/contrib/admin/media/" 
 SetHandler None    #   The graphite.wsgi file has to be accessible by apache. It won't #   be visible to clients because of the DocumentRoot though. 
 Order deny,allow Allow from all  

    

    vim /etc/httpd/conf.d/wsgi.conf 并写入如下内容:

LoadModule wsgi_module   modules/mod_wsgi.soWSGISocketPrefix /var/run/wsg

    

    4、配置Graphite:

        分别执行如下命令,创建Graphite所必要的配置文件,一般来说就是将 /opt/graphite/conf/下的多个文件后缀中的example除去而生成可用的配置文件,这里最好是保留原有的*example 文件,以其出去后缀example的复件作为其配置文件使用。 

  cd /opt/graphite/conf/  cp graphite.wsgi.example graphite.wsgi  cp carbon.conf.example carbon.conf  cp storage-schemas.conf.example storage-schemas.conf    cd /opt/graphite/webapp/  cp local_settings.py.example local_setting.py

 

        打开Django部分的settings.py文件,并作如下修改:

  vim /opt/graphite/webapp/graphite/settings.py

  以下是settings.py原有的关于数据库配置选项:

DATABASE_ENGINE = 'django.db.backends.sqlite3'                                # 'postgresql', 'mysql', 'sqlite3' or   'ado_mssql'.#DATABASE_NAME = ''         # Or path to   database file if using sqlite3.#DATABASE_USER = ''         # Not used with   sqlite3.#DATABASE_PASSWORD = ''     # Not used with   sqlite3.#DATABASE_HOST = ''         # Set to empty   string for localhost. Not used with sqlite3.#DATABASE_PORT = ''         # Set to empty   string for default. Not used with sqlite3.

 在以上原有的基础上添加如下:

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

PS:这里为了方便,所以只用了sqlite数据库,如需使用例如MySQL数据库,则可以在此处填入相应数据库的配置选项即可。

    5、数据库初始化

        Graphite执行数据库初始化的过程与Django类似,cd /opt/graphite/webapp 进入该目录后执行 python manage.py syncdb 则执行数据库的初始化过程,并根据输出提示填入用户名、密码以及电子邮件等内容即可完成初始化过程。

        

        [root@localhost ~]# python   /opt/graphite/webapp/graphite/manage.py syncdb/usr/lib/python2.6/site-packages/django/conf/__init__.py:75:   DeprecationWarning: The ADMIN_MEDIA_PREFIX setting has been removed; use   STATIC_URL instead.    "use STATIC_URL instead.", DeprecationWarning)/usr/lib/python2.6/site-packages/django/conf/__init__.py:110:   DeprecationWarning: The SECRET_KEY setting must not be empty.    warnings.warn("The SECRET_KEY setting must not be empty.",   DeprecationWarning)/usr/lib/python2.6/site-packages/django/core/cache/__init__.py:82:   DeprecationWarning: settings.CACHE_* is deprecated; use settings.CACHES   instead.    DeprecationWarningCreating tables ...Creating table account_profileCreating table account_variableCreating table account_viewCreating table account_windowCreating table account_mygraphCreating table dashboard_dashboard_ownersCreating table dashboard_dashboardCreating table events_eventCreating table auth_permissionCreating table auth_group_permissionsCreating table auth_groupCreating table auth_user_user_permissionsCreating table auth_user_groupsCreating table auth_userCreating table django_sessionCreating table django_admin_logCreating table django_content_typeCreating table tagging_tagCreating table tagging_taggeditem You just installed Django's auth system,   which means you don't have any superusers defined.Would you like to create one now?   (yes/no): yPlease enter either "yes" or   "no": yesUsername (leave blank to use 'root'): rootE-mail address: xxxx@gmail.comPassword:Password (again):Superuser created successfully.Installing custom SQL ...Installing indexes ...Installed 0 object(s) from 0 fixture(s)

 

     并在最后修改/opt/graphite目录的所有者属性:

    chown -R apache.apache /opt/graphite

PS:在开启Graphite之前最好检查一下Graphite目录以及目录中的各项文件或者目录文件的所有者是否是apache。

    执行完以上步骤之后重启httpd服务并且开启graphite:

    service httpd restart    python /opt/graphite/bin/carbon-cache.py start

    6、访问Graphite主页

        

        此处的ip代表本地的127.0.0.1(可用localhost替代),其他主机可利用Graphite宿主机的以太网接口ip地址访问,例如:

如下图:

203155_gV0F_1418966.png

 

    

    7、问题分析

        在安装的过程中建议关闭iptables和selinux,不然较容易出现例如打不开网页以及apache访问权限的问题。关闭iptables以及selinux的方法如下:

        关闭iptables:     

            service iptables stop   (立即生效,重启后无效)

            chkconfig iptables off (仅重启后生效)

 

        关闭selinux:

                setenforce 0        (立即生效,重启无效)

                修改 /etc/selinux/config文件中的 SELINUX项值为disable。(仅重启有效)

 

转载于:https://my.oschina.net/galenz/blog/301315

你可能感兴趣的文章
Java设计模式--享元模式
查看>>
码栈开发手册(五)---可视化方式开发(模块详解--浏览图)
查看>>
每天一个设计模式之装饰者模式
查看>>
基于自定义日志打印的UDAF调试
查看>>
JVM源码分析之Metaspace解密
查看>>
CSS 各种定位(position)方式的区别
查看>>
每周聚划算 超值软件汇总:云市场迎新年大礼包 专场五折封顶劲省2100元
查看>>
【区块链之技术进阶】扒一扒某乎上面对于区块链的理解(二)
查看>>
如何从PostgreSQL源码分析哪些操作需要超级用户权限 - 阿里云rds superuser提供了哪些权限...
查看>>
用java进行面向对象编程,面向对象是什么意思
查看>>
博拉科技浅谈中国企业的智能制造之路
查看>>
[LeetCode]--29. Divide Two Integers
查看>>
php如何获取原生请求体
查看>>
java web开发 高并发处理
查看>>
PHP 高级编程之多线程(二)
查看>>
ART世界探险(12) - OAT文件分析(2) - ELF文件头分析(中)
查看>>
AFNetworking 和 ASIHTTPRequest
查看>>
Qt之自定义界面(实现无边框、可移动)
查看>>
MS SQL修改数据库名称
查看>>
【RMAN】使用RMAN duplicate复制同机数据库
查看>>