您的位置:首页 > 数据库 > Redis

scrapy-redis(八):安装scrapy监控app--graphite

2017-01-01 19:53 381 查看
graphite是基于python创建的一个web监控程序,分三个部分组成:

(1)carbon:一个twisted守护进程,用于监听时间序列的数据。

(2)whisper:数据库,用于存放时间序列的数据

(3)graphite-web:从whisper中获取数据,然后绘制成图形,并在网页中展示出来。

一个配置好的graphite,如下图所示:



下面就上图给大家详细介绍一下安装步骤。我是在云主机上安装的,不需要sudo命令,一般情况下需要加上sudo命令

一、安装

这里,我们选择pip安装,根据官方给出的文档,执行下面指令即可:

pip install https://github.com/graphite-project/whisper/tarball/master pip install https://github.com/graphite-project/carbon/tarball/master pip install https://github.com/graphite-project/graphite-web/tarball/master[/code] 
默认情况下,graphite会安装在/opt/graphite/这个目录下面。



这里需要注意:刚安装好是不存在static这个目录的,该目录是在配置的时候创建的。

二、配置

1、配置carbon守护进程

graphite的所有配置文件都在/opt/graphite/conf/这个目录下面,进入该目录,执行下面的操作:

cp xxx.conf.example xxx.conf


有多少个.example结尾的文件,就执行多少次。

对于carbon来说,最重要的两个文件就是carbon.conf和storage-schemas.conf。

对于初次安装来说,carbon.conf这个文件中的内容不需要做任何更改。storage-schemas.conf中我们可以加入下面这一段:

[scrapy]
pattern = ^scrapy\.
rententions = 60s:1d


上面的意思是说,我们将接受以scrapy开头的metric,并且把每60s接受到一次的数据保存一天。当然,我们发送的metric的path也必须以scrapy开头。具体介绍,请参考graphite官方文档,上面有详细的介绍。

接下来,就可以启动carbon这个守护进程了:

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


2、配置graphite webapp

配置文件位于/opt/graphite/webapp/graphite/目录中,先进行以下操作:

cp local_settings.py.example local_settings.py


local_settings.py这个文件中初始需要修改的配置不多,主要有以下几个:

SECRET_KEY = ''#使用一个长序列的字符串来代替默认的。可用sha等
TIME_ZONE = ''#这里需要修改成上海的时间,默认是美国芝加哥的时间
DEBUG = True#开启dubug,这样就浏览器预览的时候,会查看到错误。


上面这些基础配置弄好就够了。

3、配置apache

apt-get install apache2 libapache2-mod-wsgi


安装好之后,就可以配置graphite的虚拟主机了。在/opt/graphite/examples/目录中,有一份默认的graphite虚拟主机的配置,将其复制到/etc/apache2/sites-available/目录下面:

cp /opt/graphite/examples/example-graphite-vhost.conf /etx/apache2/sites-available/


然后,打开sites-available目录下的graphite的配置文件,作如下修改:

#这里修改为绝对路径
WSGISocketPrefix /var/run/apache2/wsgi

#添加自定义的端口
<VirtualHost *:8090>

#为静态文件的目录修改访问权限,所以需要添加这一块内容
<Directory /opt/graphite/static/>
Require all granted
</Directory>

</VirtualHost>


做完上述修改之后,需要在/etc/apache2/ports.conf这个文件中添加下面这一行:

#添加监听的端口
Listen 8090


之后在终端运行如下命令:

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


这条命令就是在/opt/graphite/下面添加/static/这个目录,因为默认安装是不存在这个目录的。

之后,为graphite虚拟主机添加symbolic link:

ln -s /etc/apache2/sites-available/example-graphite-vhost.conf /etc/apache2/sites-enabled/


4、配置webapp数据库

这个数据库与whisper是不一样的,whisper是用来存储metric的。而这个数据库是用来存储用户配置文件,仪表盘等这些数据的。

默认使用sqlite数据库,当然,也可以修改为mysql的。修改成其他的数据库挺简单的,其实传递一些参数到connection连接中,比如username,passwd,db,等。具体参考官方文档,修改的位置在local_settings.py中。

我们就是用默认的sqlite数据库,在终端输入以下命令即可:

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


上面的命令就会创建初始的表,以供graphite使用。这就会生成一张数据库的文件,位于/opt/graphite/storage/graphite.db。我们需要修改这个文件所属的用户和用户组,以便apache可以读写该文件,在ubuntu上,apache的用户是www-data,所以执行下面命令即可:

chown www-data:www-data  /opt/graphite/storage/graphite.db


最后启用这个graphite虚拟站点,重启apache即可:

a2ensite example-graphite-vhost
/etc/init.d/apache2 reload


假设你的电脑ip是192.168.1.1,打开浏览器,输入192.168.1.1:8090,即可看到graphite。就如下图一样:



默认是没有任何数据的,我们可以采用官方给的命令来发送一些时间序列的数据看看,命令如下:

echo "test.bash.stats 42 `date +%s`" | nc host 2003

#还记得我们先前定义的scrapy metric_path吗?我们利用这个命令来发送几个以scrapy开头的数据看看
echo "scrapy.test.stats 42 `date +%s`" | nc 192.168.1.1 2003
#上面的指令多重复几遍,然后稍微的等一会




出现了我们想要的图形,说明成功了。

三、总结

具体在安装配置graphite的时候,是没有这么顺利的,会遇到非常多的问题,最常见的解决方法就是使得apache可以读写某一个目录或者文件。但并不是可以解决所有问题,一定要去看日志,日志位于/opt/graphite/storage/log/webapp/这个目录中。一定要详细的查看error.log这个文件中的内容,里面会详细的指明问题。我从开始接触到安装成功,花费了一周多的时间,期间碰到了各种问题,当然,也google了非常多的文档。最重要的就是查看日志。

现在我们安装了graphite,那么怎么给它传递数据呢?那就是diamond
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  graphite