在Ubuntu12.04VPS上安装和配置Graphite和Statsd

来自菜鸟教程
跳转至:导航、​搜索


状态: 已弃用

本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:

原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


介绍

Graphite 和 statsd 是用于可视化数据的非常有价值的工具。 Statsd 收集有关正在运行的进程的数据,而石墨是一个可用于创建图形的图形库。

我们将在 Ubuntu 12.04 VPS 实例上设置这些工具。

安装石墨

Graphite 有许多我们需要满足的依赖项。 我们还想安装允许我们访问 Web 界面的 Web 服务器包。

首先,使用 apt-get 更新和升级你的包:

sudo apt-get update
sudo apt-get upgrade

安装所需的软件包:

sudo apt-get install --assume-yes apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 build-essential python3.2 python-dev libpython3.2 python3-minimal libapache2-mod-wsgi libaprutil1-ldap memcached python-cairo-dev python-django python-ldap python-memcache python-pysqlite2 sqlite3 erlang-os-mon erlang-snmp rabbitmq-server bzr expect libapache2-mod-python python-setuptools

我们将使用 python-setuptool 的“easy_install”实用程序来安装一些更重要的 python 组件:

sudo easy_install django-tagging zope.interface twisted txamqp

接下来,我们将从项目网站获取 Graphite 组件。

Carbon 是数据聚合器,Graphite web 是 web 组件,whisper 是数据库库:

cd ~
wget https://launchpad.net/graphite/0.9/0.9.10/+download/graphite-web-0.9.10.tar.gz
wget https://launchpad.net/graphite/0.9/0.9.10/+download/carbon-0.9.10.tar.gz
wget https://launchpad.net/graphite/0.9/0.9.10/+download/whisper-0.9.10.tar.gz

使用 tar 提取档案:

find *.tar.gz -exec tar -zxvf '{}' \;

进入 Whisper 目录并使用提供的安装文件进行安装:

cd whisper*
sudo python setup.py install

现在,移动到 carbon 目录并执行相同的操作:

cd ../carbon*
sudo python setup.py install

最后,移动到 Graphite 目录并检查依赖项。 您应该会收到一条消息,表明您的依赖项都已正确安装。:

cd ../graphite*
sudo python check-dependencies.py
All necessary dependencies are met.
All optional dependencies are met.

您现在可以安全地安装 Graphite:

sudo python setup.py install

配置石墨

接下来,我们将配置我们刚刚安装的软件。

我们将移动到 Graphite 配置目录副本或创建一些我们将用于我们的应用程序的文件:

cd /opt/graphite/conf
sudo cp carbon.conf.example carbon.conf
Create a file to handle our polling settings:
sudo nano storage-schemas.conf

将以下数据复制到文件中:

[stats]
priority = 110
pattern = .*
retentions = 10:2160,60:10080,600:262974

保存并关闭文件。

接下来,我们将配置 Graphite 数据库。 转到 Graphite webapp 目录并运行数据库脚本:

cd /opt/graphite/webapp/graphite/
sudo python manage.py syncdb

系统将提示您创建超级用户帐户。 键入“yes”继续,然后按照提示进行操作。

当您在此目录中时,将本地设置示例文件复制到生产版本:

sudo cp local_settings.py.example local_settings.py

配置 Apache

接下来,我们将配置 Apache 以提供我们的 Web 内容。

首先复制一些示例配置文件:

sudo cp ~/graphite*/examples/example-graphite-vhost.conf /etc/apache2/sites-available/default
sudo cp /opt/graphite/conf/graphite.wsgi.example /opt/graphite/conf/graphite.wsgi

将 Graphite 存储目录的所有权授予 Apache Web 用户,以便它可以正确写入数据:

sudo chown -R www-data:www-data /opt/graphite/storage

为我们的 WSGI 数据创建一个目录:

sudo mkdir -p /etc/httpd/wsgi

我们需要编辑我们之前复制的 Apache 配置文件:

sudo nano /etc/apache2/sites-available/default

更改 WSGISocketPrefix 以反映我们刚刚创建的目录。 此外,更改 ServerName 属性以反映您的域名或 IP 地址:

...
...
WSGISocketPrefix /etc/httpd/wsgi

<VirtualHost *:80>
    ServerName Your.Domain.Name.Here
    ...
    ...

保存并关闭文件。

重新启动 Apache 以实现我们的更改:

sudo service apache2 restart

安装和配置 Statsd

要使用 statsd,我们需要安装 node.js。 为此,我们将安装“python-software-properties”,其中包含一个用于添加 PPA 的实用程序:

sudo apt-get install python-software-properties

我们现在可以添加适当的 PPA:

sudo apt-add-repository ppa:chris-lea/node.js

按“enter”接受存储库更改。 现在再次更新 apt 包列表并安装 node.js:

sudo apt-get update
sudo apt-get install nodejs

我们现在将安装 statsd 以从我们的 VPS 提供 Graphite 数据。

首先,安装 git 以便我们可以下载项目文件:

sudo apt-get install git

现在将 git 存储库克隆到我们的可选软件目录中:

cd /opt
sudo git clone git://github.com/etsy/statsd.git

在新的 statsd 目录中为 statsd 创建配置文件:

sudo nano /opt/statsd/localConfig.js

将以下信息复制并粘贴到文件中:

{
    graphitePort: 2003,
    graphiteHost: "127.0.0.1",
    port: 8125
}

启动服务

启动 carbon 数据聚合器,以便它开始发送数据:

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

接下来,移动到 statsd 目录并使用 node.js 命令运行文件:

cd /opt/statsd
node ./stats.js ./localConfig.js
19 Jul 21:15:34 - reading config file: ./localConfig.js
19 Jul 21:15:34 - server is up

您应该会收到一条消息,通知您 statsd 服务器已启动并正在运行。

查看结果

要查看图表数据,请打开 Web 浏览器并导航到您的域或 IP 地址:

Your.Domain.Name.Here

您将在中间看到一个空白框。

您还将在左侧看到一个导航菜单。 这是我们首先要解决的问题

单击“石墨”框,您应该有许多不同的选项。 如果单击文件层次结构,您将看到许多数据集。

选择一个并单击它。 看起来没有数据被绘制出来。 我们将需要更改比例以查看任何信息。

在 Graphite Composer 上,选择左侧的第二个图标以调整日期范围。 选择一个仅在当前时间两侧捕获几个小时的范围。

接下来单击“图形选项”,将鼠标悬停在“线模式”上并选择“连接线”以连接数据点。

您可能还想选择“自动刷新”以使图表在接收数据时自动更新。

请注意,您选择的每个新数据集 都会将 该数据添加到图表中。 它不会切换到该数据集。 单击“图表数据”以根据需要删除数据集。 您也可以再次单击左侧的数据类别以取消选择它。

贾斯汀·艾林伍德